專利名稱::數(shù)據(jù)歸檔的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)據(jù)歸檔(profiling)。
背景技術(shù):
:存儲的數(shù)據(jù)集經(jīng)常包括事先未知各種特性的數(shù)據(jù)。例如,數(shù)據(jù)集的值或一般值的范圍,在數(shù)據(jù)集內(nèi)不同字段之間的關(guān)系,或在不同字段中的值之間的函數(shù)依賴性可能是未知的。數(shù)據(jù)歸檔會涉及到檢查數(shù)據(jù)集的源,以確定這些特性。數(shù)據(jù)歸檔系統(tǒng)的用途之一是收集有關(guān)數(shù)據(jù)集的信息,然后該信息用于設(shè)計集結(jié)區(qū)(stagingarea),以便在進(jìn)一步處理之前裝載數(shù)據(jù)集。然后,基于在數(shù)據(jù)歸檔過程中收集的信息,在集結(jié)區(qū)中進(jìn)行將數(shù)據(jù)集映射到希望的目標(biāo)格式和位置所需的轉(zhuǎn)換。這種轉(zhuǎn)換可能是必要的,例如,使第三方數(shù)據(jù)與已有數(shù)據(jù)存儲器兼容,或者將數(shù)據(jù)從原來的計算機(jī)系統(tǒng)轉(zhuǎn)移到新的計算機(jī)系統(tǒng)。
發(fā)明內(nèi)容一般而言,在一個方案中,本發(fā)明的特征是方法、對應(yīng)的軟件以及數(shù)據(jù)處理系統(tǒng)。將來自數(shù)據(jù)源的數(shù)據(jù)歸檔。此歸檔包括從數(shù)據(jù)源讀取數(shù)據(jù),在讀取數(shù)據(jù)時計算用以描述數(shù)據(jù)特性的概述數(shù)據(jù),以及存儲基于概述數(shù)據(jù)的歸檔信息。然后,處理來自數(shù)據(jù)源的數(shù)據(jù)。此處理包括訪問所存儲的歸檔信息和根據(jù)訪問的歸檔信息處理數(shù)據(jù)。一般而言,在另一個方案中,本發(fā)明的特征是數(shù)據(jù)處理方法。將來自數(shù)據(jù)源的數(shù)據(jù)歸檔。此歸檔包括從數(shù)據(jù)源讀取數(shù)據(jù),在讀取數(shù)據(jù)時計算用以描述數(shù)據(jù)特性的概述數(shù)據(jù),以及存儲基于概述數(shù)據(jù)的歸檔信息。數(shù)據(jù)歸檔包括以并行方式歸檔數(shù)據(jù),這包括將數(shù)據(jù)分割成多個部分,并使用第一組并行組件中分開的一些組件處理這些部分。本發(fā)明的方案可以包括一個或多個以下特征。對來自數(shù)據(jù)源的數(shù)據(jù)的處理包括從數(shù)據(jù)源讀取數(shù)據(jù)。在進(jìn)行數(shù)據(jù)歸檔時,不保留數(shù)據(jù)源外的數(shù)據(jù)的副本。例如,數(shù)據(jù)可包括具有可變記錄結(jié)構(gòu)(例如條件字段和可變數(shù)目的字段)的記錄。在讀取數(shù)據(jù)時對概述數(shù)據(jù)的計算包括在計算用以描述數(shù)據(jù)特性的概述數(shù)據(jù)時對可變記錄結(jié)構(gòu)記錄作出解釋。數(shù)據(jù)源包括數(shù)據(jù)存儲系統(tǒng),例如數(shù)據(jù)庫系統(tǒng)、或串行或并行文件系統(tǒng)。對概述數(shù)據(jù)的計算包括對字段的一組相異值中的每個值的出現(xiàn)次數(shù)進(jìn)行計數(shù)。歸檔信息可以包括基于對所述字段計算的出現(xiàn)次數(shù)得到的該字段的統(tǒng)計數(shù)字。對包含與數(shù)據(jù)源相關(guān)的元數(shù)據(jù)的元數(shù)據(jù)存儲器進(jìn)行維護(hù)。對歸檔信息的存儲可包括更新與數(shù)據(jù)源相關(guān)的元數(shù)據(jù)。對數(shù)據(jù)的歸檔和對數(shù)據(jù)的處理均可以利用數(shù)據(jù)源的元數(shù)據(jù)。對來自數(shù)據(jù)源的數(shù)據(jù)的歸檔還包括基于歸檔信息確定格式規(guī)范。也可包括基于歸檔信息確定有效性規(guī)范。在數(shù)據(jù)處理期間,可以基于格式規(guī)范和/或有效性規(guī)范識別無效記錄?;跉w檔信息指定數(shù)據(jù)轉(zhuǎn)換指令。然后,對數(shù)據(jù)的處理可以包括將轉(zhuǎn)換指令應(yīng)用于數(shù)據(jù)。對數(shù)據(jù)的處理包括將數(shù)據(jù)輸入到數(shù)據(jù)存儲子系統(tǒng)。在將數(shù)據(jù)輸入數(shù)據(jù)存儲子系統(tǒng)之前,可以將數(shù)據(jù)進(jìn)行驗證。這種數(shù)據(jù)驗證可以包括例如通過比較數(shù)據(jù)的統(tǒng)計屬性將數(shù)據(jù)的特性與數(shù)據(jù)的基準(zhǔn)特性相比較。對數(shù)據(jù)的歸檔可以以并行方式進(jìn)行。這可以包括將數(shù)據(jù)分割成多個部分,并使用第一組并行組件中分開的一些組件處理這些部分。對不同數(shù)據(jù)字段的概述數(shù)據(jù)的計算可以包括使用第二組并行組件中分開的一些組件。第一組并行組件的輸出可以被重新分割,以形成第二組并行組件的輸入。數(shù)據(jù)可以從并行數(shù)據(jù)源讀取,該并行的數(shù)據(jù)源的每個部分由第一組并行組件中不同的一個并行組件處理。一般而言,在另一個方案中,本發(fā)明的特征是方法、對應(yīng)的軟件以及數(shù)據(jù)處理系統(tǒng)。接受用以描述第一數(shù)據(jù)源的記錄中第一字段的值的特性的信息和用以描述第二數(shù)據(jù)源的記錄中第二字段的值的特性的信息。然后,基于所接受的信息,計算用以描述第一字段與第二字段之間的關(guān)系的特性的參量。呈現(xiàn)與第一字段和第二字段有關(guān)的信息。本發(fā)明的方案可以包括一個或多個以下特征。將與第一字段和第二字段有關(guān)的信息呈現(xiàn)給用戶。第一數(shù)據(jù)源和第二數(shù)據(jù)源可以是同一個數(shù)據(jù)源,或者是分開的數(shù)據(jù)源。所述數(shù)據(jù)源中的任一個或兩個都可以是數(shù)據(jù)庫表格或文件。用以描述該關(guān)系的特性的參量包括描述第一字段的值與第二字段的值的匯合特性的參量。用以描述第一字段的值(或類似的第二字段的值)的特性的信息包括描述該字段的值的分布特性的信息。此信息可以存儲在數(shù)據(jù)結(jié)構(gòu),例如“調(diào)查”數(shù)據(jù)結(jié)構(gòu)中。用以描述第一字段的值的分布特性的信息可以包括多個數(shù)據(jù)記錄,每個數(shù)據(jù)記錄與第一數(shù)據(jù)源的第一字段中不同的值以及該值的對應(yīng)出現(xiàn)次數(shù)相關(guān)聯(lián)。類似地,用以描述第二字段的值的分布特性的信息可以包括相同或類似格式的多個記錄。處理用以描述第一字段的值和第二字段的值的分布特性的信息,以計算與這些多個不同同現(xiàn)(cooccurrence)類別的值相關(guān)的參量。與多種同現(xiàn)類別的值相關(guān)的參量包括多個數(shù)據(jù)記錄,每個數(shù)據(jù)記錄與多個同現(xiàn)類別之一相關(guān)聯(lián),并包括第一和第二字段在所述類別中的不同值的數(shù)量。分別在第一字段和第二字段上,計算描述在第一數(shù)據(jù)源與第二數(shù)據(jù)源的“匯合”數(shù)據(jù)源中的值的分布特性的信息。此計算可以包括計算與多種同現(xiàn)類別的值相關(guān)的參量。這些類別的范例包括在第一字段和第二字段的一個中至少出現(xiàn)一次但在另一個字段中不出現(xiàn)的值,在第一字段和第二字段的每個中恰好出現(xiàn)一次的值,在第一字段和第二字段的一個中恰好出現(xiàn)一次、而在另一個字段中出現(xiàn)超過一次的值,以及在第一字段和第二字段的每個中出現(xiàn)超過一次的值。對于不同的多對字段,例如來自第一數(shù)據(jù)源的一個字段和來自第二數(shù)據(jù)源的另一個字段,重復(fù)下述兩個步驟,即接受用以描述值的特性的信息以及計算描述值的匯合特性的參量。然后,與多對字段中的一對或更多對字段有關(guān)的信息可以呈現(xiàn)給用戶。與多對字段中的一對或更多對字段相關(guān)的信息的呈現(xiàn)包括識別侯選類型的字段關(guān)系。這種類型的字段關(guān)系的范例包括主鍵(primarykey)關(guān)系、外鍵(foreignkey)關(guān)系以及通用域(commondomain)關(guān)系。一般而言,在另一個方案中,本發(fā)明的特征是方法、對應(yīng)的軟件以及數(shù)據(jù)處理系統(tǒng)。對數(shù)據(jù)源的數(shù)據(jù)記錄中字段的多個子集進(jìn)行識別。確定多個子集中每個子集的同現(xiàn)統(tǒng)計數(shù)字。識別多個子集中的一個或多個子集,使得在所識別的子集的字段之間具有函數(shù)關(guān)系。本發(fā)明的方案可以包括一個或多個以下特征。字段的至少一個子集是兩個字段的子集。識別多個子集中的一個或多個子集、使得在所識別的子集的字段之間具有函數(shù)關(guān)系的處理包括識別多個子集中的一個或多個子集,使其具有多個可能的預(yù)定函數(shù)關(guān)系之一。對同現(xiàn)統(tǒng)計數(shù)字的確定包括形成多個數(shù)據(jù)元素,每個數(shù)據(jù)元素識別一個數(shù)據(jù)記錄中的一對字段并識別在該對字段中出現(xiàn)的一對值。對同現(xiàn)統(tǒng)計數(shù)字的確定包括將數(shù)據(jù)記錄分割成多個部分,這些數(shù)據(jù)記錄具有第一字段和第二字段;基于在第一部分中一個或多個記錄的第二字段中出現(xiàn)的值的分布,確定參量,其中所述一個或多個記錄具有在所述一個或更多個記錄的第一字段中出現(xiàn)的公共值;以及將該參量與基于其它部分中的記錄得到的其它參量進(jìn)行合并,以產(chǎn)生總參量。識別多個子集中的一個或多個子集、使得在所識別的子集的字段之間具有函數(shù)關(guān)系的處理包括基于該總參量,識別在第一與第二字段之間的函數(shù)關(guān)系。這些部分是基于第一字段的值和第二字段的值而得到。使用一組并行組件中分開的一些組件處理這些部分。識別多個子集中的一個或多個子集、使得在所識別的子集的字段之間具有函數(shù)關(guān)系的處理包括確定與所述函數(shù)關(guān)系的匹配程度。該匹配程度包括與所述函數(shù)關(guān)系不一致的異常記錄的個數(shù)。該函數(shù)關(guān)系包括將第一字段的至少一些值映射到第二字段的至少一些值。該映射可以是例如多對一映射、一對多映射或一對一映射。該方法還包括基于描述多個子集的字段中的值的特性的信息,對這多個子集進(jìn)行過濾。這些數(shù)據(jù)記錄包括一個或多個數(shù)據(jù)庫表格的記錄。本發(fā)明的方案可以包括一個或多個以下優(yōu)點。本發(fā)明的方案在各種情況中都可體現(xiàn)其優(yōu)勢。例如,在研發(fā)一個應(yīng)用程序時,研發(fā)人員可以使用輸入數(shù)據(jù)集來測試該應(yīng)用程序。將使用該測試數(shù)據(jù)集運行的應(yīng)用程序的輸出與希望的測試結(jié)果相比較,或?qū)ζ溥M(jìn)行手動檢驗。然而,當(dāng)使用實際的“生產(chǎn)數(shù)據(jù)(productiondata)”運行該應(yīng)用程序時,結(jié)果通常太大而不能通過檢驗來驗證。數(shù)據(jù)歸檔可以用于驗證該應(yīng)用程序的行為(behavior)。取代檢驗每個記錄(其通過使用生產(chǎn)數(shù)據(jù)運行該應(yīng)用程序而產(chǎn)生),可對輸出的歸檔檢驗。該數(shù)據(jù)歸檔可以檢測無效或不希望的值,以及將導(dǎo)致應(yīng)用程序設(shè)計問題的輸出中的不希望的圖形或分布。在另一情況下,數(shù)據(jù)歸檔可以用作生產(chǎn)過程的一部分。例如,作為常規(guī)生產(chǎn)運行數(shù)據(jù)的一部分的輸入數(shù)據(jù)可以被歸檔。在完成數(shù)據(jù)歸檔后,處理模塊可以裝載歸檔結(jié)果,并驗證該輸入數(shù)據(jù)是否符合某些質(zhì)量標(biāo)準(zhǔn)。如果輸入數(shù)據(jù)看起來是不合格的,可以取消產(chǎn)品的運行并警告相關(guān)人員。在另一情況下,通過有規(guī)律地數(shù)據(jù)歸檔,可以對大量收集數(shù)據(jù)(例如,在多個數(shù)據(jù)集中的數(shù)百個數(shù)據(jù)庫表格)進(jìn)行定期審核。例如,可以每晚對數(shù)據(jù)的子集進(jìn)行數(shù)據(jù)歸檔。被歸檔的數(shù)據(jù)可以是循環(huán)的從而所有數(shù)據(jù)被歸檔,例如,一個季度一次,從而每個數(shù)據(jù)庫表格在一年內(nèi)將被歸檔四次。這在必要時可以提供對日后可以參考的所有數(shù)據(jù)的歷史數(shù)據(jù)質(zhì)量審核。該數(shù)據(jù)歸檔可以自動進(jìn)行。例如,該數(shù)據(jù)歸檔可以從腳本(script)(例如,SHELL腳本)進(jìn)行,并與其它形式的處理相結(jié)合。該數(shù)據(jù)歸檔的結(jié)果可以例如以能在網(wǎng)絡(luò)瀏覽器中顯示的形式自動發(fā)布,而不必手動地后處理這些結(jié)果或運行單獨的報告應(yīng)用程序。對描述數(shù)據(jù)源中記錄的值的特性的信息進(jìn)行操作,而不必直接對數(shù)據(jù)源中的記錄本身進(jìn)行操作,可以相當(dāng)大地減少計算量。例如,使用調(diào)查數(shù)據(jù)而非原始數(shù)據(jù)記錄,可以將計算兩個字段的匯合特性的復(fù)雜性從一個大的量級減少到一個小的量級,即從兩個數(shù)據(jù)源中數(shù)據(jù)記錄數(shù)量的乘積的量級減少到兩個數(shù)據(jù)源中獨有值的數(shù)量的乘積的量級。在進(jìn)行數(shù)據(jù)歸檔時不保留數(shù)據(jù)源外數(shù)據(jù)的副本,可以避免與保留復(fù)制的副本相關(guān)聯(lián)的誤差可能性,并避免使用外部存儲空間來存儲數(shù)據(jù)副本??梢愿鶕?jù)數(shù)據(jù)值并行處理這些操作,由此實現(xiàn)有效分配的處理。描述字段之間關(guān)系的特性的參量可以提供這樣的指示,即,指明哪些字段可以用不同類型的關(guān)系相關(guān)聯(lián)。然后,用戶可以更嚴(yán)密地檢查該數(shù)據(jù),以確定這些字段是否確實形成那種類型的關(guān)系。對數(shù)據(jù)源中數(shù)據(jù)記錄的字段的多個子集中每個子集的同現(xiàn)統(tǒng)計數(shù)字進(jìn)行確定,能夠有效地識別在字段之間的潛在的函數(shù)關(guān)系。本發(fā)明的各個方案在對用戶不熟悉的數(shù)據(jù)集進(jìn)行歸檔時是很有用的。可以自動確定或協(xié)同用戶確定的信息可以用于轉(zhuǎn)存(populate)數(shù)據(jù)源的元數(shù)據(jù),之后用于進(jìn)一步的處理。本發(fā)明的其它特征和優(yōu)點將從以下描述以及權(quán)利要求書中顯而易見。圖1為包括數(shù)據(jù)歸檔模塊的系統(tǒng)的方框圖。圖2為用于數(shù)據(jù)歸檔的元數(shù)據(jù)存儲器中對象的組織結(jié)構(gòu)的方框圖。圖3為歸檔模塊的歸檔圖表。圖4為用于說明數(shù)據(jù)格式類型對象的層級樹形圖。圖5A-C為實施歸檔圖表的調(diào)查進(jìn)行組件、調(diào)查分析組件以及采樣組件的子圖表的示意圖。圖6為上滾過程的流程圖。圖7為規(guī)范化過程的流程圖。圖8A-C例示了顯示歸檔結(jié)果的用戶界面屏幕的輸出。圖9為示范性的歸檔過程的流程圖。圖10為示范性的歸檔過程的流程圖。圖11A-B為對來自兩對字段的記錄進(jìn)行的匯合操作的兩個范例。圖12A-B為對來自兩對字段的調(diào)查記錄進(jìn)行的調(diào)查匯合操作的兩個范例。圖13為用于對兩對字段進(jìn)行單個調(diào)查匯合操作的擴(kuò)展記錄的范例。圖14為用于產(chǎn)生擴(kuò)展記錄的擴(kuò)展組件。圖15A-C為用于進(jìn)行匯合-字段分析的圖表。圖16為具有函數(shù)依賴性關(guān)系的字段的范例表格。圖17為用于進(jìn)行函數(shù)依賴性分析的圖表。具體實施例方式1概述參照圖1,數(shù)據(jù)處理系統(tǒng)10包括歸檔和處理子系統(tǒng)20,其用于處理來自數(shù)據(jù)源30的數(shù)據(jù),更新數(shù)據(jù)存儲子系統(tǒng)40中的元數(shù)據(jù)存儲器112和數(shù)據(jù)存儲器124。然后,所存儲的元數(shù)據(jù)和數(shù)據(jù)對于使用接口子系統(tǒng)50的用戶是可訪問的。一般而言,數(shù)據(jù)源30包括多種獨立的數(shù)據(jù)源,每個數(shù)據(jù)源具有獨有的存儲格式和接口(例如,數(shù)據(jù)庫表格、電子數(shù)據(jù)表(spreadsheet)文件、平面文本文件或主機(jī)110使用的固有格式)。各獨立的數(shù)據(jù)源對于歸檔和處理子系統(tǒng)20可以是本地的,例如,位于相同的計算機(jī)系統(tǒng)(例如,文件102),或者對于歸檔和處理子系統(tǒng)20可以是遠(yuǎn)端的,例如,位于通過局域或廣域數(shù)據(jù)網(wǎng)訪問的遠(yuǎn)端計算機(jī)(例如,主機(jī)110)。數(shù)據(jù)存儲子系統(tǒng)40包括數(shù)據(jù)存儲器124和元數(shù)據(jù)存儲器112。元數(shù)據(jù)存儲器112包括與數(shù)據(jù)源30中的數(shù)據(jù)相關(guān)的信息和關(guān)于數(shù)據(jù)存儲器124中的數(shù)據(jù)的信息。這種信息可包括記錄格式和確定這些記錄中字段值的有效性的規(guī)范(有效性規(guī)范)。元數(shù)據(jù)存儲器112可以用于存儲關(guān)于待歸檔的數(shù)據(jù)源30中的數(shù)據(jù)集的初始信息,以及在歸檔過程中獲得的關(guān)于此數(shù)據(jù)集的信息,和從該數(shù)據(jù)集獲取的數(shù)據(jù)存儲器124中的數(shù)據(jù)集。數(shù)據(jù)存儲器124可以用于存儲已從數(shù)據(jù)源30讀取的、使用從數(shù)據(jù)歸檔過程中獲取的信息隨意轉(zhuǎn)換后的數(shù)據(jù)。歸檔和處理子系統(tǒng)20包括歸檔模塊100,其以離散工作元素例如單獨記錄為單位直接從數(shù)據(jù)源讀取數(shù)據(jù),而不必在歸檔之前裝載(landing)數(shù)據(jù)的完整副本至存儲介質(zhì)。一般地,一個記錄與一組數(shù)據(jù)字段相關(guān)聯(lián),并且對于每個記錄,每個字段具有特定值(可能包括零值)。數(shù)據(jù)源中的記錄可以具有固定的記錄結(jié)構(gòu),即,每個記錄包括相同的字段??商鎿Q地,記錄可以具有可變記錄結(jié)構(gòu),例如,包括可變長度矢量或條件字段。在可變記錄結(jié)構(gòu)的情況下,處理記錄,不必在歸檔前存儲數(shù)據(jù)的“展平(flattened)”(即,固定的記錄結(jié)構(gòu))副本即可處理記錄。首先,當(dāng)從數(shù)據(jù)源讀取數(shù)據(jù)時,歸檔模塊100一般利用關(guān)于數(shù)據(jù)源中的記錄的某些初始格式信息啟動。(注意,在某些情況下,甚至不知道數(shù)據(jù)源的記錄結(jié)構(gòu))。關(guān)于記錄的初始信息可包括表示相異值(例如,16位(=2字節(jié)))的位數(shù);值(包括與記錄字段相關(guān)聯(lián)的值和與標(biāo)志符或分隔符相關(guān)聯(lián)的值)的順序;以及由位表示的值的類型(例如,串、帶符號/不帶符號的整數(shù))。此關(guān)于數(shù)據(jù)源的記錄的信息在元數(shù)據(jù)存儲器112所存儲的數(shù)據(jù)操縱語言(DML)文件中說明。歸檔模塊100可以使用預(yù)定義的DML文件,來自動說明來自各種通用數(shù)據(jù)系統(tǒng)格式(例如,SQL表格、XML文件、CSV文件)的數(shù)據(jù),或使用從元數(shù)據(jù)存儲器112獲得的DML文件描述定制化的數(shù)據(jù)系統(tǒng)格式。部分地,可能不精確地,在歸檔模塊100初始讀取數(shù)據(jù)之前,歸檔和處理子系統(tǒng)20可以得到關(guān)于數(shù)據(jù)源的記錄的初始信息。例如,與數(shù)據(jù)源相關(guān)聯(lián)的副本簿(copybook)可以作為存儲的數(shù)據(jù)114得到,或者由用戶118通過用戶接口116輸入得到。這種已有信息由元數(shù)據(jù)輸入模塊115處理并存儲在元數(shù)據(jù)存儲器112中和/或用于定義訪問數(shù)據(jù)源時使用的DML文件。當(dāng)歸檔模塊100從數(shù)據(jù)源讀取記錄時,其計算統(tǒng)計數(shù)字和反映數(shù)據(jù)集內(nèi)容的其他描述性信息。然后,歸檔模塊100將這些統(tǒng)計數(shù)字和描述性信息以“歸檔”的形式寫入到元數(shù)據(jù)存儲器112中,然后,通過用戶接口116或其他任何可以訪問元數(shù)據(jù)存儲器112的模塊來檢查元數(shù)據(jù)存儲器112。歸檔中的統(tǒng)計數(shù)字優(yōu)選包括每個字段中的值的直方圖、最大值、最小值及平均值,最小公共值和最大公共值的采樣。通過讀取數(shù)據(jù)源所獲得的統(tǒng)計數(shù)字可以用于各種用途。這些用途包括發(fā)現(xiàn)不熟悉數(shù)據(jù)集的內(nèi)容、建立與數(shù)據(jù)集相關(guān)聯(lián)的元數(shù)據(jù)的集合、在購買或使用之前檢查第三方數(shù)據(jù),以及對收集到的數(shù)據(jù)實施質(zhì)量控制方案(scheme)。下面將詳細(xì)描述使用數(shù)據(jù)處理系統(tǒng)10執(zhí)行這些任務(wù)的過程。元數(shù)據(jù)存儲器112能夠存儲與每個被歸檔的字段相關(guān)聯(lián)的有效性信息,例如將其作為對有效性信息編碼的有效性規(guī)范。可替換地,有效性信息可以存儲在外部存儲位置并由歸檔模塊100檢索(retrieved)。在將數(shù)據(jù)集歸檔前,有效性信息可以指定每個字段的有效數(shù)據(jù)類型。例如,如果一個字段是一個人的“頭銜”,默認(rèn)有效值可以是“串”數(shù)據(jù)類型的任何值。用戶在將數(shù)據(jù)源歸檔前還可以提供有效值例如“Mr.”、“Mrs.”和“Dr.”,從而歸檔模塊100讀取的任何其他值都將被識別為無效。用戶還可使用從歸檔運行過程中獲得的信息來指定特定字段的有效值。例如,在將數(shù)據(jù)集歸檔后,用戶可能會發(fā)現(xiàn)作為公共值出現(xiàn)的“Ms.”和“Msr.”。用戶可以將“Ms.”添加為有效值,并將值“Msr.”映射到“Mrs.”作為數(shù)據(jù)清除選項。因此,有效性信息可包括有效值和映射信息,從而允許通過將映射信息映射到有效值來清除有效值。當(dāng)通過連續(xù)的歸檔運行過程發(fā)現(xiàn)更多關(guān)于數(shù)據(jù)源的信息時,可以以迭代方式對數(shù)據(jù)源歸檔。歸檔模塊100也可以產(chǎn)生可執(zhí)行代碼,以實施能夠訪問被歸檔的數(shù)據(jù)系統(tǒng)的其它模塊。例如,處理模塊120可包括歸檔模塊100產(chǎn)生的代碼。作為對數(shù)據(jù)源的訪問過程的一部分,這種代碼的一個范例可以將值“Msr.”映射到“Mrs.”。處理模塊120可以在與歸檔模塊100相同的運行時間環(huán)境中運行,且優(yōu)選能與元數(shù)據(jù)存儲器112通信,以訪問與數(shù)據(jù)集相關(guān)聯(lián)的歸檔。處理模塊120可以讀取與歸檔模塊100相同的數(shù)據(jù)格式(例如,通過從元數(shù)據(jù)存儲器112獲得相同的DML文件)。處理模塊120在將輸入記錄存儲在數(shù)據(jù)存儲器124之前,可以使用數(shù)據(jù)集歸檔獲得驗證或清理這些輸入記錄的值。與歸檔模塊100相似,處理模塊120也以離散工作元素為單位直接從數(shù)據(jù)系統(tǒng)讀取數(shù)據(jù)。工作元素的這種“數(shù)據(jù)流”有利于對較大數(shù)據(jù)集進(jìn)行數(shù)據(jù)歸檔,而不必在本地存儲器(例如,磁盤驅(qū)動器)上復(fù)制數(shù)據(jù)。將在下文詳細(xì)描述的此數(shù)據(jù)流模型還允許處理模塊進(jìn)行復(fù)雜的數(shù)據(jù)轉(zhuǎn)換,而不需先將源數(shù)據(jù)復(fù)制至集結(jié)區(qū),這就潛在地節(jié)省了存儲空間和時間。2元數(shù)據(jù)存儲器組織結(jié)構(gòu)歸檔模塊100使用元數(shù)據(jù)存儲器112組織和存儲各種元數(shù)據(jù),并將優(yōu)選項和結(jié)果以數(shù)據(jù)對象的形式歸檔。參照圖2,元數(shù)據(jù)存儲器112可以存儲一組歸檔建立對象201(均用于與歸檔工作相關(guān)的信息)、一組數(shù)據(jù)集對象207(均用于與數(shù)據(jù)集相關(guān)的信息)、以及一組DML文件211(均描述特定的數(shù)據(jù)格式)。歸檔建立對象包含歸檔模塊100執(zhí)行的歸檔運行過程的優(yōu)選項。用戶118可以輸入用于建立新歸檔建立對象的信息或選擇預(yù)存儲的歸檔建立對象200。歸檔建立對象200包含對數(shù)據(jù)集對象206的參考204。數(shù)據(jù)集建立對象206包含數(shù)據(jù)集定位器202,用于使歸檔模塊100將待歸檔的數(shù)據(jù)定位在一個或多個在運行時間環(huán)境中可訪問的數(shù)據(jù)系統(tǒng)上。數(shù)據(jù)集定位器202一般是路徑/文件名、URL,或路徑/文件名和/或URL的列表,用于在多個位置上的數(shù)據(jù)集散布(spread)。數(shù)據(jù)集對象206可以選擇性地包含對一個或多個DML文件210的參考208。一個或多個DML文件210可以基于關(guān)于數(shù)據(jù)集中的數(shù)據(jù)格式的知識被預(yù)選擇,或可以由用戶在運行時間指定。歸檔模塊100能夠獲得數(shù)據(jù)集的初始部分,并基于默認(rèn)的DML文件通過用戶接口116向用戶呈現(xiàn)對初始部分的解釋。然后,用戶可以基于解釋的交互視圖來修改默認(rèn)的DML文件規(guī)范。如果數(shù)據(jù)集包括具有多種格式的數(shù)據(jù),則需要參考一個以上的DML文件。數(shù)據(jù)集對象206包含對一組字段對象214的參考212。在待歸檔的數(shù)據(jù)集的記錄中,每個字段有一個字段對象。一旦由歸檔模塊100執(zhí)行的歸檔運行過程完成,數(shù)據(jù)集對象206中就包含對應(yīng)于已歸檔數(shù)據(jù)集的數(shù)據(jù)集歸檔216。數(shù)據(jù)集歸檔216包含與數(shù)據(jù)集相關(guān)的統(tǒng)計數(shù)字,例如記錄的總數(shù)和有效/無效記錄的總數(shù)。字段對象218可以選擇性地包含有效性信息220,歸檔模塊100可使用有效性信息220來確定對應(yīng)字段的有效值,并指定用于清除無效值的規(guī)則(即,將無效值映射到有效值上)。字段對象218也包含歸檔模塊100在完成歸檔運行過程時存儲的字段歸檔222,字段歸檔222包含與對應(yīng)字段相關(guān)的統(tǒng)計數(shù)字,例如相異值、零值以及有效/無效值的數(shù)量。字段歸檔222還可包括采樣值,例如最大值、最小值、最大公共值和最小公共值。一個完整的“歸檔”包括數(shù)據(jù)集歸檔216和所有被歸檔字段的字段歸檔。其他用于歸檔裝置(profiler)運行的用戶優(yōu)選項可以被收集和存儲在歸檔建立對象200或數(shù)據(jù)集對象206中。例如,用戶可以選擇過濾表達(dá)式(filterexpression),該過濾表達(dá)式可用于限制字段或已歸檔的值的個數(shù),包括對值的隨機(jī)采樣(例如,1%)歸檔。3運行時間環(huán)境歸檔模塊100在允許數(shù)據(jù)從數(shù)據(jù)源讀出并處理成離散工作元素流的運行時間環(huán)境中運行。歸檔模塊100和處理模塊120執(zhí)行的計算通過有向(directed)圖表以數(shù)據(jù)流的形式表達(dá),同時這些計算式中的分量與圖表的頂點(vertice)以及這些分量之間的數(shù)據(jù)流(其對應(yīng)于圖表的鏈路(弧、邊緣))相關(guān)聯(lián)。實施這種基于圖表的計算的系統(tǒng)在U.S.專利5,966,072,“運行表達(dá)成圖表的計算”中有描述。按照此系統(tǒng)制成的圖表提供了這樣這些方法,即,獲取進(jìn)/出由圖表分量表示的各進(jìn)程的信息,在這些進(jìn)程之間移動信息,以及定義這些進(jìn)程的運行次序。此系統(tǒng)包括選擇進(jìn)程間通信方法(例如,與圖表鏈路一致的通信路徑可以使用TCP/IP或UNIX字段套接字,或使用共享存儲器來在這些進(jìn)程之間傳遞數(shù)據(jù))的算法。運行時間環(huán)境也允許歸檔模塊100作為并行進(jìn)程來運行。與上述相同類型的圖表表示(representation)可以用于描述并行處理系統(tǒng)。作為討論,并行處理系統(tǒng)包括使用多個中央處理單元(CPU)的任意結(jié)構(gòu)的計算機(jī)系統(tǒng),或者本地的(即,多處理器系統(tǒng)例如SMP計算機(jī)),或本地分布式(例如,連接成群集的多處理器或MPP),或遠(yuǎn)程的,或遠(yuǎn)程分布式(例如,經(jīng)LAN或WAN網(wǎng)連接的多處理器),或它們的任意組合。再者,這些圖表將由分量(圖表頂點)和流(圖表鏈路)組成。通過明確或暗含地復(fù)制圖表的元素(分量和流),可以表現(xiàn)系統(tǒng)中的并行度。使用用于輸入分量的鏈路輸入隊列來實施流控機(jī)制。此流控機(jī)制允許數(shù)據(jù)在圖表的分量之間流動,而不會被寫入非易失性本地存儲器例如通常較大但速率較慢的磁盤驅(qū)動器中。輸入隊列可以足夠小,以能夠?qū)⒐ぷ髟乇4嬖谝话銇碇v比非易失性存儲器小和快速的易失性存儲器中。即使對于非常大的數(shù)據(jù)集,這也能潛在地節(jié)省存儲空間和時間。這些分量可以使用輸出緩沖器來代替輸入隊列,或在使用輸入隊列之外還使用輸出緩沖器。當(dāng)兩個分量通過流連接時,只要下游分量持續(xù)使用工作元素,上游分量就發(fā)送工作元素至下游分量。如果下游分量滯后(fallsbehind),上游分量將填補(fillup)下游分量的輸入隊列,并停止工作,直到輸入隊列再次清除為止??梢允褂貌煌潭鹊奶崛》绞?abstraction)來指定計算圖表。因此,可以在另一個圖表中將包含分量和鏈路的“子圖表”表示為單個分量,該單個分量僅顯示那些連接至圖表剩余部分的鏈路。4圖表歸檔參照圖3,在一個優(yōu)選實施例中,圖表歸檔裝置400進(jìn)行用于歸檔模塊100的計算。輸入數(shù)據(jù)集組件402表示來自潛在的幾種類型的數(shù)據(jù)系統(tǒng)的數(shù)據(jù)。這些數(shù)據(jù)系統(tǒng)可以具有不同的物理介質(zhì)類型(例如,磁、光、磁光)和/或不同的數(shù)據(jù)格式類型(例如,二進(jìn)制、數(shù)據(jù)庫、電子數(shù)據(jù)表、ASCII串、CSV或XML)。輸入數(shù)據(jù)集組件402發(fā)送數(shù)據(jù)流到調(diào)查進(jìn)行組件406中。調(diào)查進(jìn)行組件406進(jìn)行數(shù)據(jù)集的“調(diào)查”,在流入該調(diào)查進(jìn)行組件的記錄中為每個獨有的字段/值對創(chuàng)建單獨的調(diào)查記錄。每個調(diào)查記錄包括用于該調(diào)查記錄的獨有字段/值對(pair)的出現(xiàn)次數(shù)的計數(shù)。調(diào)查進(jìn)行組件406具有清除選項,該清除選項可以根據(jù)存儲在對應(yīng)字段對象的有效性信息將一組無效值映射到有效值上。該清除選項也可以將記錄(具有包含無效值的字段)存儲在由無效記錄組件408表示的位置上。然后,例如想要確定無效值的源的用戶可以檢查這些無效記錄。在所示出的實施例中,從調(diào)查進(jìn)行組件406流出的調(diào)查記錄被存儲在由調(diào)查文件組件410表示的文件中。在某些情況下,對調(diào)查記錄進(jìn)行中間存儲可以增加多個圖表分量訪問調(diào)查記錄的效率??商鎿Q地,調(diào)查記錄可以從調(diào)查進(jìn)行組件406直接流到調(diào)查分析組件412,而不存儲在一個文件中。調(diào)查分析組件412創(chuàng)建每個字段的值的直方圖,并基于調(diào)查記錄對數(shù)據(jù)集進(jìn)行其他分析。在所示出的實施例中,字段歸檔組件414表示字段歸檔的中間存儲位置。元數(shù)據(jù)裝載庫組件416將字段歸檔和其他歸檔結(jié)果裝載到元數(shù)據(jù)存儲器112中的對應(yīng)對象中。用戶接口116允許用戶使用分析后的數(shù)據(jù)瀏覽,例如,查看字段中的直方圖或公共值。提供“往下深鉆(drill-down)”能力,例如,查看與直方圖中的條(bar)相關(guān)聯(lián)的特定記錄。用戶還可以基于歸檔結(jié)果通過用戶接口116更新優(yōu)選項。采樣組件418存儲采樣記錄420的集合,采樣記錄420表示與用戶接口116上顯示的值相關(guān)聯(lián)(例如,與直方圖中的條相關(guān)聯(lián))的記錄的采樣。階段(phase)虛線422表示圖表400中執(zhí)行的兩個階段,即,在左側(cè)線的所有組件運行完成后,右側(cè)線的組件開始運行。因此,在調(diào)查分析組件412完成將結(jié)果存儲在字段歸檔組件414之后,采樣組件418運行??商鎿Q地,可以從輸入數(shù)據(jù)集402中所記錄的位置檢索(retrieved)采樣記錄。歸檔模塊100可以由用戶118或自動調(diào)度程序初始化。一旦初始化歸檔模塊100,主腳本(masterscript)(未示出)從元數(shù)據(jù)存儲器112收集歸檔圖表400將使用的任何DML文件和參數(shù)。參數(shù)可以從對象例如歸檔建立對象200、數(shù)據(jù)集對象206以及字段對象218獲得。如果必要,主腳本可以基于所提供的、關(guān)于待歸檔的數(shù)據(jù)集的信息來創(chuàng)建新的DML文件。為方便起見,主腳本可以將參數(shù)編譯成工作文件。然后,主腳本可以使用來自工作文件的適當(dāng)參數(shù)運行歸檔圖表400,并在歸檔圖表400運行完成前呈現(xiàn)出進(jìn)程顯示,來跟蹤已經(jīng)經(jīng)過的時間和估計剩余時間。在歸檔圖表400運行時,基于寫入元數(shù)據(jù)存儲器112的數(shù)據(jù)(例如,工作元素)來計算所估計的剩余時間。4.1數(shù)據(jù)格式解釋利用一個輸入組件來實施歸檔模塊100中能解釋廣泛類型的數(shù)據(jù)系統(tǒng)的數(shù)據(jù)格式部分。該輸入組件配置為直接解釋一些數(shù)據(jù)格式,而不使用DML文件。例如,輸入組件可以從使用結(jié)構(gòu)化查詢語言(SQL)(一種訪問和操縱數(shù)據(jù)庫的ANSI標(biāo)準(zhǔn)計算機(jī)語言)的數(shù)據(jù)系統(tǒng)讀取數(shù)據(jù)。不使用DML文件處理的其它數(shù)據(jù)格式例如是根據(jù)XML標(biāo)準(zhǔn)或使用逗號分隔值(CSV)格式化的文本文件。對于其它數(shù)據(jù)格式,輸入組件使用歸檔建立對象200中指定的DML文件。DML文件可以指定解釋和操縱數(shù)據(jù)集中的數(shù)據(jù)的各個方面。例如,DML文件可以指定數(shù)據(jù)集的以下方面類型對象-定義原始數(shù)據(jù)與原始數(shù)據(jù)所表示的值之間的對應(yīng)關(guān)系。鍵指定符(keyspecifier)-定義在記錄之間的排序、分割和分組關(guān)系。表達(dá)式-定義使用來自常數(shù)、數(shù)據(jù)記錄字段或其它表達(dá)式結(jié)果的值進(jìn)行的計算,以產(chǎn)生新的值。轉(zhuǎn)換函數(shù)-定義用于從0到多個輸入記錄產(chǎn)生一個或更多個輸出記錄的規(guī)則和其它邏輯的集合。包(packet)-提供將類型對象、轉(zhuǎn)換函數(shù)以及可以由組件使用而完成各種任務(wù)的變量進(jìn)行分組的便利方式。類型對象是基本機(jī)構(gòu)(mechanism),用于從數(shù)據(jù)系統(tǒng)中的原始數(shù)據(jù)讀取各工作元素(例如,各記錄)。運行時間環(huán)境允許以原始數(shù)據(jù)位的串(例如,安裝在文件系統(tǒng)中或在網(wǎng)絡(luò)連接上流動)訪問物理計算機(jī)可讀存儲介質(zhì)(例如,磁、光或磁光介質(zhì))。輸入組件可以訪問DML文件以確定如何讀取和解釋原始數(shù)據(jù),以產(chǎn)生工作元素流。參照圖4,類型對象502例如可以是基本類型504或復(fù)合類型506。基本類型對象504指定如何將位的串(給定長度的串)解釋成單個值。基本類型對象504包括長度說明,其指出待讀取和分析的原始數(shù)據(jù)位的個數(shù)。長度說明可以指示固定長度例如指定個數(shù)的字節(jié)、或可變長度(在數(shù)據(jù)末端指定分隔符(例如,特定字符或串)、或待讀取的字符的個數(shù)(潛在可變的長度)。空類型(voidtype)514表示其含義或內(nèi)部結(jié)構(gòu)不必解釋的數(shù)據(jù)塊(例如,壓縮數(shù)據(jù),其不被解釋,直到解壓之后)。空類型514的長度用字節(jié)指定。數(shù)字類型516表示一個數(shù)字,并且如果該數(shù)字根據(jù)標(biāo)準(zhǔn)的或特定CPU固有的各種編碼被指定為整數(shù)524、實數(shù)526,或小數(shù)528,則會對其作出不同的解釋。串類型518用于使用指定的字符集解釋文本。日期類型520和日期時間類型522用于使用指定的字符集和其它格式化信息解釋日歷日期和/或時間。復(fù)合類型506是由多個子對象構(gòu)成的對象,這些子對象本身可以是基本類型或復(fù)合類型。矢量類型508是包含相同類型(基本或復(fù)合類型)的對象序列的對象。在矢量中的子對象的個數(shù)(即,矢量長度)可以由DML文件中的常數(shù)或由允許用可變長度來歸檔矢量的規(guī)則(例如,指明矢量末端的分隔符)指明。記錄類型510是包含對象序列(其中每個對象可以是不同的基本類型或復(fù)合類型)的對象。該序列中的每個對象對應(yīng)于與被命名的字段相關(guān)聯(lián)的值。使用記錄類型510,組件可以解釋原始數(shù)據(jù)塊,以提取一個記錄的所有字段的值。聯(lián)合(union)類型512是與記錄類型510相似的對象,不同之處在于對應(yīng)于不同字段的對象可以將相同的原始數(shù)據(jù)位解釋成不同值。聯(lián)合類型512提供了對相同原始數(shù)據(jù)進(jìn)行多種解釋的方式。DML文件還允許使用定制數(shù)據(jù)類型進(jìn)行數(shù)據(jù)歸檔。用戶通過提供類型定義,可以用其它DML類型對象(基本或復(fù)合類型)定義一個定制類型對象。然后,歸檔模塊100可以使用定制類型對象來解釋不具有標(biāo)準(zhǔn)結(jié)構(gòu)的數(shù)據(jù)。DML文件也允許使用條件結(jié)構(gòu)進(jìn)行數(shù)據(jù)歸檔。記錄可以基于與其它字段相關(guān)聯(lián)的值而僅包括一些字段。例如,如果字段“婚否”的值是“是”,記錄可以僅包括字段“配偶”。DML文件包括用于為給定記錄確定是否存在條件字段的規(guī)則。如果記錄中確實存在條件字段,可以用DML類型對象來解釋字段的值。圖表可以使用輸入組件有效地處理各種類型的記錄結(jié)構(gòu)。輸入組件使用可變記錄結(jié)構(gòu)例如條件記錄或可變長度矢量來解釋記錄的能力,使得圖表不必先將這種數(shù)據(jù)展平成固定長度的區(qū)段就能處理這種數(shù)據(jù)。圖表使用輸入組件可以進(jìn)行的另一類型的處理是發(fā)現(xiàn)數(shù)據(jù)的各部分之間的關(guān)系(例如,不同的記錄、表格或文件中的數(shù)據(jù))。圖表可以使用輸入組件內(nèi)的規(guī)則來尋找在一個表格中的外鍵或字段與另一個表格中的主鍵或字段之間的關(guān)系,或?qū)?shù)據(jù)的各部分進(jìn)行函數(shù)依賴性計算。4.2統(tǒng)計數(shù)字參照圖5A,實施調(diào)查進(jìn)行組件406的一個實施例的子圖表600包括過濾組件602,其可以基于歸檔建立對象200a中存儲的過濾表達(dá)式使一部分輸入記錄通過。過濾表達(dá)式可以限制被歸檔的字段或值的個數(shù)。過濾表達(dá)式的一個范例是將歸檔限制到每個輸入記錄的單個字段(例如,“標(biāo)題”)。過濾組件602的另一個可選的功能是運行上述的清除選項,發(fā)送無效記錄的采樣值到無效記錄組件408。從過濾組件602流出的記錄流入局部上滾序列統(tǒng)計數(shù)字組件604和循環(huán)分割組件612。在子圖表600中,歸檔圖表400(以及其它圖表和子圖表)在多個處理器和/或計算機(jī)上并行運行的能力,以及歸檔圖表400讀取多個位置上存儲的并行數(shù)據(jù)集的能力,通過組件的線厚度和組件之間的鏈路上的符號不明顯地表示。表示存儲位置的組件例如輸入數(shù)據(jù)集組件402的厚邊線表明其可選的為并行數(shù)據(jù)集。處理組件例如過濾組件602的厚邊線表明以多個分區(qū)可選地運行進(jìn)程,每個分區(qū)在不同的處理器或計算機(jī)上運行。用戶可以通過用戶接口116表明是否以并行或串行方式可選地運行并行圖表組件。細(xì)邊線表明數(shù)據(jù)集或程序是串行的。局部上滾序列統(tǒng)計數(shù)字組件604計算與輸入記錄的順序特性相關(guān)的統(tǒng)計數(shù)字。例如,組件604可以對順序的記錄對(其字段值增加、減少或遞增1)的個數(shù)進(jìn)行計數(shù)。在并行運行的情況下,為每個分區(qū)分別計算序列統(tǒng)計數(shù)字。上滾程序涉及從多個輸入元素(組件604執(zhí)行的用于上滾程序的序列統(tǒng)計數(shù)字)合并信息,產(chǎn)生單個輸出元素來代替合并的輸入元素。集合鏈接符號606表示將來自并行組件的任意多個分區(qū)的數(shù)據(jù)流合并或“集合”到串行組件的單個數(shù)據(jù)流中。整體上滾序列統(tǒng)計數(shù)字將來自多個分區(qū)的“局部”序列統(tǒng)計數(shù)字合并到單個的“整體”序列統(tǒng)計數(shù)字集合(其表示來自所有分區(qū)的記錄)。所得到的序列統(tǒng)計數(shù)字可以存儲在臨時文件610中。圖6為用于執(zhí)行上滾程序的程序700的范例的流程圖,包括局部上滾序列統(tǒng)計數(shù)字組件604和整體上滾序列統(tǒng)計數(shù)字組件608執(zhí)行的上滾程序。程序700通過接收輸入元素(步驟702)開始。然后,程序700在步驟704更新正在編譯的信息,在步驟706確定是否還有元素需要編譯。如果還有要編輯的元素,程序700在步驟702接收下一個元素,繼而在步驟704更新信息。如果沒有要更新的元素,程序700在步驟708基于已編譯的上滾信息結(jié)束輸出元素。上滾程序可以用于將一組元素合并成單個元素,或確定一組元素的集聚(aggregate)屬性(例如,這些元素中的值的統(tǒng)計數(shù)字)。循環(huán)分割組件612從輸入數(shù)據(jù)集402的單個或多個分區(qū)中提取記錄,并在多個并行處理器和/或計算機(jī)(例如,用戶選擇的)之間重新分割記錄,以在這些處理器和/或計算機(jī)之間平衡工作負(fù)荷。交叉連接鏈路符號614表示數(shù)據(jù)流的重新分割(由鏈接的組件612執(zhí)行)。標(biāo)準(zhǔn)化組件616提取記錄流,并送出包含字段/值對(其表示輸入記錄中每個字段的值)的調(diào)查元素流。(具有10個字段的輸入記錄產(chǎn)生10個調(diào)查元素的流)。每個值被轉(zhuǎn)換成規(guī)范的(即,根據(jù)預(yù)定的格式)、由人員可讀取的串表達(dá)方式。調(diào)查元素中還包括標(biāo)志(flag),其指出值是否有效以及值是否為0(即,對應(yīng)于預(yù)定的“0”值)。這些調(diào)查元素流入局部上滾字段/值組件,后者(為每個分區(qū))提取相同字段相同值的出現(xiàn)率,并將其合并到一個調(diào)查元素(包括對出現(xiàn)次數(shù)的計數(shù))中。規(guī)范化組件616的另一個輸出是對字段和值的總數(shù)的計數(shù),對于所有分區(qū),這些字段和值都被集合并合并到上滾總計數(shù)組件618中。這些總計數(shù)存儲在臨時文件620中,用于裝載到數(shù)據(jù)集歸檔216中。圖7為標(biāo)準(zhǔn)化組件執(zhí)行的程序710的范例的流程圖,可以處理可能并不都具有相同字段的條件記錄,以產(chǎn)生包含字段/值對的調(diào)查元素流。程序710執(zhí)行嵌套循環(huán),該嵌套循環(huán)始于在步驟712得到新記錄。對于每個記錄,程序710在步驟714得到那個記錄中的字段,在步驟716確定那個字段是否是條件字段。如果該字段是有條件的,程序710在步驟718確定那個記錄的那個字段是否存在。如果該字段確實存在,則程序710在步驟720規(guī)范化那個字段的記錄的值,并產(chǎn)生對應(yīng)的包含字段/值對的輸出元素。如果該字段不存在,則程序710在步驟722繼續(xù)確定是否有另一個字段或在步驟724確定是否有另一個記錄。如果該字段不是有條件的,則程序710在步驟720規(guī)范化那個字段的記錄的值(包括可能的0值)并繼續(xù)到下一個字段或記錄。字段/值分割組件624通過字段和值重新分割這些調(diào)查元素,從而在整體上滾字段/值組件626中執(zhí)行的上滾程序能夠添加在不同分割中計算的出現(xiàn)率,以便為包含在已歸檔記錄內(nèi)的每個獨有字段/值對產(chǎn)生單個調(diào)查元素中的總出現(xiàn)計數(shù)。整體上滾字段/值組件626在由調(diào)查文件組件410表示的潛在并行文件的潛在多個分區(qū)中,處理這些調(diào)查元素。圖5B為實施歸檔圖表400的調(diào)查分析組件412的子圖表630的示意圖。字段分割組件632從調(diào)查文件組件410讀取調(diào)查元素流,并基于字段根據(jù)散列值(hashvalue)重新分割這些調(diào)查元素,從而使具有相同字段(但具有不同的值)的調(diào)查記錄位于同一分區(qū)中。串、數(shù)字、日期分割組件634還根據(jù)調(diào)查元素中的值的類型分割這些調(diào)查元素。對于作為串(在上滾串組件636中)、作為數(shù)字(在上滾數(shù)字組件638中)或作為日期/日期時間(在上滾日期組件640中)的值,(使用上滾進(jìn)程)計算不同的統(tǒng)計數(shù)字。例如,計算平均值和標(biāo)準(zhǔn)偏差對于數(shù)字而言是適當(dāng)?shù)模贿m用于串。從所有分區(qū)收集這些結(jié)果,并且直方圖/十分位數(shù)信息計算組件642將用于構(gòu)建直方圖的信息(例如,每個字段的最大和最小值)提供給渲染區(qū)域(bucket)計算組件654,并將用于計算十分位數(shù)統(tǒng)計數(shù)字(例如,每個字段的值的個數(shù))的信息提供給十分位數(shù)計算組件652。在直方圖/十分位數(shù)信息計算組件642(在階段虛線644上方)完成運行后,子圖表630的產(chǎn)生直方圖和十分位數(shù)統(tǒng)計數(shù)字(在階段虛線644下方)的組件運行。子圖表630通過以下步驟構(gòu)建十分位數(shù)邊界的值(例如,大于值的10%、20%的值等等)的列表在每個分區(qū)(在歸類組件646中)內(nèi)通過值對這些調(diào)查元素進(jìn)行歸類;根據(jù)所歸類的值(在值分割組件648中)重新分割這些調(diào)查元素;并將這些調(diào)查元素合并成已歸類(串行)流,并流入十分位數(shù)計算組件652。十分位數(shù)計算組件652在每個字段中的值的總數(shù)的十分之一的組中,計數(shù)該字段的已歸類值,以尋找在十分位數(shù)邊界的值。子圖表630通過以下步驟構(gòu)建每個字段的直方圖計算定義每個值的括弧(或“渲染區(qū)域”)的值;對落入相同渲染區(qū)域的每個分區(qū)的值進(jìn)行計數(shù)(在局部上滾直方圖組件656中);對來自所有分區(qū)的每個渲染區(qū)域內(nèi)的值進(jìn)行計數(shù)(在整體上滾直方圖組件658中)。然后,合并字段歸檔部分組件660從臨時文件610將用于每個字段歸檔的所有信息,包括直方圖、十分位數(shù)統(tǒng)計數(shù)字以及序列統(tǒng)計數(shù)字,收集到字段歸檔組件414中。圖5C為實施歸檔圖表400的采樣組件418的子圖表662的示意圖。與子圖表600一樣,循環(huán)分割組件664從輸入數(shù)據(jù)集402的單個或多個分區(qū)提取記錄,并在多個并行處理器和/或計算機(jī)之間重新分割記錄,以在這些處理器和/或計算機(jī)之間平衡工作負(fù)荷。查找和選擇組件666使用來自字段歸檔組件414的信息,確定記錄是否對應(yīng)于用戶接口116上顯示的值,該值可以由用戶選擇用于“往下深鉆”的查看。用戶接口116中顯示的每種類型的值對應(yīng)于不同的“采樣類型”。如果記錄中的值對應(yīng)于采樣類型,查找和選擇組件666計算隨機(jī)選擇數(shù),該隨機(jī)選擇數(shù)確定該記錄是否被選擇用于表示采樣類型。例如,對于特定采樣類型的總共五個采樣記錄,如果選擇數(shù)是能夠看到的五個最大數(shù)之一(其為單個分區(qū)內(nèi)的特定采樣類型),那么傳遞對應(yīng)的記錄以及指明什么值可以對應(yīng)于“往下深鉆”的瀏覽的信息作為輸出。采用這種方案,任何采樣類型的第一組五個記錄與具有所能看到的五個最大選擇數(shù)之一的任何其他記錄一樣,可以自動地傳遞到下一個組件。下一個組件是采樣類型分割組件668,其根據(jù)采樣類型重新分割記錄,從而歸類組件670可以使用每個采樣類型內(nèi)的選擇數(shù)進(jìn)行類別。然后,搜尋)組件672為每個采樣類型選擇具有最大選擇數(shù)(在所有分區(qū)之間)的五個記錄。然后,記錄/鏈接采樣組件674將這些采樣記錄寫入到采樣記錄文件420,并將這些記錄鏈接到字段歸檔組件414中的對應(yīng)值。元數(shù)據(jù)裝載庫組件416將數(shù)據(jù)集歸檔從臨時文件組件620裝載到元數(shù)據(jù)存儲器112中的數(shù)據(jù)集歸檔216對象中,并將每個字段歸檔從字段歸檔組件414裝載到元數(shù)據(jù)存儲器112中的字段歸檔222對象中。然后,用戶接口116可以檢索數(shù)據(jù)集的歸檔結(jié)果,并在用戶接口116產(chǎn)生的屏幕上顯示給用戶118。用戶可以瀏覽歸檔結(jié)果,以觀看字段的直方圖或公共值。例如,可以提供“往下深鉆”的能力,以觀看與直方圖中的條相關(guān)聯(lián)的特定記錄。圖8A-C例示了顯示歸檔結(jié)果的用戶界面屏幕輸出。圖8A示出來自數(shù)據(jù)集歸檔216的結(jié)果。數(shù)據(jù)集的各種總數(shù)802作為整體示出,還示出了與已歸檔字段相關(guān)聯(lián)的屬性的概述804。圖8B-C示出來自示范性的字段歸檔222的結(jié)果。以各種形式顯示對例如最大公共值806以及最大公共無效值808的值的選擇,這些形式包括其自身作為人員可讀的串的值810、值的出現(xiàn)率的總計812、作為值的總數(shù)的百分比的出現(xiàn)率814以及條形統(tǒng)計圖表816。所顯示的值的直方圖818示出跨越值的范圍的多個渲染區(qū)域中每個渲染區(qū)域的條目,包括計數(shù)為0的渲染區(qū)域。還顯示了十分位數(shù)邊界820。5范例5.1數(shù)據(jù)發(fā)現(xiàn)圖9為程序900的范例的流程圖,用于將數(shù)據(jù)集歸檔,以便在將其用于另一個程序之前發(fā)現(xiàn)其內(nèi)容。程序900可以自動(例如,由調(diào)度腳本)或手動(例如,由用戶在終端)進(jìn)行。首先,程序900在902在在運行時間環(huán)境中可訪問的一個或多個數(shù)據(jù)系統(tǒng)上識別待歸檔的數(shù)據(jù)集。然后,程序900可以基于所提供的信息或已有的元數(shù)據(jù),選擇性地在步驟904設(shè)置記錄格式并在步驟906設(shè)置有效性規(guī)則906。對于某些類型的數(shù)據(jù),例如數(shù)據(jù)庫表格,可以使用默認(rèn)記錄格式和有效性規(guī)則。然后,程序900在步驟908對數(shù)據(jù)集(或數(shù)據(jù)集的子集)運行歸檔。程序900可以基于初始?xì)w檔的結(jié)果在步驟910精簡記錄格式,或在步驟912精簡有效性規(guī)則。如果任一歸檔選項發(fā)生改變,那么程序900在步驟914判定是否使用新的選項對該數(shù)據(jù)集運行另一歸檔,或者如果已經(jīng)從(可能重復(fù)的)歸檔過程中獲得關(guān)于該數(shù)據(jù)集的足夠信息,則在步驟916處理該數(shù)據(jù)集。該過程將使用從歸檔過程中獲得的信息直接從一個或更多個數(shù)據(jù)系統(tǒng)讀取。5.2質(zhì)量測試圖10為程序1000的范例的流程圖,用于將數(shù)據(jù)集歸檔,以在將其轉(zhuǎn)換并裝載到數(shù)據(jù)存儲器中之前測試其質(zhì)量。進(jìn)程1000可以自動或手動進(jìn)行。測試數(shù)據(jù)集的質(zhì)量的規(guī)則可以來自數(shù)據(jù)集的先前知識,和/或來自歸檔程序例如對相似的數(shù)據(jù)集(例如,作為待測試數(shù)據(jù)集的來自相同源的數(shù)據(jù)集)進(jìn)行的程需900的結(jié)果。此程序1000例如可以為商業(yè)上使用,用以在輸入或處理數(shù)據(jù)之前,將從商業(yè)伙伴發(fā)送的定期的(例如每月)數(shù)據(jù)輸入進(jìn)行歸檔。這將允許商業(yè)上檢測到“壞”數(shù)據(jù)(例如,無效值的比例高于閾值的數(shù)據(jù)),因此不會因難以取消的動作“污染”了已有的數(shù)據(jù)存儲器。首先,程序1000在步驟1002在運行時間環(huán)境中可訪問的一個或多個數(shù)據(jù)系統(tǒng)上識別待測試的數(shù)據(jù)集。然后,程序1000在步驟1004對數(shù)據(jù)集(或數(shù)據(jù)集的子集)運行歸檔,并在步驟1006基于歸檔結(jié)果進(jìn)行質(zhì)量測試。例如,可以將該數(shù)據(jù)集的特定公共值的出現(xiàn)比例與先前數(shù)據(jù)集(基于先前的歸檔運行)的該公共值的出現(xiàn)比例相比較,如果二者的比例相差超過10%,則質(zhì)量測試失敗。此質(zhì)量測試可以應(yīng)用于一系列數(shù)據(jù)集中眾所周知的一直出現(xiàn)的值(在10%內(nèi))。程序1000在步驟1008確定質(zhì)量測試的結(jié)果,如果失敗則在步驟1010產(chǎn)生標(biāo)志(例如,用戶界面提示或登錄到日志文件)。如果質(zhì)量測試通過,則程序1000直接從一個或多個數(shù)據(jù)系統(tǒng)讀取數(shù)據(jù),并在步驟1012變換(可能使用來自歸檔的信息)并將其從數(shù)據(jù)集裝載到數(shù)據(jù)存儲器中。然后,例如通過在步驟1002識別另一個數(shù)據(jù)集重復(fù)該程序。5.3代碼產(chǎn)生歸檔模塊100可以產(chǎn)生可執(zhí)行代碼,例如可以用于處理來自數(shù)據(jù)集的記錄流的圖表組件。所產(chǎn)生的組件可以對輸入(incoming)記錄進(jìn)行過濾,只允許有效記錄流出,這類似于歸檔圖表400的清除選項。例如,用戶可以選擇歸檔選項,該歸檔選項指明一旦完成歸檔運行就應(yīng)產(chǎn)生清除組件。用于實施該組件的代碼指向文件位置(由用戶指定)。然后,所產(chǎn)生的清除組件可以在與歸檔模塊100(其在歸檔運行期間使用存儲在元數(shù)據(jù)存儲器112的信息)相同的運行時間環(huán)境中運行。6匯合-字段分析歸檔模塊100可以選擇性地對一組或多組字段內(nèi)的關(guān)系進(jìn)行分析。例如,歸檔模塊100能夠在一對字段的兩個字段之間進(jìn)行分析,這一對字段可以在相同或不同的數(shù)據(jù)集中。類似地,歸檔模塊能夠?qū)Χ鄠€字段對進(jìn)行分析,例如分析一個數(shù)據(jù)集中的每個字段與一個數(shù)據(jù)集中的每個字段,或分析一個數(shù)據(jù)集中的每個字段與同一數(shù)據(jù)集中的每個其它字段。在不同數(shù)據(jù)集中的兩個字段的分析與這兩個數(shù)據(jù)集在這些字段上的匯合操作的特性有關(guān),這一點將在下面詳細(xì)描述。在匯合-字段分析的第一種方式中,對兩個數(shù)據(jù)集(例如,文件或表格)進(jìn)行匯合操作。在另一方式(將在下面的6.1節(jié)中描述)中,在調(diào)查進(jìn)行組件406產(chǎn)生數(shù)據(jù)集的調(diào)查文件后,該調(diào)查文件中的信息可以用于在兩個不同的已歸檔數(shù)據(jù)集中的字段之間,或在相同的已歸檔數(shù)據(jù)集(或任何其它存在調(diào)查文件的數(shù)據(jù)集)的兩個不同部分中的字段之間進(jìn)行匯合-字段分析。匯合-字段分析的結(jié)果包括關(guān)于這些字段之間的潛在關(guān)系的信息。發(fā)現(xiàn)三種類型的關(guān)系“通用域”關(guān)系,“匯合井(jointwell)”關(guān)系以及“外鍵”關(guān)系。如果匯合-字段分析的結(jié)果符合如下文所述的某種標(biāo)準(zhǔn),一對字段則被分類為具有這三種類型的關(guān)系之一。匯合-字段分析包括編譯信息,該信息例如是使用這兩個字段作為鍵字段進(jìn)行的匯合操作所產(chǎn)生的記錄個數(shù)。圖11A-B為對來自兩個數(shù)據(jù)庫表格的記錄進(jìn)行的匯合操作的兩個范例。表格A和表格B均具有標(biāo)注為“字段1”和“字段2”的兩個字段和四個記錄。參照圖11A,匯合組件1100將來自表格A的記錄的鍵字段的值與來自表格B的記錄的鍵字段的值相比較。對于表格A,鍵字段是字段1;對于表格B,鍵字段是字段2。因此,匯合組件1100將來自表格A、字段1(A1)的值1102與來自表格B、字段1(B1)的值1104相比較。匯合組件1100從這些表格接收輸入記錄流1110,并基于鍵-字段值的比較結(jié)果產(chǎn)生用以形成的新的匯合表格,即表格C的匯合記錄流1112。匯合組件1100為這些輸入流的每對匹配的鍵-字段值,產(chǎn)生一個匯合記錄,該匯合記錄是具有匹配的鍵-字段值的記錄的串聯(lián)。在匯合輸出端口1114輸出的具有特定鍵-字段值的匯合記錄的個數(shù)是記錄個數(shù)分別與每個輸入的鍵-字段值的笛卡爾乘積(Cartesianproduct)。在所示出的范例中,所示出的輸入記錄流1110由它們各自的鍵字段的值標(biāo)注,并且所示出的匯合記錄的輸出流1112由匹配值標(biāo)注。由于在兩個輸入流中均出現(xiàn)兩個“X”值,在輸出流就有四個“X”值。對于表格A和表格B的輸入流,在一個輸入流中具有與在其它輸入流中的任何記錄都不匹配的鍵-字段值的記錄,分別在“拒絕”輸出端口1116A和1116B輸出。在所示出的范例中,“W”值出現(xiàn)在“拒絕”輸出端口1116A。歸檔模塊100編譯匯合和拒絕的值的統(tǒng)計數(shù)字,用于對兩個字段之間的關(guān)系進(jìn)行分類。這些統(tǒng)計數(shù)字被概述在分布表1118中,該分布表1118對這兩個字段中的值的分布進(jìn)行分類?!俺霈F(xiàn)次數(shù)”表示在字段中值出現(xiàn)的次數(shù)。該表中的欄對應(yīng)于第一字段(在此范例中來自表格A)的出現(xiàn)次數(shù)0、1以及N(其中N>1),該表中的行對應(yīng)于第二字段(在此范例中來自表格B)的出現(xiàn)次數(shù)0、1以及N(其中N>1)。該表中的框包含與對應(yīng)的分布圖形相關(guān)聯(lián)的計數(shù)“欄出現(xiàn)數(shù)”ד行出現(xiàn)數(shù)”。每個框包含兩個計數(shù)具有該分布圖形的相異值的個數(shù),這些值的各匯合記錄的總數(shù)。在一些情況下,這些值在兩個字段都出現(xiàn)(即,具有分布圖形1×1、1×N、N×1或N×N),在另一些情況下,這些值僅在一個字段中出現(xiàn)(即,具有分布圖形1×0、0×1、N×0或0×N)。這些計數(shù)用逗號分開。分布表1118包含對應(yīng)于匯合記錄1112和在端口1116A上的拒絕記錄的計數(shù)。在“拒絕”輸出端口1116A上的值“W”對應(yīng)于分布圖形1×0的框中的計數(shù)“1,1”,分別表示單個值和單個記錄。由于值“X”在每個輸入流出現(xiàn)兩次,對于總的四個匯合記錄,值“X”對應(yīng)于分布圖形N×N的框中的計數(shù)“1,4”。由于值“Y”在第一輸入流出現(xiàn)一次而在第二輸入流出現(xiàn)兩次,對于總的兩個匯合記錄,值“Y”對應(yīng)于分布圖形1×N的框中的計數(shù)“1,2”。圖11B為與圖11A的范例類似的范例,但是具有不同的鍵字段對。對于表格A,鍵字段是字段1;對于表格B,鍵字段是字段2。因此,匯合組件將來自表格A、字段1(A1)的值1102與來自表格B、字段2(B2)的值1120相比較。此范例具有分布表1122,該分布表1122的計數(shù)對應(yīng)于這些字段的輸入記錄流1124。與圖11A中的范例類似,存在單個拒絕值“Z”,其對應(yīng)于分布圖形0×1的框中的計數(shù)“1,1”。然而,在此范例中,存在兩個值“W”和“Y”,由于有兩個值和兩個匯合記錄,它們都具有分布圖形1×1,對應(yīng)于分布圖形1×1的框中的計數(shù)“2,2”。值“X”對應(yīng)于分布圖形N×1的框中的計數(shù)“1,2”,指明單個值和2個匯合記錄。從分布表的這些數(shù)字可以進(jìn)行各種合計。其中某些合計包括在表格A和表格B中都出現(xiàn)的相異鍵-字段值的總數(shù),在表格A中出現(xiàn)的相異鍵-字段值的總數(shù),在表格B中出現(xiàn)的相異鍵-字段值的總數(shù),以及在每個表格中的獨有值(即,在鍵字段值的單個記錄中僅出現(xiàn)一次的值)總數(shù)?;谶@些合計的某些統(tǒng)計數(shù)字用于確定一對字段是否具有前述三種類型的關(guān)系之一。這些統(tǒng)計數(shù)字包括字段中具有相異或獨有值的總記錄的比例、具有特定分布圖形的總記錄的比例,以及每個字段的“相對值重疊”。相對值重疊是在一個字段出現(xiàn)、也在其它字段出現(xiàn)的相異值的比例。確定一對字段是否具有三種類型的關(guān)系(這些關(guān)系不一定是互斥的)之一的標(biāo)準(zhǔn)如下外鍵關(guān)系-這些字段的第一個字段具有較高的相對值重疊(例如,>99%),且第二個字段具有較高比例(例如,>99%)的唯一值。第二個字段是潛在的主鍵,且第二字段是潛在的主鍵的外鍵。匯合井關(guān)系-這些字段中至少一個字段的拒絕記錄具有較小的比例(例如,<10%),且具有分布圖形N×N的各匯合記錄的比例較小(例如,<1%)通用域關(guān)系-這些字段中至少一個字段具有較高的相對值重疊(例如,>95%)如果一對字段具有外鍵以及匯合井或通用域關(guān)系,則報告外鍵關(guān)系。如果一對字段具有匯合井與通用域關(guān)系,但不具有外鍵關(guān)系,則報告匯合井關(guān)系。6.1調(diào)查匯合參照圖12A,在實際對這些表格執(zhí)行匯合操作的一個替換方案中,調(diào)查匯合組件1200分析來自表格A和表格B的字段,并通過對這些表格的調(diào)查數(shù)據(jù)執(zhí)行“調(diào)查匯合”操作,來編譯分布表的統(tǒng)計數(shù)字。每個調(diào)查記錄具有字段/值對以及該值在該字段中的出現(xiàn)計數(shù)。由于對于給定的鍵字段,每個調(diào)查記錄具有獨有的字段/值對,則調(diào)查匯合組件1200的輸入流的值是獨有的。圖12A的范例對應(yīng)于對鍵字段對A1、B1(圖11A所示)的匯合操作。通過比較與該匯合操作中的鍵字段對應(yīng)的調(diào)查記錄,由過濾組件1202選擇“字段1”(A1)和由過濾組件1204選擇“字段1”(B1),調(diào)查匯合組件1200潛在地進(jìn)行比匯合組件1100(其比較來自表格A和表格B的各記錄的鍵字段)的比較數(shù)目小得多的比較。圖12B的范例對應(yīng)于對鍵字段對A1、B2(圖11B所示)的匯合操作,由過濾組件1206選擇“字段1”(A1)和由過濾組件1208選擇“字段2”(B2)。所示出的所選調(diào)查記錄1210-1218由它們各自在字段/值對中的字段值和該值的出現(xiàn)計數(shù)來標(biāo)注。如果調(diào)查匯合組件1200發(fā)現(xiàn)兩個輸入調(diào)查記錄1210-1218中的值之間的匹配,輸出記錄包含匹配值、基于這兩個計數(shù)的對應(yīng)分布圖形,以及在該對鍵字段的匯合操作中將產(chǎn)生的記錄總數(shù)(其就是這兩個計數(shù)的乘積)。如果沒有發(fā)現(xiàn)該值的匹配,也輸出該值與對應(yīng)的分布圖形和記錄總數(shù)(其是在單個輸入記錄中的單個計數(shù))。在調(diào)查匯合組件1200的輸出記錄內(nèi)的此信息足以編譯在匯合操作的分布表中的所有計數(shù)。在圖12A的范例中,在輸出端出現(xiàn)的值“W”的分布圖形為1×0,共為1;在輸出端出現(xiàn)的值“X”的分布圖形為N×N,共為4;以及在輸出端出現(xiàn)的值“Y”的分布圖形為1×N,共為2。此信息對應(yīng)于圖11A的分布表1118中的信息。在圖12B的范例中,在輸出端出現(xiàn)的值“W”的分布圖形為1×1,共為1;在輸出端出現(xiàn)的值“X”的分布圖形為N×1,共為2;在輸出端出現(xiàn)的值“Y”的分布圖形為1×1,值為1;以及在輸出端出現(xiàn)的值“Z”的分布圖形為0×1,值為1。此信息對應(yīng)于圖11B的分布表1122中的信息。6.2擴(kuò)展記錄用于在單個調(diào)查匯合操作中的多個字段對的匯合-字段分析包括基于調(diào)查記錄產(chǎn)生“擴(kuò)展記錄”。在圖13所示的范例中,調(diào)查匯合組件1200比較用于兩對鍵字段A1、B1和A1、B2的匯合-字段分析的記錄,并結(jié)合圖12A-B所示的匯合-字段分析。通過連接被匯合的一對鍵字段的獨有標(biāo)識符與在調(diào)查記錄中的值,并保持相同的出現(xiàn)計數(shù)作為該調(diào)查記錄,從該調(diào)查記錄產(chǎn)生擴(kuò)展記錄。如果匯合-字段分析包括與多個其它字段匯合的一字段的結(jié)果,則為該字段的每個值產(chǎn)生多個擴(kuò)展記錄。例如,調(diào)查記錄1210對應(yīng)于兩個擴(kuò)展記錄1301-1302,且值“W”分別與標(biāo)識符“A1B1”和“A1B2”連接。調(diào)查匯合組件1200處理擴(kuò)展記錄1301的方式與其將處理具有值“WA1B1”的調(diào)查記錄的方式相同。同樣,調(diào)查記錄1211對應(yīng)于兩個擴(kuò)展記錄1303-1304,以及調(diào)查記錄1212對應(yīng)于兩個擴(kuò)展記錄1305-1306。在圖13的匯合-字段分析中,字段B1僅與一個其它字段(A1)匯合,因此每個調(diào)查記錄1213-1214分別對應(yīng)于單個擴(kuò)展記錄1307-1308。同樣,字段B2僅與一個其它字段(A1)匯合,因此每個調(diào)查記錄1215-1218分別對應(yīng)于單個擴(kuò)展記錄1309-1312。每個擴(kuò)展記錄包括基于與獨有的字段標(biāo)識符連接的原始值的值。參照圖14,擴(kuò)展組件1400基于匯合信息1401處理輸入調(diào)查記錄以產(chǎn)生擴(kuò)展記錄,匯合信息1401指明在匯合-字段分析中哪些字段與哪些其它字段匯合。在此范例中,匯合信息1401指明來自表格T1的調(diào)查數(shù)據(jù)的字段F1(具有四個調(diào)查記錄1402)正與四個其它字段匯合來自表格T2的調(diào)查數(shù)據(jù)的字段F1(具有兩個調(diào)查記錄1404),來自表格T2的調(diào)查數(shù)據(jù)的字段F2(具有兩個調(diào)查記錄1406),來自表格T3的調(diào)查數(shù)據(jù)的字段F1(具有兩個調(diào)查記錄1408),以及來自表格T3的調(diào)查數(shù)據(jù)的字段F2(具有兩個調(diào)查記錄1410)。流入擴(kuò)展組件1400的調(diào)查記錄1412表示來自表格T1(具有字段F1和值Vi,其中i=1,2,3,或4)的調(diào)查數(shù)據(jù)的四個調(diào)查記錄1402之一。對于輸入調(diào)查記錄1412,擴(kuò)展組件1400產(chǎn)生四個擴(kuò)展記錄1413-1416。對于字段(包括在不同表格中具有相同名字的字段),調(diào)查匯合組件1200使用獨有的標(biāo)識符。擴(kuò)展記錄1413具有值c(T1,F(xiàn)1,T2,F(xiàn)1,Vi),值c是原始值Vi與被匯合的字段的標(biāo)識符以及表格(或文件或其它數(shù)據(jù)源)的標(biāo)識符的連接,其中從該表格(或文件或其它數(shù)據(jù)源)中產(chǎn)生字段的調(diào)查數(shù)據(jù)。表格包括標(biāo)志符能夠區(qū)分具有相同名稱的字段。擴(kuò)展記錄1415具有區(qū)別于擴(kuò)展記錄1413的值c(T1,F(xiàn)1,T2,F(xiàn)1,Vi)的值c(T1,F(xiàn)1,T3,F(xiàn)1,Vi),其中兩個表格T2和T3具有相同的字段名F1??商鎿Q地,可以代替字段名,將獨有數(shù)字分配給每個字段并使用。6.3匯合-字段分析圖表圖15A-B為歸檔模塊100使用的圖表,以對在數(shù)據(jù)源30內(nèi)的源(例如,表格或文件)中所選擇的字段進(jìn)行任意的匯合-字段分析。用戶118選擇用于歸檔和匯合-字段分析的選項,包括執(zhí)行不進(jìn)行匯合-字段分析的歸檔的選項。用戶118選擇用于匯合-字段分析的字段對,包括互相成對的兩個指定字段、與每個其它字段成對的一個字段、或與每個其它字段成對的每個字段。用戶118選擇一選項,以允許在相同的表格或文件內(nèi)的字段的成對,或僅允許在不同的表格或文件內(nèi)的字段的成對。這些選項存儲在元數(shù)據(jù)存儲器112中。參照圖15A,對于匯合-字段分析選項中指定的字段的每個源(例如,表格或文件),圖表1500利用為這些指定字段準(zhǔn)備的調(diào)查數(shù)據(jù)1510產(chǎn)生一文件。圖表1500對匯合-字段分析中所含的每個這樣的源運行一次。過濾組件1504從調(diào)查進(jìn)行組件406產(chǎn)生的調(diào)查數(shù)據(jù)1502接收記錄,并準(zhǔn)備用于匯合-字段分析的記錄。過濾組件1504丟掉該分析中不包括的字段的記錄(由存儲在元數(shù)據(jù)存儲器112的用戶選項確定)。過濾組件1504還丟掉無效值、零值、以及對數(shù)據(jù)源的內(nèi)容的有意義的分析中不包括的其它值(例如眾所周知的數(shù)據(jù)標(biāo)志)。調(diào)查數(shù)據(jù)組件1502中的值已經(jīng)被規(guī)范化組件616在調(diào)查進(jìn)行組件406中規(guī)范化。然而,這些規(guī)范化的值可能具有不應(yīng)當(dāng)用在值的邏輯比較中的部分(例如,具有引導(dǎo)或拖尾空間的串,或具有引導(dǎo)或拖尾零的數(shù)字)。用戶118可以選擇用于“字面地”或“邏輯地”比較這些值的選項。如果用戶118選擇“字面”比較,則調(diào)查記錄中的這些值以規(guī)范化的形式保留。如果用戶118選擇“邏輯”比較,則過濾組件1504根據(jù)規(guī)則(例如除去數(shù)字的引導(dǎo)和拖尾空間以及除去數(shù)字的引導(dǎo)和拖尾零)來轉(zhuǎn)換調(diào)查記錄中的值。值分割組件1506基于調(diào)查記錄中的值重新分割記錄。具有相同值的任何調(diào)查記錄被放入相同的分區(qū)。這允許匯合-字段分析跨過任意個數(shù)的分區(qū)并行運行。由于對于具有匹配值的輸入記錄,調(diào)查匯合組件1200只產(chǎn)生輸出記錄,在不同分區(qū)中的調(diào)查記錄(或它們產(chǎn)生的任何擴(kuò)展記錄)不必互相比較。上滾邏輯值組件1508合并因過濾組件1504進(jìn)行的轉(zhuǎn)換具有匹配的字段/值對的任意調(diào)查記錄。合并后的記錄具有出現(xiàn)計數(shù),該出現(xiàn)計數(shù)是對所有合并記錄的計數(shù)的和。例如,如果字段、值、計數(shù)為“數(shù)量,01.00,5”的調(diào)查記錄被轉(zhuǎn)換為“數(shù)量,1,5”,且字段、值、計數(shù)為“數(shù)量,1.0,3”的調(diào)查記錄被轉(zhuǎn)換為“數(shù)量,1,3”,則上滾邏輯值組件1508將這兩個轉(zhuǎn)換后的記錄合并成字段、值、計數(shù)為“數(shù)量,1,8”的單個記錄。參照圖15B,對于如匯合-字段分析選項所指定的具有一個或多個待比較字段的每對源,即,源A和源B,圖表1512使用準(zhǔn)備的調(diào)查數(shù)據(jù)A1514和準(zhǔn)備的調(diào)查數(shù)據(jù)B1516(均由圖表1500準(zhǔn)備)運行。兩個擴(kuò)展組件1400從這些準(zhǔn)備的調(diào)查數(shù)據(jù)組接收記錄以及匯合信息1515,該匯合信息1515指定將要與源B中的指定字段進(jìn)行比較的源A中的指定字段。擴(kuò)展記錄流入調(diào)查匯合組件1200,該調(diào)查匯合組件1200產(chǎn)生包含值、分布圖形、以及分布表中正在比較的字段的計數(shù)的記錄。局部上滾匯合統(tǒng)計數(shù)字組件1518編譯在每個分區(qū)內(nèi)的這些記錄中的信息。然后,在各種分區(qū)中的記錄由整體上滾匯合統(tǒng)計數(shù)字組件1520收集和編譯,該整體上滾匯合統(tǒng)計數(shù)字組件1520輸出文件1522,其包含對被分析的所有數(shù)據(jù)源對中的字段的所有匯合-字段分析統(tǒng)計數(shù)字。匯合-字段分析的結(jié)果(包括在各種字段之間潛在地存在這三種類型的關(guān)系中的哪個)裝載到元數(shù)據(jù)存儲器112中,用于呈現(xiàn)給用戶118。例如,用戶118可以在用戶接口116上選擇用于具有潛在關(guān)系的一對字段的鏈路,并在用戶接口116上觀看頁面,該頁面具有詳細(xì)的分析結(jié)果(其包括來自分布表的該對字段的計數(shù))。參照圖15C,當(dāng)對相同源(源C)內(nèi)的兩個字段進(jìn)行匯合-字段分析時,圖表1524使用圖表1500準(zhǔn)備的調(diào)查數(shù)據(jù)C1526運行。單個擴(kuò)展組件1400從該組準(zhǔn)備的調(diào)查數(shù)據(jù)C1526接收記錄以及匯合信息1528,該匯合信息1528指定待比較的源C中的指定字段。擴(kuò)展記錄流入調(diào)查匯合組件1200的兩個端口,該調(diào)查匯合組件1200產(chǎn)生包含值、分布圖形、以及分布表中待比較字段的計數(shù)的記錄。在匯合-字段分析選項指明源C中的每個字段將要與源C(具有四個字段F1,F(xiàn)2,F(xiàn)3,F(xiàn)4)中的每個其它字段相比較的情況下,一種方式是匯合信息1528指定十二對字段(F1-F2,F(xiàn)1-F3,F(xiàn)1-F4,F(xiàn)2-F1,F(xiàn)2-F3,F(xiàn)2-F4,F(xiàn)3-F1,F(xiàn)3-F2,F(xiàn)3-F4,F(xiàn)4-F1,F(xiàn)4-F2,F(xiàn)4-F3)。然而,由于對于字段對F1-F3和F3-F1要進(jìn)行相同的操作,一些操作被重復(fù)進(jìn)行。因而,另一種方式是匯合信息僅指定六對獨有字段對F1-F2,F(xiàn)1-F3,F(xiàn)1-F4,F(xiàn)2-F3,F(xiàn)2-F4,F(xiàn)3-F4。在此情況下,通過將已分析的六對字段的分析結(jié)果中的字段次序顛倒,輸出文件1530的結(jié)果可以被擴(kuò)大為包括其它六個字段對的結(jié)果。7函數(shù)依賴性分析歸檔模塊100能夠進(jìn)行的另一種類型的分析是測試字段值之間的函數(shù)關(guān)系。所測試的字段可以來自具有一組字段的單個表格或來自“虛擬(virtual)表格”,該虛擬表格包括來自彼此相關(guān)的多個源(例如,通過使用公共鍵字段對這些字段的匯合操作而相關(guān),這將在7.3節(jié)中詳細(xì)描述)的字段。在一對字段之間的一種類型的函數(shù)關(guān)系是“函數(shù)依賴性”,即,與記錄的一個字段相關(guān)聯(lián)的值可以由與記錄的另一個字段相關(guān)聯(lián)的值唯一地確定。例如,如果數(shù)據(jù)庫具有州(State)字段和郵政編碼(ZipCode)字段,郵政編碼字段的值(例如,90019)確定州字段的值(例如,CA)。郵政編碼字段的每個值映射到州字段的獨有值(即,“多對一”映射)。函數(shù)依賴性關(guān)系也可以存在于字段的子集(其中與記錄的一個字段相關(guān)聯(lián)的值可以由與記錄的另一個字段相關(guān)聯(lián)的值唯一地確定)之間。例如,郵政編碼字段的值可以由城市字段和街道字段的值唯一地確定。函數(shù)依賴性也可以是“近似的函數(shù)依賴性”,即與一個字段相關(guān)聯(lián)的某些(不必全部)值映射到另一個字段的獨有值,且具有未映射獨有值的例外值具有一定比例。例如,一些記錄可能具有未知的由特殊值00000表示的郵政編碼。在此情況下,郵政編碼字段的值00000可以映射到州字段的超過一個的值(例如CA,F(xiàn)L,以及TX)。也可能因具有不正確的值或其它錯誤的記錄而出現(xiàn)例外值。如果例外值的比例小于預(yù)定(例如,由用戶輸入的)閾值,則字段可以仍被確定為與另一個字段存在函數(shù)依賴性。參照圖16,示出范例表格1600,其具有將要測試函數(shù)依賴性或近似函數(shù)依賴性的記錄(行)和字段(欄)。姓(LastName)字段具有對應(yīng)于十二個記錄(行1-12)的十二個值。其中十個值是獨有的,這些記錄中的兩個具有相同的重復(fù)值名g。國籍(Citizenship)字段具有兩個獨有值US出現(xiàn)十一次,CANADA出現(xiàn)一次。郵政編碼字段具有各種值,每個對應(yīng)于州字段的三個值CA、FL以及TX的一個。除了對應(yīng)于一個記錄(行10)中的FL和對應(yīng)于另一個記錄(行12)中的TX的郵政編碼值00000,郵政編碼的每個值唯一地確定州的值。7.1函數(shù)依賴性分析圖表圖17為歸檔模塊100使用的圖表1700的范例,以對在數(shù)據(jù)源30內(nèi)的一個或多個源(例如,在單個表格或文件中,或如7.3節(jié)所述的在多個表格和/或文件中)中所選擇的字段進(jìn)行任意的函數(shù)依賴性分析。用戶118選擇用于歸檔和函數(shù)依賴性分析的選項,包括執(zhí)行不進(jìn)行函數(shù)依賴性分析的歸檔的選項。用戶118可以選則哪對字段或哪些字段對進(jìn)行函數(shù)關(guān)系的測試。用戶118選擇數(shù)據(jù)源(例如,表格或文件)的特定字段,并選擇例如“全部到選擇”或“選擇到選擇”來確定測試哪些字段對,或選擇“全部到全部”,來測試數(shù)據(jù)源中的所有字段對。在決定字段與或不與另一個字段存在函數(shù)依賴性之前,用戶可以選擇確定函數(shù)依賴性程度的閾值。例如,用戶可以選擇確定允許多少例外值(作為記錄的比例)的閾值。這些選項存儲在元數(shù)據(jù)存儲器112中。對于將要分析的每對字段(f1,f2),圖表1700確定是否存在函數(shù)依賴性關(guān)系,如果存在,則將字段f1和字段f2之間的關(guān)系歸類為“f1確定f2”、“f2確定f1”、“一對一”(在f1與f2之間存在一對一的映射),或“等同”(在每個記錄中f1基本具有與f2相同的值)。圖表1700讀取由在歸檔模塊100存儲的字段信息1702,以確定待分析的字段的獨有標(biāo)識符。配對組件1704使用待測試的每對字段的一對獨有標(biāo)識符產(chǎn)生字段對(f1,f2)的流。由于f2與f2之間的關(guān)系不必是對稱的,該對字段(f1,f2)是有序的對。因此該流中包括兩對字段(f1,f2)和(f2,f1)。字段對選擇組件1706通過選擇用戶為分析選擇的字段對,來限制流到圖表1700的其余部分的字段對。字段對選擇組件1706還基于各種優(yōu)化法,進(jìn)一步限制流到圖表1700的其余部分的字段對。例如,字段與其自身不成對,因為這樣的對通過定義被歸類到“等同”。因此,該流中不包括字段對(f1,f1),(f2,f2)...等。其它優(yōu)化法可以從該流中去掉一個或多個字段對,這將在下面的7.2節(jié)中詳細(xì)描述。廣播組件1708將字段對的序列流廣播到(潛在地并行的)附加值組件1718的每個分區(qū),由廣播鏈接符號1710表示。附加值組件1718的每個分區(qū)采用字段對(例如,(LastName,Citizenship),(Zip,State)...等)的流和字段/值對(例如,(LastName,name_a),(LastName,name_b),(LastName,name_c)...,(Citizenship,Canada)(Citizenship,US),(Citizenship,US)...等)的流作為輸入。為獲得字段/值對的流,過濾組件1712從輸入數(shù)據(jù)集402提取記錄,并基于過濾表達(dá)式選擇性地去掉部分記錄。從過濾組件1712流出的記錄流入循環(huán)分割組件1714。循環(huán)分割組件1714從輸入數(shù)據(jù)集402的分區(qū)提取記錄,并在多個并行處理器和/或計算機(jī)之間重新分割記錄,以在這些處理器和/或計算機(jī)之間平衡工作負(fù)荷。規(guī)范化組件1716(與前述規(guī)范化組件616類似)獲取記錄流,并發(fā)送出表示輸入記錄中每個字段的值的字段/值對的流。如上所述,每個值被轉(zhuǎn)換成規(guī)范化的人員可讀的串表示。附加值組件1718執(zhí)行一序列匯合操作,以產(chǎn)生f1/f2/v1/v2四重(quadruples)流,其中f1和f2對應(yīng)于在輸入端接收到的字段對之一,v1和v2對應(yīng)于與記錄中的這些字段成對的值。在表格1600的范例中,當(dāng)姓字段對應(yīng)于f1以及國籍字段對應(yīng)于f2時,附加值組件1718產(chǎn)生十二個f1/f2/v1/v2四重流,包括(LastName/Citizenship/name_a/Canada),(LastName/Citizenship/name_b/US)...(LastName/Citizenship/name_k/US),(LastName/Citizenship/name_g/US)。對于(Zip,State)和已分析的任何其它字段對,附加值組件1718產(chǎn)生類似序列,即f1/f2/v1/v2四重流。附加值組件1718將f1/f2/v1/v2四重流輸出到“局部上滾f1/f2/v1/v2”組件1720,“局部上滾f1/f2/v1/v2”組件1720(對于每個分區(qū))使用相同的字段和值f1、f2、v1、v2累加多個四重流,并將它們表示成單個四重流,其具有輸入流中四重流的出現(xiàn)次數(shù)的計數(shù)?!熬植可蠞Lf1/f2/v1/v2”組件1720的輸出流由具有計數(shù)(“累加的四重流”)的四重流組成。在“局部上滾f1/f2/v1/v2”組件1720中發(fā)生的累加位于每個分區(qū)內(nèi)。因此一些具有相同的f1、f2、v1、v2值的四重流不會被此組件1720累加。“f1/f2分割”組件1721重新分割累加的四重流,從而具有相同字段f1、f2的四重流在相同的分區(qū)中?!罢w上滾f1/f2/v1/v2”組件1722進(jìn)一步累加重新分割后的四重流。“整體上滾f1/f2/v1/v2”組件1722的輸出流由唯一累加的四重流組成。在表格1600的范例中,當(dāng)郵政編碼字段對應(yīng)于f1且州字段對應(yīng)于f2時,組件1720-1722的組合效果產(chǎn)生以下六個累加的四重流(Zip/State/90019/CA,4)、(Zip/State/90212/CA,2)、(Zip/State/33102/FL,3)、(Zip/State/00000/FL,1)、(Zip/State/77010/TX,1)、(Zip/State/00000/TX,1)。當(dāng)州字段對應(yīng)于f1且郵政編碼字段對應(yīng)于f2時,組件1720-1722的組合效果產(chǎn)生以下六個累加的四重流(State/Zip/CA/90019,4)、(State/Zip/CA/90212,2)、(State/Zip/FL/33102,3)、(State/Zip/FL/00000,1)、(State/Zip/TX/77010,1)、(State/Zip/TX/00000,1)。為了準(zhǔn)備測試一對字段之間的函數(shù)依賴性關(guān)系,“整體上滾f1/f2/v1”組件1724合并所累加的、共同具有兩個字段f1、f2和第一值v1的四重流。在生成輸出元素的過程中,此組件1724檢查伴隨v1值的所有v2值,并選擇最頻繁的v2與該v1值相關(guān)聯(lián)。共享最頻繁的v2的四重流的數(shù)量被計數(shù)為“好”,其余的四重流被計數(shù)為“例外”。如果對于給定的v1只有一個v2值,則具有該值的所累加的四流重是好的并且沒有例外值。如果最頻繁的v2值有一個“結(jié)(tie)”,則選擇第一個值。在表格1600的范例中,當(dāng)郵政編碼字段對應(yīng)于f1且州字段對應(yīng)于f2時,組件1724產(chǎn)生(Zip/State/90019/CA,4好)、(Zip/State/90212/CA,2好)、(Zip/State/33102/FL,3好)、(Zip/State/00000/FL,1好,1例外)、(Zip/State/77010/TX,1好)。當(dāng)州字段對應(yīng)于f1且郵政編碼字段對應(yīng)于f2時,組件1724產(chǎn)生(State/Zip/CA/90019,4好,2例外)、(State/Zip/FL/33102,3好,1例外)、(State/Zip/TX/77010,1好,1例外)。“整體上滾f1/f2”組件1726將每個獨有字段對f1、f2的好的計數(shù)和例外值相加。在表格1600的范例中,當(dāng)郵政編碼字段對應(yīng)于f1且州字段對應(yīng)于f2時,組件1726產(chǎn)生(Zip/State,11好,1例外)。當(dāng)州字段對應(yīng)于f1且郵政編碼字段對應(yīng)于f2時,組件1726產(chǎn)生(State/Zip,8好,4例外)。依賴性發(fā)現(xiàn)組件1728使用來自“整體上滾f1/f2”組件1726的所累加的同現(xiàn)統(tǒng)計數(shù)字(即,好的和例外的記錄的個數(shù)),確定一對字段是否具有“f1確定f2”的關(guān)系。如果例外值的比例(例外的個數(shù)/(好的個數(shù)+例外的個數(shù)))小于所選擇的用于確定允許多少例外值的閾值,則該對字段具有“f1確定f2”的關(guān)系。在表格1600的范例中,對于閾值10%,當(dāng)郵政編碼字段對應(yīng)于f1且州字段對應(yīng)于f2時,例外值的比例是8.3%,并且郵政編碼字段的值確定州字段的值。當(dāng)州字段對應(yīng)于f1且郵政編碼字段對應(yīng)于f2時,例外值的比例是33%,因此郵政編碼字段與州字段之間的關(guān)系并非一對一映射??商鎿Q地,基于累加的值的數(shù)學(xué)屬性的值可以用于確定是否是字段f1確定字段f2(例如,字段f1的值給定的字段f2的值的條件熵,或數(shù)值的標(biāo)準(zhǔn)偏差)。7.2選擇字段對的優(yōu)化可以采用各種優(yōu)化法來加快函數(shù)依賴性分析的速度,例如在字段對選擇組件1706過濾字段對,或在過濾組件1712過濾記錄。一些優(yōu)化法基于這樣的認(rèn)識,即,上述的圖表1700發(fā)現(xiàn)的一些函數(shù)依賴性關(guān)系對于用戶來講并不像對其他人那樣有意義。對于一給定字段對,這些情況中的一些情況可以被字段對選擇組件1706基于歸檔模塊100提供的統(tǒng)計數(shù)字檢測到并過濾掉,這節(jié)省了計算資源。例如,如果第一字段f1的所有值都是獨有的(在單個記錄中每個值僅出現(xiàn)一次),則該字段f1的值確定第二字段f2的值,而與字段f2中出現(xiàn)的值無關(guān)。圖表1700可以使用在歸檔過程中獲得的調(diào)查數(shù)據(jù),基于這些字段中的值的隨機(jī)(例如,統(tǒng)一概率分布)配對來計算由第一字段f1確定第二字段f2的概率。如果隨機(jī)配對將導(dǎo)致函數(shù)依賴性的概率較高(例如,>10%),則該字段對被字段對選擇組件1706過濾掉。在表格1600的范例中,除了當(dāng)name_g值(在行7或行12中)中的一個與值Canada隨機(jī)配對以外,當(dāng)姓字段對應(yīng)于f1且國籍字段對應(yīng)于f2時,姓與國籍的每個隨機(jī)配對將導(dǎo)致所有四重流被計數(shù)為好。即使當(dāng)此隨機(jī)配對發(fā)生(概率為16.7%(12個配對中的2個)),例外比例僅是低于閾值的8.3%。因此,在此范例中,字段對選擇組件1706過濾該對字段(LastName,Citizenship)。另一個優(yōu)化法基于歸檔模塊100從調(diào)查數(shù)據(jù)計算出的值的直方圖。字段對選擇組件1706過濾掉字段f1不能確定字段f2的字段對。在表格1600的范例中,州的最頻繁的值出現(xiàn)6次,而郵政編碼的最頻繁的值僅出現(xiàn)4次。因此,州的值不能確定郵政編碼的值,因為對于至少一半的值,在6個范圍內(nèi)至少有2個例外,這導(dǎo)致至少16.7%的例外比例。因此,在此范例中,字段對選擇組件1706過濾掉該對(State,Zip)。對于數(shù)量眾多的記錄,圖表1700可以通過在處理所有記錄之前先處理小部分記錄采樣,以排除一些很有可能不具有函數(shù)相關(guān)性的字段對,來加快測試函數(shù)依賴性的速度。圖表1700可以使用過濾組件1712選擇部分記錄。可替換地,圖表1700可以使用規(guī)范化組件1716選擇部分字段/值對??梢曰诟鞣N標(biāo)準(zhǔn)對記錄或字段/值對采樣。圖表1700可以基于歸檔模塊100提供的統(tǒng)計數(shù)字采樣。例如,圖表1700可以基于第一字段f1(“決定因素(determiner)”)的最頻繁的值測試函數(shù)依賴性。如果得到的例外值個數(shù)高于閾值,則不必處理該決定因素的其余值。圖表1700也可以基于決定因素值的隨機(jī)采樣測試函數(shù)依賴性。如果在這些采樣值之間足夠數(shù)目的四重流被計數(shù)為好,則假定可以忽略在其它值之間發(fā)現(xiàn)實際數(shù)目的例外值的概率。其它采樣標(biāo)準(zhǔn)也可以使用。另一個可選的優(yōu)化法是基于已知的函數(shù)庫測試字段之間預(yù)定的函數(shù)關(guān)系。此測試可以對記錄或四重流的值進(jìn)行。7.3跨過多個源的函數(shù)依賴性分析在一種跨過多來源(例如,多個數(shù)據(jù)庫表格)的函數(shù)依賴性測試的方式中,歸檔模塊100產(chǎn)生包括來自所述多個源的字段的“虛擬表格(virtualtable)”。該虛擬表格可以例如,通過利用對這些源共用的鍵字段對這些源進(jìn)行匯合操作而產(chǎn)生。在使用虛擬表格進(jìn)行函數(shù)依賴性分析的范例中,第一數(shù)據(jù)源是機(jī)動車輛登記信息(機(jī)動車輛登記(MVR)數(shù)據(jù)庫)的數(shù)據(jù)庫,第二數(shù)據(jù)源是發(fā)出的交通罰單(交通罰單(TC)數(shù)據(jù)庫)的數(shù)據(jù)庫。MVR數(shù)據(jù)庫包括字段例如制造商、型號、顏色,并包括被指定為“主鍵”字段的執(zhí)照字段。MVR數(shù)據(jù)庫的每個記錄具有獨有的執(zhí)照字段值。TC數(shù)據(jù)庫包括字段例如姓名、日期、位置、違規(guī)記錄、機(jī)動車制造商、機(jī)動車型號、機(jī)動車顏色,并包括被指定為“外鍵”字段的機(jī)動車執(zhí)照字段。機(jī)動車執(zhí)照字段的每個值具有與MVR數(shù)據(jù)庫中的執(zhí)照字段的值對應(yīng)的記錄。TC數(shù)據(jù)庫可以具有機(jī)動車執(zhí)照字段值相同的多個記錄。歸檔模塊100匯合來自MVR數(shù)據(jù)庫和TC數(shù)據(jù)庫的記錄,以形成虛擬表格(例如,如前面參考圖11A所示的匯合組件1100所述的)。該虛擬表格的每個記錄具有來自兩個數(shù)據(jù)庫的每個字段,包括單個執(zhí)照字段,其具有與來自MVR執(zhí)照字段和TC機(jī)動車執(zhí)照字段的匹配值。然而,記錄可以具有與來自TC數(shù)據(jù)庫的機(jī)動車顏色字段值不同的、來自MVR數(shù)據(jù)庫的顏色字段值。例如,MVR數(shù)據(jù)庫可以使用“BLU”代碼來表示藍(lán)色,而TC數(shù)據(jù)庫使用“BU”代碼來表示藍(lán)色。在此情況下,如果機(jī)動車在這兩個數(shù)據(jù)庫中具有相同的顏色,則顏色字段與機(jī)動車顏色字段將具有“一對一”的函數(shù)關(guān)系??商鎿Q地,如果在登記和接收傳訊(citation)之間的時間機(jī)動車已被涂上不同的顏色,對于顏色字段與機(jī)動車顏色字段,記錄可以具有不同的值。由于匯合虛擬表格包括來自多個數(shù)據(jù)集中每個數(shù)據(jù)集的字段,歸檔模塊100可以發(fā)現(xiàn)這些數(shù)據(jù)集中的字段之間可能存在的各種關(guān)系中的任何關(guān)系。如上所述的相同的或相似的依賴性分析可以對匯合虛擬表格中的字段運行。上述方式可以利用在計算機(jī)上運行的軟件來實施。例如,該軟件可以形成在一個或多個已編程或可編程的計算機(jī)系統(tǒng)(它們可以是各種架構(gòu)的,例如分布式、客戶/服務(wù)器、或網(wǎng)格)上運行的一個或多個計算機(jī)程序中的程序;其中,每個計算機(jī)系統(tǒng)包括至少一個處理器、至少一個數(shù)據(jù)存儲系統(tǒng)(例如,易失性和非易失性存儲器和或存儲元件)、至少一個輸入裝置或端口,以及至少一個輸出裝置或端口。該軟件可以形成更大的程序例如,提供與圖表的設(shè)計和配置相關(guān)的其它服務(wù)的程序的一個或多個模塊。該軟件可以設(shè)置在一般或?qū)S媚康牡目删幊逃嬎銠C(jī)可讀的介質(zhì)或裝置上,或經(jīng)網(wǎng)絡(luò)傳遞(編碼成可傳播的信號)到將運行它的計算機(jī)。所有這些功能可以在專用目的的計算機(jī)上或使用專用目的的硬件例如協(xié)處理器實現(xiàn)。該軟件可以以分布方式實施,其中,軟件指定的不同的計算部分由不同的計算機(jī)進(jìn)行。每個這種計算機(jī)程序優(yōu)選存儲在或下載到一般或?qū)S媚康牡目删幊逃嬎銠C(jī)可讀的存儲介質(zhì)或裝置(例如,固態(tài)存儲器或介質(zhì),或磁或光介質(zhì)),用于在該計算機(jī)系統(tǒng)讀取該存儲介質(zhì)或裝置以運行這里描述的程序時,配置和操作計算機(jī)。本發(fā)明的系統(tǒng)也可以考慮作為配置有計算機(jī)程序的計算機(jī)可讀存儲介質(zhì)來實施,其中,存儲介質(zhì)被配置為使計算機(jī)系統(tǒng)以實現(xiàn)這里所述的功能的特定和預(yù)定義的方式操作。應(yīng)當(dāng)理解前面的描述意在示例性的說明而非限制本發(fā)明的范圍,本發(fā)明的范圍由所附的權(quán)利要求書的范圍來限定。其他實施例落在所附的權(quán)利要求書的范圍內(nèi)。權(quán)利要求1.一種數(shù)據(jù)處理方法,包括如下步驟將來自數(shù)據(jù)源的數(shù)據(jù)歸檔,包括從數(shù)據(jù)源讀取數(shù)據(jù),在讀取數(shù)據(jù)時計算用以描述數(shù)據(jù)特性的概述數(shù)據(jù),以及存儲基于概述數(shù)據(jù)的歸檔信息;以及處理來自數(shù)據(jù)源的數(shù)據(jù),包括訪問所存儲的歸檔信息和根據(jù)訪問到的歸檔信息處理數(shù)據(jù)。2.如權(quán)利要求1所述的方法,其中,處理來自數(shù)據(jù)源的數(shù)據(jù)的步驟還包括如下步驟從數(shù)據(jù)源讀取數(shù)據(jù)。3.如權(quán)利要求1所述的方法,其中,在進(jìn)行數(shù)據(jù)歸檔時,不保留數(shù)據(jù)源外的數(shù)據(jù)的副本。4.如權(quán)利要求3所述的方法,其中,所述數(shù)據(jù)包括可變記錄結(jié)構(gòu)記錄,其具有條件字段和可變數(shù)目的字段中的至少一種。5.如權(quán)利要求4所述的方法,其中,在讀取數(shù)據(jù)時計算用以描述數(shù)據(jù)特性的概述數(shù)據(jù)的步驟包括如下步驟在計算用以描述數(shù)據(jù)的特性的概述數(shù)據(jù)時對可變記錄結(jié)構(gòu)記錄作出解釋。6.如權(quán)利要求1所述的方法,其中,數(shù)據(jù)源包括數(shù)據(jù)存儲系統(tǒng)。7.如權(quán)利要求6所述的方法,其中,該數(shù)據(jù)存儲系統(tǒng)包括數(shù)據(jù)庫系統(tǒng)。8.如權(quán)利要求1所述的方法,其中,計算概述數(shù)據(jù)的步驟包括如下步驟對字段的一組相異值中的每個相異值的出現(xiàn)次數(shù)進(jìn)行計數(shù)。9.如權(quán)利要求8所述的方法,其中,存儲歸檔信息的步驟包括如下步驟基于對所述字段的出現(xiàn)次數(shù)的計數(shù),存儲該字段的統(tǒng)計數(shù)字。10.如權(quán)利要求1所述的方法,還包括如下步驟維護(hù)一元數(shù)據(jù)存儲器,該元數(shù)據(jù)存儲器包含與數(shù)據(jù)源相關(guān)的元數(shù)據(jù)。11.如權(quán)利要求10所述的方法,其中,存儲歸檔信息的步驟包括如下步驟更新與數(shù)據(jù)源相關(guān)的元數(shù)據(jù)。12.如權(quán)利要求10所述的方法,其中,數(shù)據(jù)歸檔和數(shù)據(jù)處理步驟都使用數(shù)據(jù)源的元數(shù)據(jù)。13.如權(quán)利要求1所述的方法,其中,將來自數(shù)據(jù)源的數(shù)據(jù)歸檔的步驟還包括如下步驟基于歸檔信息確定格式規(guī)范。14.如權(quán)利要求1所述的方法,其中,將來自數(shù)據(jù)源的數(shù)據(jù)歸檔的步驟還包括如下步驟基于歸檔信息確定有效性規(guī)范。15.如權(quán)利要求14所述的方法,其中,數(shù)據(jù)處理步驟包括如下步驟基于有效性規(guī)范識別數(shù)據(jù)中的無效記錄。16.如權(quán)利要求1所述的方法,其中,將來自數(shù)據(jù)源的數(shù)據(jù)歸檔的步驟還包括如下步驟基于歸檔信息指定數(shù)據(jù)轉(zhuǎn)換指令。17.如權(quán)利要求16所述的方法,其中,數(shù)據(jù)處理步驟包括如下步驟將轉(zhuǎn)換指令應(yīng)用于數(shù)據(jù)。18.如權(quán)利要求1所述的方法,其中,數(shù)據(jù)處理步驟包括如下步驟將數(shù)據(jù)輸入到數(shù)據(jù)存儲子系統(tǒng)。19.如權(quán)利要求18所述的方法,其中,數(shù)據(jù)處理步驟包括如下步驟在將數(shù)據(jù)輸入數(shù)據(jù)存儲子系統(tǒng)之前驗證數(shù)據(jù)。20.如權(quán)利要求19所述的方法,其中,驗證數(shù)據(jù)的步驟包括如下步驟將數(shù)據(jù)的特性與所述數(shù)據(jù)的基準(zhǔn)特性相比較。21.如權(quán)利要求20所述的方法,其中,基準(zhǔn)特性包括數(shù)據(jù)的統(tǒng)計屬性。22.如權(quán)利要求1所述的方法,其中,數(shù)據(jù)歸檔步驟包括如下步驟以并行方式歸檔所述數(shù)據(jù),其包括將數(shù)據(jù)分割成多個部分,并使用第一組并行組件中分開的一些組件處理這些部分。23.如權(quán)利要求22所述的方法,其中,以并行方式歸檔數(shù)據(jù)的步驟還包括如下步驟使用第二組并行組件中分開的一些組件計算數(shù)據(jù)的不同字段的概述數(shù)據(jù)。24.如權(quán)利要求23所述的方法,其中,以并行方式歸檔數(shù)據(jù)的步驟還包括如下步驟對所述第一組并行組件的輸出重新分割,以形成所述第二組并行組件的輸入。25.如權(quán)利要求22所述的方法,其中,以并行方式歸檔數(shù)據(jù)的步驟包括如下步驟從并行的數(shù)據(jù)源讀取數(shù)據(jù),該并行的數(shù)據(jù)源的每個部分由所述第一組并行組件中不同的一個組件處理。26.一種數(shù)據(jù)處理方法,包括如下步驟將來自數(shù)據(jù)源的數(shù)據(jù)歸檔,包括從數(shù)據(jù)源讀取數(shù)據(jù),在讀取數(shù)據(jù)時計算用以描述數(shù)據(jù)特性的概述數(shù)據(jù),以及存儲基于概述數(shù)據(jù)的歸檔信息;其中數(shù)據(jù)歸檔步驟包括以并行方式歸檔所述數(shù)據(jù),其包括將數(shù)據(jù)分割成多個部分,并使用第一組并行組件中分開的一些組件處理這些部分。27.一種軟件,包含在數(shù)據(jù)處理系統(tǒng)中運行時適用于執(zhí)行權(quán)利要求1到26任一項所述的方法步驟的指令。28.如權(quán)利要求27所述的軟件,以計算機(jī)可讀介質(zhì)的形式實施。29.一種數(shù)據(jù)處理系統(tǒng),包括歸檔模塊,其配置為從數(shù)據(jù)源讀取數(shù)據(jù),在讀取數(shù)據(jù)時計算用以描述數(shù)據(jù)特性的概述數(shù)據(jù),以及存儲基于概述數(shù)據(jù)的歸檔信息;以及處理模塊,其配置為訪問所存儲的歸檔信息和根據(jù)訪問到的歸檔信息處理來自數(shù)據(jù)源的數(shù)據(jù)。30.一種數(shù)據(jù)處理系統(tǒng),包括將來自數(shù)據(jù)源的數(shù)據(jù)歸檔的裝置,包括從數(shù)據(jù)源讀取數(shù)據(jù)的裝置,在讀取數(shù)據(jù)時計算用以描述數(shù)據(jù)特性的概述數(shù)據(jù)的裝置,以及存儲基于概述數(shù)據(jù)的歸檔信息的裝置;以及處理來自數(shù)據(jù)源的數(shù)據(jù)的裝置,包括訪問所存儲的歸檔信息的裝置和根據(jù)訪問到的歸檔信息處理數(shù)據(jù)的裝置。31.一種數(shù)據(jù)處理方法,包括如下步驟接受用以描述第一數(shù)據(jù)源的記錄中第一字段的值的特性信息和用以描述第二數(shù)據(jù)源的記錄中第二字段的值的特性信息;基于所接受的信息,計算用以描述第一字段與第二字段之間的關(guān)系的特性的參量;以及呈現(xiàn)與第一字段和第二字段有關(guān)的信息。32.如權(quán)利要求31所述的方法,其中,呈現(xiàn)信息的步驟包括如下步驟向用戶呈現(xiàn)信息。33.如權(quán)利要求31所述的方法,其中,第一數(shù)據(jù)源和第二數(shù)據(jù)源是相同的數(shù)據(jù)源。34.如權(quán)利要求31所述的方法,其中,第一數(shù)據(jù)源和第二數(shù)據(jù)源的至少一個數(shù)據(jù)源包括數(shù)據(jù)庫表格。35.如權(quán)利要求31所述的方法,其中,用以描述該關(guān)系的特性的參量包括用以描述第一字段的值與第二字段的值的匯合特性的參量。36.如權(quán)利要求35所述的方法,其中,用以描述第一字段的值的特性信息包括用以描述所述第一字段的值的分布特性信息。37.如權(quán)利要求36所述的方法,其中,用以描述第一字段的值的分布特性信息包括多個數(shù)據(jù)記錄,每個數(shù)據(jù)記錄與第一數(shù)據(jù)源中的第一字段中不同的一個值以及所述值的對應(yīng)出現(xiàn)次數(shù)相關(guān)聯(lián)。38.如權(quán)利要求36所述的方法,其中,用以描述第二字段的值的特性信息包括用以描述所述字段的值的分布特性信息。39.如權(quán)利要求38所述的方法,其中,計算用以描述匯合特性的參量的步驟包括如下步驟處理用以描述第一字段的值和第二字段的值的分布特性信息,以計算與多種同現(xiàn)類別的值相關(guān)的參量。40.如權(quán)利要求39所述的方法,其中,用以描述第一字段的值和第二字段的值的分布特性信息包括多個數(shù)據(jù)記錄,每個數(shù)據(jù)記錄與不同的一個值以及所述值的對應(yīng)出現(xiàn)次數(shù)相關(guān)聯(lián),其中處理用以描述值的所述分布特性信息的步驟包括如下步驟分別在第一字段和第二字段上,計算用以描述在第一數(shù)據(jù)源與第二數(shù)據(jù)源的匯合數(shù)據(jù)源中的值的分布特性信息。41.如權(quán)利要求39所述的方法,其中,與多種同現(xiàn)類別的值相關(guān)的參量包括多個數(shù)據(jù)記錄,每個數(shù)據(jù)記錄與一種同現(xiàn)類別相關(guān)聯(lián)并包括第一和第二字段在所述類別中的獨有值的數(shù)量。42.如權(quán)利要求35所述的方法,其中,計算用以描述第一字段的值與第二字段的值的匯合特性的參量的步驟包括如下步驟分別使用第一字段和第二字段計算用以描述在第一數(shù)據(jù)源與第二數(shù)據(jù)源的匯合數(shù)據(jù)源中的值的分布特性信息。43.如權(quán)利要求35所述的方法,其中,計算用以描述第一字段的值與第二字段的值的匯合特性的參量的步驟包括如下步驟計算與多種同現(xiàn)類別的值相關(guān)的參量。44.如權(quán)利要求42所述的方法,其中,多種同現(xiàn)類別的值包括在第一字段和第二字段中的一個字段中至少出現(xiàn)一次但在另一個字段中不出現(xiàn)的值。45.如權(quán)利要求42所述的方法,其中,多種同現(xiàn)類別的值包括在第一字段和第二字段中均恰好出現(xiàn)一次的值。46.如權(quán)利要求42所述的方法,其中,多種同現(xiàn)類別的值包括在第一字段和第二字段中的一個字段中恰好出現(xiàn)一次,而在另一個字段中出現(xiàn)超過一次的值。47.如權(quán)利要求42所述的方法,其中,多種同現(xiàn)類別的值包括在第一字段和第二字段中均出現(xiàn)超過一次的值。48.如權(quán)利要求35所述的方法,還包括如下步驟對于多對第一和第二字段,重復(fù)這樣的步驟,即接受用以描述值的特性信息以及計算用以描述值的匯合特性的參量。49.如權(quán)利要求48所述的方法,其中,所述多對字段中的每對字段具有獨有標(biāo)識符,該標(biāo)識符與值一起包含在該對字段中,以計算用以描述值的匯合特性的參量。50.如權(quán)利要求48所述的方法,還包括如下步驟呈現(xiàn)與所述多對字段中的一對或多對字段相關(guān)的信息。51.如權(quán)利要求50所述的方法,其中,呈現(xiàn)與所述多對字段中的一對或多對字段相關(guān)的信息的步驟包括如下步驟將字段識別為多種類型的字段關(guān)系中的一種關(guān)系的侯選字段。52.如權(quán)利要求51所述的方法,其中,所述多種類型的字段關(guān)系包括主鍵關(guān)系和外鍵關(guān)系。53.如權(quán)利要求51所述的方法,其中,所述多種類型的字段關(guān)系包括通用域關(guān)系。54.如權(quán)利要求31所述的方法,其中,計算參量的步驟包括如下步驟基于邏輯值計算所述參量,所述邏輯值由第一字段的字面值和第二字段的字面值轉(zhuǎn)換得到。55.如權(quán)利要求37所述的方法,其中,計算參量的步驟包括如下步驟以并行方式計算所述參量,包括將數(shù)據(jù)記錄分割成多個部分,并使用一組并行組件中分開的一些組件處理這些部分。56.如權(quán)利要求55所述的方法,其中,這些部分基于第一字段的值和第二字段的值獲得。57.如權(quán)利要求56所述的方法,其中,具有相同值的數(shù)據(jù)記錄處于相同的部分。58.一種軟件,包含在數(shù)據(jù)處理系統(tǒng)中運行時適用于執(zhí)行權(quán)利要求31到57任一項所述的方法步驟的指令。59.如權(quán)利要求58所述的軟件,以計算機(jī)可讀介質(zhì)的形式實施。60.一種數(shù)據(jù)處理系統(tǒng),包括值處理模塊,其配置為接受用以描述第一數(shù)據(jù)源的記錄中第一字段的值的特性信息和用以描述第二數(shù)據(jù)源的記錄中第二字段的值的特性信息;關(guān)系處理模塊,其配置為基于所接受的信息,計算用以描述第一字段與第二字段之間的關(guān)系特性的參量;以及接口,其配置為呈現(xiàn)與第一字段和第二字段有關(guān)的信息。61.一種數(shù)據(jù)處理系統(tǒng),包括接受裝置,用于接受用以描述第一數(shù)據(jù)源的記錄中第一字段的值的特性信息和用以描述第二數(shù)據(jù)源的記錄中第二字段的值的特性信息;計算裝置,用于基于所接受的信息,計算用以描述第一字段與第二字段之間的關(guān)系特性的參量;以及呈現(xiàn)裝置,用于呈現(xiàn)與第一字段和第二字段有關(guān)的信息。62.一種數(shù)據(jù)處理方法,包括如下步驟識別數(shù)據(jù)源的數(shù)據(jù)記錄字段的多個子集;確定多個子集中每個子集的同現(xiàn)統(tǒng)計數(shù)字;以及識別多個子集中的一個或多個子集,使得在所識別的子集的字段之間具有函數(shù)關(guān)系。63.如權(quán)利要求62所述的方法,其中,字段的至少一個子集是兩個字段的子集。64.如權(quán)利要求62所述的方法,其中,識別多個子集中的一個或多個子集、使得在所識別的子集的字段之間具有函數(shù)關(guān)系的步驟包括如下步驟識別多個子集中的一個或多個子集,使其具有多種可能的預(yù)定函數(shù)關(guān)系之一。65.如權(quán)利要求62所述的方法,其中,確定同現(xiàn)統(tǒng)計數(shù)字的步驟包括如下步驟形成數(shù)據(jù)元素,每個數(shù)據(jù)元素識別一個數(shù)據(jù)記錄中的一對字段并識別在該對字段中出現(xiàn)的一對值。66.如權(quán)利要求62所述的方法,其中,確定同現(xiàn)統(tǒng)計數(shù)字的步驟包括如下步驟將數(shù)據(jù)記錄分割成多個部分,這些數(shù)據(jù)記錄具有第一字段和第二字段;基于在第一部分中的一個或多個記錄的第二字段中出現(xiàn)的值的分布,確定參量,其中,所述一個或多個記錄具有在所述一個或多個記錄的第一字段中出現(xiàn)的公共值;以及將該參量與基于其它部分中的記錄得到的其它參量進(jìn)行合并,以產(chǎn)生總參量。67.如權(quán)利要求66所述的方法,其中,識別多個子集中的一個或多個子集、使得在所識別的子集的字段之間具有函數(shù)關(guān)系的步驟包括如下步驟基于該總參量識別在第一與第二字段之間的函數(shù)關(guān)系。68.如權(quán)利要求66所述的方法,其中,這些部分基于第一字段的值和第二字段的值獲得。69.如權(quán)利要求66所述的方法,其中,使用一組并行組件中分開的一些組件處理這些部分。70.如權(quán)利要求62所述的方法,其中,識別多個子集中的一個或多個子集、使得在所識別的子集的字段之間具有函數(shù)關(guān)系的步驟包括如下步驟確定與所述函數(shù)關(guān)系匹配的程度。71.如權(quán)利要求70所述的方法,其中,該匹配的程度包括與所述函數(shù)關(guān)系不一致的例外記錄的個數(shù)。72.如權(quán)利要求62所述的方法,其中,該函數(shù)關(guān)系包括第一字段的至少一些值到第二字段的至少一些值的映射。73.如權(quán)利要求72所述的方法,其中,該映射是多對一映射。74.如權(quán)利要求72所述的方法,其中,該映射是一對多映射。75如權(quán)利要求72所述的方法,其中,該映射是一對一映射。76.如權(quán)利要求62所述的方法,還包括如下步驟基于用以描述多個子集的字段中的值的特性信息,對這多個子集進(jìn)行過濾。77.如權(quán)利要求62所述的方法,其中,所述數(shù)據(jù)記錄包括數(shù)據(jù)庫表格的記錄。78.如權(quán)利要求77所述的方法,其中所述數(shù)據(jù)記錄包括多個數(shù)據(jù)庫表格的記錄。79.一種軟件,包含在數(shù)據(jù)處理系統(tǒng)中運行時適用于執(zhí)行權(quán)利要求62到78任一項所述的方法步驟的指令。80.如權(quán)利要求79所述的軟件,以計算機(jī)可讀介質(zhì)的形式實施。81.一種數(shù)據(jù)處理系統(tǒng),包括識別處理模塊,其配置為識別數(shù)據(jù)源的數(shù)據(jù)記錄字段的多個子集;統(tǒng)計數(shù)字處理模塊,其配置為確定多個子集中的每個子集的同現(xiàn)統(tǒng)計數(shù)字;以及函數(shù)關(guān)系處理模塊,其配置為識別多個子集中的一個或多個子集,使得在所識別的子集的字段之間具有函數(shù)關(guān)系。82.一種數(shù)據(jù)處理系統(tǒng),包括子集識別裝置,用于識別數(shù)據(jù)源的數(shù)據(jù)記錄字段的多個子集;確定裝置,用于確定多個子集中的每個子集的同現(xiàn)統(tǒng)計數(shù)字;以及函數(shù)關(guān)系識別裝置,用于識別多個子集中的一個或多個子集,使得在所識別的子集的字段之間具有函數(shù)關(guān)系。全文摘要數(shù)據(jù)處理包括將來自數(shù)據(jù)源的數(shù)據(jù)歸檔,其包括從數(shù)據(jù)源讀取數(shù)據(jù),在讀取數(shù)據(jù)時計算用以描述數(shù)據(jù)特性的概述數(shù)據(jù),以及存儲基于概述數(shù)據(jù)的歸檔信息。然后,處理來自數(shù)據(jù)源的數(shù)據(jù)。此處理包括訪問所存儲的歸檔信息和根據(jù)訪問到的歸檔信息處理數(shù)據(jù)。文檔編號G06F17/30GK1853181SQ200480026429公開日2006年10月25日申請日期2004年9月15日優(yōu)先權(quán)日2003年9月15日發(fā)明者喬爾·古爾德,卡爾·范曼,保羅·貝申請人:Ab開元軟件公司