欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

生成數(shù)據(jù)模式信息的制作方法與工藝

文檔序號(hào):11697405閱讀:224來源:國知局
生成數(shù)據(jù)模式信息的制作方法與工藝
生成數(shù)據(jù)模式信息相關(guān)申請的交叉引用本申請要求享有2011年1月28日提交的美國臨時(shí)申請?zhí)?1/437,361的優(yōu)先權(quán)。技術(shù)領(lǐng)域本申請涉及生成數(shù)據(jù)模式(pattern)信息。

背景技術(shù):
在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)可以以各種格式中的任一種存儲(chǔ)在單獨(dú)訪問(individuallyaccessible)單元或“記錄”中。每個(gè)記錄可對(duì)應(yīng)于諸如信用卡交易的邏輯實(shí)體,并且典型地具有用于唯一標(biāo)識(shí)該記錄的相關(guān)聯(lián)的主鍵(primarykey)。該記錄可包括與記錄格式的各個(gè)字段(field)相關(guān)聯(lián)的多個(gè)值。這些記錄可以存儲(chǔ)在一個(gè)或多個(gè)文件(例如,平面文件(flatfile)或諸如XML文件的結(jié)構(gòu)化數(shù)據(jù)文件)中。在壓縮的數(shù)據(jù)庫系統(tǒng)中,記錄中的單獨(dú)記錄或值可以在存儲(chǔ)時(shí)被壓縮,并在訪問時(shí)被解壓縮,以降低系統(tǒng)的存儲(chǔ)需求。

技術(shù)實(shí)現(xiàn)要素:
在一個(gè)方案中,通常,一種方法包括:在數(shù)據(jù)存儲(chǔ)系統(tǒng)中,存儲(chǔ)包括多個(gè)記錄的至少一個(gè)數(shù)據(jù)集;以及在連接到所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)處理系統(tǒng)中,處理所述多個(gè)記錄以產(chǎn)生表示多個(gè)記錄中的數(shù)據(jù)模式的代碼,所述處理包括:對(duì)于所述多個(gè)記錄中的多個(gè)記錄的每一個(gè),將對(duì)一個(gè)或多個(gè)元素進(jìn)行編碼的代碼與所述記錄相關(guān)聯(lián),其中每個(gè)元素將對(duì)應(yīng)字段或字段組合的狀態(tài)或?qū)傩员硎緸橐唤M元素值中的一個(gè),以及,對(duì)于至少第一代碼的至少一個(gè)元素,所述組中的元素值的數(shù)量小于在所述數(shù)據(jù)集中的所有所述多個(gè)記錄上出現(xiàn)在所述對(duì)應(yīng)字段或字段組合中的數(shù)據(jù)值的總數(shù)。這些方案可包括一個(gè)或多個(gè)以下特征。對(duì)于所述第一代碼的至少一個(gè)元素,所述組中的至少兩個(gè)元素值將字段的狀態(tài)分別表示為填充或未填充。所述未填充的狀態(tài)包括null狀態(tài)、缺?。╝bsent)狀態(tài)或空(empty)狀態(tài)中的一個(gè)。所述null狀態(tài)包括具有預(yù)定值的所述字段的狀態(tài)。所述預(yù)定值包括一個(gè)或多個(gè)空格字符。所述缺省狀態(tài)包括在記錄中缺失的所述字段。所述空狀態(tài)包括沒有對(duì)應(yīng)數(shù)據(jù)值的所述字段。對(duì)于所述第一代碼的至少一個(gè)元素,根據(jù)與字段相關(guān)聯(lián)的驗(yàn)證規(guī)則,所述組中的至少兩個(gè)元素值表示出現(xiàn)在所述字段中在有效或無效的數(shù)據(jù)值。所述驗(yàn)證規(guī)則至少部分基于所述數(shù)據(jù)值的數(shù)據(jù)類型來定義有效值。所述驗(yàn)證規(guī)則至少部分通過參考枚舉值的列表來定義有效值。對(duì)于所述第一代碼的至少一個(gè)元素,所述組中的一個(gè)或多個(gè)元素值表示出現(xiàn)在第一字段中的數(shù)據(jù)值與目標(biāo)數(shù)據(jù)值相匹配的程度。所述目標(biāo)數(shù)據(jù)值為出現(xiàn)在第二字段中的數(shù)據(jù)值。所述組中的至少三個(gè)元素值將出現(xiàn)在所述第一字段中的所述數(shù)據(jù)值與所述目標(biāo)數(shù)據(jù)值相匹配的程度分別表示為不匹配、精確匹配或模糊匹配。對(duì)于所述第一代碼的至少一個(gè)元素,所述組中的至少一個(gè)元素值對(duì)這樣一個(gè)數(shù)據(jù)值進(jìn)行編碼,所述數(shù)據(jù)值從出現(xiàn)在第一記錄的字段或字段組合中的一個(gè)或多個(gè)值和出現(xiàn)在至少包括不同于所述第一記錄的第二記錄的一組一個(gè)或多個(gè)記錄的字段或字段組合中的一個(gè)或多個(gè)值中計(jì)算得出。所述第一記錄位于第一數(shù)據(jù)集中以及所述第二記錄位于不同于所述第一數(shù)據(jù)集的第二數(shù)據(jù)集中。對(duì)于至少第二代碼的至少一個(gè)元素,所述組中的至少一個(gè)元素值表示出現(xiàn)在字段中的預(yù)定數(shù)據(jù)值。對(duì)于所述第二代碼的所述元素的該組元素值中的元素值的數(shù)量等于在所述數(shù)據(jù)集中的所有所述多個(gè)記錄上出現(xiàn)在所述對(duì)應(yīng)字段或字段組合中的數(shù)據(jù)值的總數(shù)。在另一個(gè)方案中,通常,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括用于使計(jì)算機(jī)系統(tǒng)執(zhí)行以下步驟的指令:在數(shù)據(jù)存儲(chǔ)系統(tǒng)中,存儲(chǔ)包括多個(gè)記錄的至少一個(gè)數(shù)據(jù)集;以及在連接到所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的所述計(jì)算機(jī)系統(tǒng)的至少一個(gè)處理器中,處理所述多個(gè)記錄以產(chǎn)生表示所述記錄中的數(shù)據(jù)模式的代碼,所述處理包括:對(duì)于所述多個(gè)記錄中的多個(gè)記錄的每一個(gè),將對(duì)一個(gè)或多個(gè)元素進(jìn)行編碼的代碼與所述記錄相關(guān)聯(lián),其中每個(gè)元素將對(duì)應(yīng)字段或字段組合的狀態(tài)或?qū)傩员硎緸橐唤M元素值中的一個(gè),以及,對(duì)于至少第一代碼的至少一個(gè)元素,所述組中的元素值的數(shù)量小于在所述數(shù)據(jù)集中的所有所述多個(gè)記錄上出現(xiàn)在所述對(duì)應(yīng)字段或字段組合中的數(shù)據(jù)值的總數(shù)。在另一個(gè)方案中,通常,一種系統(tǒng)包括:數(shù)據(jù)存儲(chǔ)系統(tǒng),被配置為存儲(chǔ)包括多個(gè)記錄的至少一個(gè)數(shù)據(jù)集;以及數(shù)據(jù)處理系統(tǒng),連接到所述數(shù)據(jù)存儲(chǔ)系統(tǒng),被配置為處理所述多個(gè)記錄以產(chǎn)生表示所述多個(gè)記錄中的數(shù)據(jù)模式的代碼,所述處理包括:對(duì)于所述多個(gè)記錄中的多個(gè)記錄的每一個(gè),將對(duì)一個(gè)或多個(gè)元素進(jìn)行編碼的代碼與所述記錄相關(guān)聯(lián),其中每個(gè)元素將對(duì)應(yīng)字段或字段組合的狀態(tài)或?qū)傩员硎緸橐唤M元素值中的一個(gè),以及,對(duì)于至少第一代碼的至少一個(gè)元素,所述組中的元素值的數(shù)量小于在所述數(shù)據(jù)集中的所有所述多個(gè)記錄上出現(xiàn)在所述對(duì)應(yīng)字段或字段組合中的數(shù)據(jù)值的總數(shù)。在另一個(gè)方案中,通常,一種系統(tǒng)包括:用于存儲(chǔ)包括多個(gè)記錄的至少一個(gè)數(shù)據(jù)集的裝置;以及用于處理所述多個(gè)記錄以產(chǎn)生表示所述記錄中的數(shù)據(jù)模式的代碼的裝置,所述處理包括:對(duì)于所述多個(gè)記錄中的多個(gè)記錄的每一個(gè),將對(duì)一個(gè)或多個(gè)元素進(jìn)行編碼的代碼與所述記錄相關(guān)聯(lián),其中每個(gè)元素將對(duì)應(yīng)字段或字段組合的狀態(tài)或?qū)傩员硎緸橐唤M元素值中的一個(gè),以及,對(duì)于至少第一代碼的至少一個(gè)元素,所述組中的元素值的數(shù)量小于在所述數(shù)據(jù)集中的所有所述多個(gè)記錄上出現(xiàn)在所述對(duì)應(yīng)字段或字段組合中的數(shù)據(jù)值的總數(shù)。在另一個(gè)方案中,通常,一種方法包括:在數(shù)據(jù)存儲(chǔ)系統(tǒng)中,存儲(chǔ)包括多個(gè)記錄的至少一個(gè)數(shù)據(jù)集;以及在連接到所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)處理系統(tǒng)中,處理所述多個(gè)記錄以產(chǎn)生表示在所述記錄中的數(shù)據(jù)模式的代碼,所述處理包括:分析所述多個(gè)記錄的字段或字段組合的一個(gè)或多個(gè)狀態(tài)或?qū)傩?,以及產(chǎn)生代碼以將所述一個(gè)或多個(gè)屬性表示為所述記錄中的數(shù)據(jù)模式的表示。在另一個(gè)方案中,通常,一種方法包括:在數(shù)據(jù)存儲(chǔ)系統(tǒng)中,存儲(chǔ)包括多個(gè)記錄的至少一個(gè)數(shù)據(jù)集;以及在連接到所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)處理系統(tǒng)中,處理所述多個(gè)記錄以產(chǎn)生在所述記錄中的數(shù)據(jù)模式的表示,所述處理包括:對(duì)于所述多個(gè)記錄中的每個(gè)記錄,指定對(duì)一個(gè)或多個(gè)元素進(jìn)行編碼的代碼對(duì)應(yīng)于所述記錄的字段或字段組合,其中一個(gè)或多個(gè)數(shù)據(jù)元素表示對(duì)應(yīng)字段是否被填充。這些方案可包括一個(gè)或多個(gè)以下優(yōu)點(diǎn)。當(dāng)數(shù)據(jù)集用于分析數(shù)據(jù)質(zhì)量時(shí),經(jīng)常計(jì)算逐字段的計(jì)數(shù),以根據(jù)一組驗(yàn)證規(guī)則(例如,根據(jù)數(shù)據(jù)類型或通過參考枚舉值的列表)來統(tǒng)計(jì)記錄中多少字段是缺省的(absent)(在記錄中不存在)、是空的(empty)(沒有字符)、是空位的(blank)(一個(gè)或多個(gè)空格字符)、是null的(包含與NULL相關(guān)聯(lián)的特定值)、是填充的(puluated)(存在且非空或非空位)、或者是有效的或無效的。字段或字段組合的填充狀態(tài)可以由這些條件的一個(gè)或多個(gè)或它們的組合形成,更一般地為字段或字段組合中值與代碼之間的一些關(guān)聯(lián)。對(duì)于記錄中的一組所選字段或字段組合的填充狀態(tài)的集合可以數(shù)據(jù)模式代碼進(jìn)行編碼,該數(shù)據(jù)模式代碼集合性地概括所選字段或字段組合的填充狀態(tài)。數(shù)據(jù)模式代碼還可用于表示除填充狀態(tài)之外或代替填充狀態(tài)的其它屬性??梢杂?jì)算具有每個(gè)數(shù)據(jù)模式代碼的記錄的數(shù)量。得到的一組數(shù)據(jù)模式代碼反映出數(shù)據(jù)集中的填充差異,以及與每個(gè)模式相關(guān)聯(lián)的計(jì)數(shù)表示數(shù)據(jù)集中的模式的普遍度(prevalence)。數(shù)據(jù)模式代碼可以用于測量數(shù)據(jù)集的數(shù)據(jù)質(zhì)量。某些數(shù)據(jù)模式代碼可以被視為是有效的(填充模式是可接受的)而其它的則不是。例如,某些字段可以是強(qiáng)制的,也就是說,其需要在每個(gè)記錄中存在并且被填充??梢杂?jì)算數(shù)據(jù)模式代碼,如果所有強(qiáng)制字段是填充的,則值為1,而如果任何字段都未填充,則值為0。具有數(shù)據(jù)模式代碼0的記錄部分(fraction)表示數(shù)據(jù)集中因?yàn)槟承?qiáng)制字段是未填充的而具有數(shù)據(jù)質(zhì)量問題的記錄部分。更精確的數(shù)據(jù)模式代碼允許對(duì)哪些強(qiáng)制字段未被填充的標(biāo)識(shí)和量化。在一些數(shù)據(jù)集中,一些字段是條件性強(qiáng)制,也就是說,如果一個(gè)字段存在或者具有特定值,那么另一個(gè)字段必須存在。數(shù)據(jù)模式代碼可被構(gòu)建為在條件已知時(shí)對(duì)此進(jìn)行驗(yàn)證,或者在條件未知時(shí)從數(shù)據(jù)模式代碼的分布中將其推斷出。后者是有價(jià)值的,因?yàn)槠淠軌蛲ㄟ^尋找數(shù)據(jù)模式代碼中的字段間的相關(guān)性(correlation)來檢查隱藏的商業(yè)規(guī)則。例如,交易數(shù)據(jù)集可包含僅針對(duì)處于收稅位置的商店進(jìn)行填充的tax(稅收)字段。從數(shù)據(jù)中字段的多個(gè)聯(lián)合填充(jointpopulation)中標(biāo)識(shí)出的某個(gè)store_id與tax字段的填充之間的相關(guān)性將展現(xiàn)出這點(diǎn)。當(dāng)違反了相關(guān)性時(shí),表明數(shù)據(jù)質(zhì)量存在問題。數(shù)據(jù)模式代碼不僅可以用來標(biāo)識(shí)字段的填充,還可以用來檢測和標(biāo)識(shí)不同類型的無效性(也就是說,不適合填充字段的數(shù)據(jù),例如,數(shù)值字段中的非數(shù)值字符)。這有助于量化數(shù)據(jù)質(zhì)量并且還有助于測試應(yīng)用程序。可以通過用每個(gè)現(xiàn)存的數(shù)據(jù)模式代碼從源數(shù)據(jù)(例如,來自應(yīng)用程序?qū)⒆罱K處理的實(shí)際生產(chǎn)數(shù)據(jù))中提取記錄樣本來構(gòu)建測試數(shù)據(jù)集。對(duì)于基于有效性的數(shù)據(jù)模式代碼,很多代碼可標(biāo)識(shí)包含無效數(shù)據(jù)的記錄。相關(guān)聯(lián)的記錄可以用來測試應(yīng)用程序?qū)Σ涣紨?shù)據(jù)(真實(shí)出現(xiàn)的)的穩(wěn)健性。這可使得測試是可允許的,而這種測試以其它方式是不可能進(jìn)行的,除非該應(yīng)用程序被使用到生產(chǎn)中。如果在軟件開發(fā)生命周期中更早地檢測到這些問題,通常能夠更便宜地解決這些問題。數(shù)據(jù)模式代碼可反映出其它評(píng)估(例如,除了填充或有效性)。例如,字段或字段組合的狀態(tài)可能在某種程序上是顯而易見的,其中通過將給定記錄的字段或字段組合中的值與在同一數(shù)據(jù)集中的其它記錄中或其它數(shù)據(jù)集種的記錄中的字段值相關(guān)聯(lián)(involve)的計(jì)算來確定該狀態(tài)。例如,如果交易量字段的值大于與數(shù)據(jù)集中的一組記錄的平均值的兩個(gè)標(biāo)準(zhǔn)偏差,則該交易量字段的值可能被視為在數(shù)據(jù)集中的該組記錄的背景中是顯著的。類似地,其相對(duì)于存儲(chǔ)在數(shù)據(jù)集中的平均值或者從該數(shù)據(jù)集的外部記錄中計(jì)算的歷史平均值是顯著的。在另一個(gè)示例中,在模糊匹配應(yīng)用程序中,可以計(jì)算測量在組或集群(cluster)中給定記錄與其它記錄的匹配質(zhì)量的評(píng)分。數(shù)據(jù)模式代碼的一個(gè)元素(element)可以在帶狀范圍(bandedrange)內(nèi)與匹配質(zhì)量評(píng)分相關(guān)聯(lián),以表示記錄為精確匹配、模糊匹配(評(píng)分超過匹配閾值,但不精確)等。從與用于測量記錄元素(如姓名或地址)的匹配質(zhì)量的類似元素配合使用的這種元素中構(gòu)建的數(shù)據(jù)模式代碼可以用于將記錄分成用于適當(dāng)處理或分析的組(例如,“模糊記錄匹配、精確名稱、模糊地址、無郵政編碼”)。數(shù)據(jù)模式代碼還可以用于分析構(gòu)建中的應(yīng)用程序的輸出。可以以編程方式用數(shù)據(jù)模式代碼來檢查期望的有效性規(guī)則和字段間的相關(guān)性。對(duì)于與應(yīng)用程序的輸出相關(guān)聯(lián)的每個(gè)數(shù)據(jù)模式代碼,檢查記錄的樣本提取可發(fā)現(xiàn)未預(yù)料到的漏洞(bug)。如果數(shù)據(jù)模式代碼記錄了來自應(yīng)用程序的不同階段的填充和有效性信息,則可以通過比較來自好和壞結(jié)果的數(shù)據(jù)模式代碼來對(duì)壞結(jié)果進(jìn)行分析并追溯到其起因。樣本提取還提供了測試用例,該測試用例可以用作用于構(gòu)建連續(xù)運(yùn)行的新輸入的基礎(chǔ)。這一使用在要求重復(fù)執(zhí)行作為一部分測試的應(yīng)用程序中有潛在的重要性。使用重復(fù)執(zhí)行的一個(gè)實(shí)例是在調(diào)整參數(shù)以獲得期望的結(jié)果時(shí)。例如,在名稱和地址用于相似比較的模糊匹配應(yīng)用程序中,通常存在這樣的一個(gè)閾值,在該閾值以下的表征一對(duì)名稱和地址之間的匹配度的評(píng)分不被認(rèn)為是匹配的。鑒于調(diào)節(jié)控制匹配結(jié)果的各種參數(shù)以使得應(yīng)該匹配的用例實(shí)現(xiàn)匹配,因此應(yīng)用程序可能需要運(yùn)行多次。不同的填充模式(例如,沒有中間名,只有首字母,沒有房間號(hào)等)影響了匹配決策過程所涉及的商業(yè)規(guī)則。通過將填充模式與用不同評(píng)分字段(“精確名稱”、“模糊地址”等)反映匹配質(zhì)量的代碼相結(jié)合構(gòu)建的數(shù)據(jù)模式代碼可以用于使反映不同用例的測試用例隔開,因此這對(duì)于加快調(diào)整過程是非常有益的。一些應(yīng)用程序接口將來自不同源的數(shù)據(jù)標(biāo)準(zhǔn)化為用于下游處理的通用記錄格式。典型地,根據(jù)每個(gè)源不是所有字段都被填充。數(shù)據(jù)模式代碼可識(shí)別哪些字段組合出現(xiàn)在源數(shù)據(jù)中。這可以用在一些用例中以在原始數(shù)據(jù)未知時(shí)推斷出它。通過識(shí)別數(shù)據(jù)模式代碼中的字段之間的相關(guān)性,可以推斷出隱藏的商業(yè)規(guī)則,例如,一個(gè)字段被條件性強(qiáng)制在另一個(gè)上。例如,如果將來自幾個(gè)歐洲國家的數(shù)據(jù)結(jié)合成單一數(shù)據(jù)集,那么,在數(shù)據(jù)來自德國源的情況下可能只有某些字段被填充。這可以根據(jù)數(shù)據(jù)模式代碼從潛在數(shù)據(jù)的分析中推斷出,并隨后通過商業(yè)來確認(rèn)。來自其它國家的記錄中的字段的數(shù)據(jù)的缺省然后被得以說明,而不是數(shù)據(jù)質(zhì)量問題。在一些情況下,其有助于撤銷通用記錄格式以將其返回到僅(或大部分)由填充字段組成的條件性形式。盡管數(shù)據(jù)已經(jīng)統(tǒng)一格式,但在需要對(duì)特定源進(jìn)行處理的情況下這可能是有必要的。數(shù)據(jù)模式代碼可有助于標(biāo)識(shí)存在于源數(shù)據(jù)中的記錄的類別[即,(幾乎)經(jīng)常被一起填充的字段組],有助于用作條件記錄格式的條件,并然后有助于將源數(shù)據(jù)集分解為簡化的記錄格式。如果單值化(uniformizing)記錄格式描述了用于應(yīng)用程序的數(shù)據(jù)源,則可能很難獲得或者構(gòu)建測試用例的代表集,這樣的測試用例的代表集跨越了應(yīng)用程序需要能夠處理的多樣性輸入用例。假定訪問應(yīng)用程序?qū)⒆罱K處理的實(shí)際的(產(chǎn)生)源數(shù)據(jù),可以為每個(gè)源記錄構(gòu)建數(shù)據(jù)模式代碼,并且可以提取代表每個(gè)模式的一(?。┙M記錄。必要時(shí),可以將這些記錄混在一起以用在測試環(huán)境下,但它們在某一時(shí)間點(diǎn)上(用例通??呻S著時(shí)間改變)組成了全面的測試用例組。然后,該組記錄可以用于應(yīng)用程序的代碼覆蓋分析和邊界用例應(yīng)力測試(即,用于對(duì)罕見數(shù)據(jù)組合下的性能的測試)。很多原有的主機(jī)數(shù)據(jù)集通過COBOL得以描述并包含COBOL的REDEFINES(重新定義)。REDEFINES語句用于通過重新使用相同的字節(jié)位置組將在同一數(shù)據(jù)集內(nèi)以不同的記錄格式(通常用于子記錄)保存數(shù)據(jù)來節(jié)省空間。例如,在一個(gè)記錄中,這些字節(jié)可能包含如個(gè)人名稱和客戶標(biāo)識(shí)符的客戶信息;而在另一個(gè)記錄中,這些字節(jié)可能包含關(guān)于所購買條目(item)的數(shù)量和價(jià)格信息的發(fā)票數(shù)據(jù)。有時(shí)候記錄中的另一個(gè)字段標(biāo)識(shí)哪個(gè)REDEFINE的實(shí)例旨在用于給定記錄,但對(duì)這是哪個(gè)字段的存儲(chǔ)信息(knowledge)可能缺失或者不可用(例如,包含于應(yīng)用程序代碼中)。有時(shí)候記錄格式之外的一些東西(例如,文件名、處理應(yīng)用程序的命令行變量(argument)、或者應(yīng)用程序代碼有權(quán)訪問的外部的一些其它東西)標(biāo)識(shí)哪個(gè)REDEFINE用于全部數(shù)據(jù)集。有時(shí)必須檢查字節(jié)的內(nèi)容以確定想要哪個(gè)REDEFINE。這些用例是示例性而不是詳盡的。從一起獲取的所有REDEFINE字段的內(nèi)容中構(gòu)建的數(shù)據(jù)模式代碼,特別基于它們的期望內(nèi)容來考慮這些字段的有效性(例如,十進(jìn)制不能包含字母字符,字符串?dāng)?shù)據(jù)不包含任意二進(jìn)制字符,國家代碼必須在特定參考表中等),而使得該數(shù)據(jù)模式代碼可以用于推斷出哪些REDEFINE對(duì)于給定記錄是正確的(可能不止一個(gè))。該數(shù)據(jù)模式代碼可以被添加到記錄,且用于轉(zhuǎn)換為更易于通過非COBOL應(yīng)用程序進(jìn)行處理的條件性記錄格式。類似的考慮也適用于聯(lián)合數(shù)據(jù)結(jié)構(gòu)以及其它語言中的其它“變體記錄”。通過相關(guān)聯(lián)的XML架構(gòu)來描述XML文件,該XML架構(gòu)經(jīng)常包含存在于任何特定文件(或樣本)中的字段的超集。在用于被設(shè)計(jì)為包含各種原有格式的金融交易的工業(yè)標(biāo)準(zhǔn)如ISO20022中尤其如此。這些工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)經(jīng)常是龐大而復(fù)雜的,并且只有小部分的可能的元素(字段)被填充在給定文件中。當(dāng)在這種架構(gòu)下處理文件的集合時(shí),知道哪些元素在使用中以及什么元素分布于整個(gè)文件集合是有用的??梢酝ㄟ^構(gòu)建用于文件的數(shù)據(jù)模式代碼(或者也許一組數(shù)據(jù)模式代碼)來回答這個(gè)問題。這在設(shè)計(jì)新的應(yīng)用程序時(shí)特別有用,這是因?yàn)椴恍枰獮闃?biāo)準(zhǔn)中的那些沒有在源數(shù)據(jù)中出現(xiàn)的元素寫入商業(yè)規(guī)則,從而節(jié)省了大量時(shí)間和資源。由于從不同的原有格式中輸入數(shù)據(jù),其可能被定制或擴(kuò)展為通用數(shù)據(jù)結(jié)構(gòu),因此,某些機(jī)構(gòu)建議以工業(yè)標(biāo)準(zhǔn)格式如ISO20022存儲(chǔ)其原有(legacy)數(shù)據(jù)。當(dāng)使用通用格式中的數(shù)據(jù)進(jìn)行工作時(shí),挑戰(zhàn)為并非所有源將會(huì)填充架構(gòu)(schema)內(nèi)的相同的字段集合。從示例性文件的集合中構(gòu)建數(shù)據(jù)模式代碼將會(huì)示出哪些字段在使用中,以及可以用來對(duì)用于下游處理的文件進(jìn)行分類。在一些情況下,可以從不常見的填充字段中推斷出上游原有源的性質(zhì)(nature),而這可能有助于開發(fā)用于處理那些字段的商業(yè)規(guī)則。XML文件的另一個(gè)特征為其將數(shù)據(jù)組織成可包含其它元素的元素。這些元素中的一些元素將是強(qiáng)制的——它們必須存在于任何文件中——而其它元素將是可選的。還有其它元素是條件性強(qiáng)制的:如果一個(gè)元素存在,另一個(gè)也必須存在。這種架構(gòu)經(jīng)常包括該信息,但以不是總適合其它應(yīng)用程序使用的形式包括該信息。可以從標(biāo)識(shí)有效的數(shù)據(jù)模式代碼的架構(gòu)中,或許可通過標(biāo)識(shí)哪些元素組合必須存在而哪些不需要存在來構(gòu)建表格??梢酝ㄟ^對(duì)從樣本文件中構(gòu)建的數(shù)據(jù)模式代碼與有效的數(shù)據(jù)模式代碼的表格進(jìn)行比較,驗(yàn)證XML文件與XML架構(gòu)的一致性。一些XML元素旨在分離具有不同目的的信息分開。例如,可能存在用于通過名稱和地址來標(biāo)識(shí)債權(quán)人的數(shù)據(jù)標(biāo)簽和可存在用于金融交易的細(xì)節(jié)的另一個(gè)標(biāo)簽。這些不同的元素可被指定用于單獨(dú)處理。由于并非每個(gè)文件都會(huì)有每個(gè)元素存在,數(shù)據(jù)模式代碼可以用于標(biāo)識(shí)哪些元素存在于給定文件中,而反過來又可以用于分解文件并按路徑發(fā)送該文件的不同元素以進(jìn)行適當(dāng)?shù)奶幚怼Mㄟ^以下說明書和權(quán)利要求書,本發(fā)明的其它特征和優(yōu)點(diǎn)將變得顯而易見。附圖說明圖1是用于執(zhí)行數(shù)據(jù)模式分析的系統(tǒng)的方框圖。圖2是示例性數(shù)據(jù)模式分析程序的流程圖。圖3是示出記錄的字段和對(duì)應(yīng)代碼的示意圖。圖4和圖5是用于顯示數(shù)據(jù)模式代碼的示例性用戶界面的示意圖。具體實(shí)施方式圖1示出可以使用數(shù)據(jù)模式分析技術(shù)的示例性數(shù)據(jù)處理系統(tǒng)100。系統(tǒng)100包括數(shù)據(jù)源102,該數(shù)據(jù)源102可包括諸如存儲(chǔ)設(shè)備或至在線數(shù)據(jù)流的連接的一個(gè)或多個(gè)數(shù)據(jù)源,每個(gè)數(shù)據(jù)源可以各種存儲(chǔ)格式(例如,數(shù)據(jù)庫表、電子表文件、純文本文件或主機(jī)(mainframe)使用的原生格式(nativeformat))中的任一種存儲(chǔ)數(shù)據(jù)。執(zhí)行環(huán)境104包括預(yù)處理模塊106和執(zhí)行模塊112。在一些實(shí)施方式中,預(yù)處理模塊106從數(shù)據(jù)源102中接收一個(gè)或多個(gè)數(shù)據(jù)集并對(duì)數(shù)據(jù)集中的數(shù)據(jù)執(zhí)行數(shù)據(jù)完整性檢查。例如,預(yù)處理模塊106可對(duì)包括超范圍的值、不可能的值等的記錄的數(shù)據(jù)集進(jìn)行篩選。執(zhí)行模塊112分析數(shù)據(jù)集的模式,包括使用用于診斷和其它高級(jí)數(shù)據(jù)處理的模式信息。執(zhí)行環(huán)境104可以在適當(dāng)?shù)牟僮飨到y(tǒng)(諸如UNIX操作系統(tǒng))的控制下寄主于一個(gè)或多個(gè)通用計(jì)算機(jī)上。例如,執(zhí)行環(huán)境104可包括多節(jié)點(diǎn)并行計(jì)算機(jī)環(huán)境,其包括使用多個(gè)中央處理單元(CPU)的計(jì)算機(jī)系統(tǒng)的配置,這多個(gè)中央處理單元或者為本地(例如,諸如SMP計(jì)算機(jī)的多處理器系統(tǒng))或者為本地分布的(例如,被連接為簇(cluster)或MPP的多個(gè)處理器)或者為遠(yuǎn)程的、或者為遠(yuǎn)程分布的(例如,經(jīng)由局域網(wǎng)(LAN)和/或廣域網(wǎng)(WAN)連接的多個(gè)處理器)、或者為上述任意組合的。提供數(shù)據(jù)源102的存儲(chǔ)設(shè)備可以相對(duì)于執(zhí)行環(huán)境104是本地的,例如存儲(chǔ)在與運(yùn)行執(zhí)行環(huán)境104的計(jì)算機(jī)連接的存儲(chǔ)介質(zhì)(例如,硬盤18)上,或者可以相對(duì)于執(zhí)行環(huán)境104位于遠(yuǎn)程,例如位于在遠(yuǎn)程連接上與運(yùn)行執(zhí)行環(huán)境14的計(jì)算機(jī)相通信的遠(yuǎn)程系統(tǒng)(例如,主機(jī)110)上。執(zhí)行模塊112處理來自數(shù)據(jù)源102的數(shù)據(jù)集并選擇性地使用來自預(yù)處理模塊106的結(jié)果以生成在數(shù)據(jù)集中的模式的表示,例如,該模式表示被編碼于一個(gè)或多個(gè)代碼114中,并被存儲(chǔ)于執(zhí)行環(huán)境104可以訪問的數(shù)據(jù)存儲(chǔ)系統(tǒng)116中。代碼114可以與數(shù)據(jù)一起存儲(chǔ)在數(shù)據(jù)源102的數(shù)據(jù)集或存儲(chǔ)在其它位置中。開發(fā)環(huán)境118也可以訪問數(shù)據(jù)存儲(chǔ)系統(tǒng)116,在該開發(fā)環(huán)境118中,開發(fā)者120能夠觀看并管理數(shù)據(jù)模式分析的性能。在一些實(shí)施方式中,開發(fā)環(huán)境118是用于開發(fā)應(yīng)用程序作為數(shù)據(jù)流圖的系統(tǒng),數(shù)據(jù)流圖包括頂點(diǎn)(表示組件或數(shù)據(jù)集),頂點(diǎn)由頂點(diǎn)之間的有向鏈接(表示工作元素的流動(dòng))連接。例如,在通過引用合并于此的、名稱為“ManagingParametersforGraph-BasedApplications”的美國公開號(hào)2007/0011668中更詳細(xì)地描述了這種環(huán)境。在通過引用合并于此的美國專利5,566,072、EXECUTINGCOMPUTATIONSEXPRESSEDASGRAPHS中描述了用于執(zhí)行這種基于圖的計(jì)算的系統(tǒng)。根據(jù)該系統(tǒng)做成的數(shù)據(jù)流圖提供用于使信息進(jìn)入或離開的由圖組件表示的獨(dú)立進(jìn)程(process)、用于在進(jìn)程之間移動(dòng)信息、以及用于定義進(jìn)程的運(yùn)行順序的方法。該系統(tǒng)包括選擇進(jìn)程間通信方法(例如,根據(jù)圖的鏈接的通信路徑可使用TCP/IP或UNIX域套接字,或使用共享存儲(chǔ)器以便在進(jìn)程之間傳遞數(shù)據(jù))的算法。預(yù)處理模塊106可以“數(shù)據(jù)集”的形式接收來自包括不同形式的數(shù)據(jù)庫系統(tǒng)的各種類型的系統(tǒng)的數(shù)據(jù)。該數(shù)據(jù)集可以被組織為具有用于各個(gè)字段(也稱為“屬性”或“列”)的值(可能包括NULL值)的記錄。當(dāng)首次從數(shù)據(jù)源中讀取數(shù)據(jù)時(shí),預(yù)處理模塊106典型地以有關(guān)那個(gè)數(shù)據(jù)源中的記錄的某些初始格式信息而開始。在一些情況下,最初可能不知道數(shù)據(jù)源的記錄結(jié)構(gòu),而代之以可在分析數(shù)據(jù)源之后來確定。關(guān)于記錄的初始信息可包括表示不同值的位的數(shù)量、記錄內(nèi)的字段順序和由位表示的值的類型(例如,串、帶符號(hào)整數(shù)/無符號(hào)整數(shù))。接著,預(yù)處理模塊106可對(duì)記錄執(zhí)行數(shù)據(jù)完整性分析以確保例如對(duì)應(yīng)于字段的值在預(yù)期范圍和預(yù)期數(shù)據(jù)類型內(nèi)。一旦完成預(yù)處理步驟,執(zhí)行模塊112便執(zhí)行數(shù)據(jù)模式分析。更一般地說,數(shù)據(jù)記錄可具有與針對(duì)記錄的一個(gè)或多個(gè)字段和/或字段(例如,被記錄格式或圖示限定為潛在存在于記錄中的字段)組合有關(guān)的多個(gè)屬性。這些屬性可對(duì)應(yīng)于針對(duì)記錄的每個(gè)字段或字段組合,并且可包括數(shù)據(jù)值類型、數(shù)據(jù)值長度和/或數(shù)據(jù)值。在一些實(shí)施方式中,與數(shù)據(jù)記錄中的字段相對(duì)應(yīng)的值可以統(tǒng)稱為記錄的填充(population)。通常,用于記錄的字段不需要全部被填充。例如,數(shù)據(jù)記錄可具有或不具有對(duì)應(yīng)于存在單獨(dú)記錄中的所有字段的值。此外,已知或聲明與記錄相關(guān)聯(lián)的一些字段可能不存在且可以被稱為缺省字段。因此,字段被示為“未填充”的原因可能是多種多樣的。一些字段可能在特定記錄中缺省,一些字段可能存在但可能是空的或者可能包含“NULL(空)”值(該值是被預(yù)設(shè)為表示字段未被填充,諸如一個(gè)或多個(gè)空格字符串)。存在且包括非NULL值的字段是“被填充的”。在一些實(shí)施方式中,字段的缺省或與記錄的字段相對(duì)應(yīng)的值的缺省可表示記錄在某些方面上是不完整的,這可能是數(shù)據(jù)質(zhì)量問題。在一些實(shí)施方式中,字段或值的缺少可能僅表示用于給定記錄的特定字段的不相關(guān)性??梢酝ㄟ^分析記錄的字段來確定記錄的填充模式。例如,記錄中的數(shù)據(jù)模式表示可包括用公式表示具有數(shù)據(jù)元素的數(shù)據(jù)模式代碼,其中數(shù)據(jù)元素的值對(duì)應(yīng)于記錄的對(duì)應(yīng)字段或字段組合的一個(gè)或多個(gè)狀態(tài)或?qū)傩?。元素值可以選自一組預(yù)定元素值。該組中的元素值的數(shù)量可以小于發(fā)生在數(shù)據(jù)集中的記錄上的對(duì)應(yīng)字段中的數(shù)據(jù)值的總數(shù)。例如,數(shù)據(jù)模式可以是位圖,在該位圖中,元素為表示記錄中的字段的狀態(tài)或?qū)傩缘奈弧@?,?shù)據(jù)模式代碼公式可包括具有設(shè)置為表示字段的狀態(tài)或?qū)傩缘囊粋€(gè)或多個(gè)位的如下位圖:0對(duì)應(yīng)于“空”或“缺省”的字段狀態(tài),以及1對(duì)應(yīng)于“非空”或“非缺省”的字段狀態(tài)??商鎿Q的位圖如下:0對(duì)應(yīng)于“空”(例如,沒有值)或“NULL”(例如,字段具有諸如一個(gè)或多個(gè)空格字符的預(yù)定“NULL”值)的字段狀態(tài),1對(duì)應(yīng)于“缺省”的字段狀態(tài)或?qū)傩裕ɡ?,字段未存在于記錄中),以?可對(duì)應(yīng)于“填充”的字段狀態(tài)(例如,字段具有非NULL值)。分析多個(gè)記錄的一個(gè)或多個(gè)字段或字段組合以確定字段的各種狀態(tài)或?qū)傩援?dāng)中的模式。例如,如果該分析確定字段是否被填充,對(duì)于特定記錄的可能模式信息可包括一系列的表示字段在特定記錄中是否被填充的信息。用這種方式,數(shù)據(jù)模式代碼與記錄相關(guān)聯(lián)以表示對(duì)應(yīng)于該記錄的數(shù)據(jù)模式。在一些實(shí)施方式中,用戶可能想知道具有用于字段的某個(gè)值的記錄部分(afractionofrecords)。舉例來說,記錄可具有字段“apt_num”,該字段是指可以預(yù)期到單元或公寓號(hào)碼的地址簿片段。對(duì)知道哪些部分的記錄中被標(biāo)識(shí)為具有公寓感興趣的用戶可通過快速觀看模式信息來得到該信息。模式信息還可以提供記錄的多個(gè)字段之間的可能相關(guān)性。例如,具有表示為不具有公寓或單元號(hào)碼的地址的記錄還可能具有其業(yè)主字段,該業(yè)主字段設(shè)置為“Yes”,表示屬于個(gè)人的記錄是業(yè)主。在一些實(shí)施方式中,如果強(qiáng)制字段(mandatoryfield)中的值缺失,則記錄可能被認(rèn)為是不完整的。例如,在銀行客戶的記錄中,客戶的姓可以是強(qiáng)制字段。按照這樣,如果客戶記錄的姓字段中的姓值不存在,則記錄應(yīng)該被視為是不完整的。反之,如果客戶記錄的中間名的值不存在,則記錄可能不是不完整的,這是因?yàn)橹虚g名可以被視為可選值。在這種情況下,可以確定銀行客戶的記錄的模式并將數(shù)據(jù)模式代碼分配給該記錄。一旦執(zhí)行模塊112已經(jīng)確定用于特定記錄的數(shù)據(jù)模式代碼,可以根據(jù)代碼來分析從數(shù)據(jù)源102中讀取的進(jìn)一步數(shù)據(jù)。沿著這些線索,可以將一個(gè)或多個(gè)規(guī)則寫入,以標(biāo)識(shí)出缺失了姓字段中的姓值的標(biāo)記數(shù)據(jù)記錄,用于糾錯(cuò)。照這樣,數(shù)據(jù)模式代碼公式可以用作診斷機(jī)制以確保強(qiáng)制字段被填充以及還可以量化可選字段的填充。在一些實(shí)施方式中,當(dāng)數(shù)據(jù)處理系統(tǒng)100處于數(shù)據(jù)發(fā)現(xiàn)模式下時(shí),數(shù)據(jù)模式代碼公式可以用于區(qū)分強(qiáng)制字段和可選字段。有時(shí)候,規(guī)定了哪些字段是強(qiáng)制的而哪些是可選的的原始填充規(guī)則可能丟失或不可用。例如,規(guī)定了姓字段為強(qiáng)制字段而中間名字段為可選字段的原始規(guī)則對(duì)系統(tǒng)100可能不可用。執(zhí)行模塊112可分析數(shù)據(jù)源102中的數(shù)據(jù)集以在數(shù)據(jù)集中建立填充模式。在這種情況下,如果給定數(shù)據(jù)集中的基本上所有記錄具有由非空值填充的它們的姓字段,并且只有數(shù)據(jù)集中的某些小部分記錄具有填充的他們的中間名字段,那么系統(tǒng)100可推測姓字段為強(qiáng)制字段而中間名字段為可選字段。作為一個(gè)示例,現(xiàn)參見圖3,假定考慮跨國零售組織的企業(yè)數(shù)據(jù)倉庫中的“交易”數(shù)據(jù)集300。倉庫可記錄在一些國家的商店中進(jìn)行的交易。因此,對(duì)應(yīng)于在國家中的交易的交易記錄304可包括:transaction_id字段(例如,標(biāo)識(shí)特定交易的代理鍵)、customer_id字段(例如,鏈接到由客戶的總列表組成的另一個(gè)數(shù)據(jù)集的代理鍵)、標(biāo)識(shí)已購買條目的product_id字段(例如,鏈接到由產(chǎn)品的總列表組成的另一個(gè)數(shù)據(jù)集的代理鍵)、store_id字段(例如,鏈接到由商店及其位置的列表組成的數(shù)據(jù)集的代理)、quantity(數(shù)量)字段以及price(價(jià)格)字段。這些字段都可以被視為強(qiáng)制字段308(例如,字段可能不允許為空)。因此,如果這些強(qiáng)制字段308中的任一字段是未填充的,則數(shù)據(jù)的質(zhì)量可能被視為存在問題。數(shù)據(jù)集還可包括附加字段312,諸如country_cd字段(例如,標(biāo)識(shí)商店位于哪個(gè)國家的代理鍵)、currency_cd字段(例如,標(biāo)識(shí)交易的貨幣的代理鍵)、以及表示包括在買賣中的稅收量的tax字段。在一些實(shí)施方式中,附加字段312可能被填充或不填充,并且這種字段中的數(shù)據(jù)的缺省可能不存在數(shù)據(jù)質(zhì)量問題。在上述方案中,可以通過將數(shù)據(jù)模式代碼316分配給每個(gè)記錄304來分析交易數(shù)據(jù)集300的數(shù)據(jù)質(zhì)量。例如,數(shù)據(jù)模式代碼316可反映出交易記錄304的哪些字段320是填充的而哪些字段是未填充的。假設(shè)位圖代碼公式、位圖代碼的位可以被分配給交易記錄的如下對(duì)應(yīng)字段:transaction_id(位0)、customer_id(位1)、product_id(位2)、store_id(位3)、quantity(位4)、price(位5)、country_cd(位6)、currency_cd(位7)和tax(位8)。如果交易記錄的字段被填充,將對(duì)應(yīng)位設(shè)置為1,否則將該位設(shè)置為0。概括地,在十進(jìn)制計(jì)數(shù)法中,例如,如果位“k”設(shè)置為1,那么將2k的值添加到位圖代碼中。例如,如果transaction_id、customer_id、product_id、price和tax被填充,數(shù)據(jù)模式代碼將為151(位0、1、2、5和8設(shè)置對(duì)應(yīng)于1+2+4+32+256=295)。在一些實(shí)施方式中,掩碼(maskcode)324可以對(duì)應(yīng)于強(qiáng)制字段308和附加字段312被實(shí)現(xiàn)。掩碼324起到過濾器的作用,該過濾器可選擇性地包括或排除記錄304的字段或字段值。如上所述,示例交易記錄的前六個(gè)字段為強(qiáng)制字段308而后三個(gè)字段為附加字段312。照這樣,掩碼324可以用公式表示,以表示如下強(qiáng)制字段308和附加字段312:[000111111](在十進(jìn)制記數(shù)法中,掩碼為63)??梢栽谖粓D代碼320和掩碼之間進(jìn)行按位“與”(AND)運(yùn)算。如果按位“與”的結(jié)果為除了63之外的任意值,那么強(qiáng)制字段308中的一個(gè)是未填充的。例如,(63&295)=39,這表示位0、1、2和5被設(shè)置,因此,store_id和quantity字段是未填充的。因此,該情況可以被標(biāo)記為數(shù)據(jù)質(zhì)量問題。在一些方案下,異構(gòu)數(shù)據(jù)集(例如,其中的記錄可以不同的數(shù)據(jù)記錄格式接受值的數(shù)據(jù)集)可具有包括獨(dú)立字段的記錄以標(biāo)識(shí)記錄類型。照這樣,用于記錄的填充的數(shù)據(jù)格式可以取決于記錄類型。然而,在具有條件性的強(qiáng)制字段(也就是說,僅當(dāng)滿足特定數(shù)據(jù)條件時(shí)才被強(qiáng)制的字段)的某些其它數(shù)據(jù)集中,可能存在具有沒有明確關(guān)于記錄類型的字段保存(holding)信息的隱含異構(gòu)性。在這種情況下,數(shù)據(jù)模式代碼公式可以用來確定記錄格式的基礎(chǔ)集合(underlyingcollection)以及驗(yàn)證具有條件性強(qiáng)制字段的數(shù)據(jù)集的完整性。開發(fā)者或分析者可以使用數(shù)據(jù)模式代碼公式以對(duì)這種條件性的強(qiáng)制記錄進(jìn)行分類??梢詫⒃谶@種情況下作為代理記錄類型的數(shù)據(jù)模式代碼公式的使用被類比為代理鍵(即,不具有商業(yè)/真實(shí)世界含義的系統(tǒng)生成鍵),該代理鍵可以用來代替自然鍵(naturalkey)。舉例來說,在如上所述的交易數(shù)據(jù)集300(圖3)的背景下,可以分別在每個(gè)商店中獲取數(shù)據(jù),將數(shù)據(jù)合并成用于每個(gè)國家的單獨(dú)數(shù)據(jù)集,然后將數(shù)據(jù)加載到企業(yè)數(shù)據(jù)倉庫中的交易數(shù)據(jù)集300。考慮在美國交易數(shù)據(jù)集沒有country(國家)字段或currency(貨幣)字段(即,位號(hào)6和7)的示例情況??梢詫S交易記錄格式擴(kuò)展為包括兩個(gè)新字段,同時(shí)保持與原有應(yīng)用程序的一致性,對(duì)于US交易,country字段和currency字段是未填充的。對(duì)于非US交易記錄,這些字段可以被視為是強(qiáng)制的。照這樣,可以將這些數(shù)據(jù)值未存在于這些字段中的任何情況標(biāo)記為數(shù)據(jù)質(zhì)量問題。在這一點(diǎn)上,在記錄為非US交易記錄的條件下字段被視為是強(qiáng)制的。類似地,如果交易過程中在區(qū)域中收稅,則tax字段(位8)可以被視為是強(qiáng)制的。再者,可以將收稅但tax字段為未填充的情況標(biāo)記為數(shù)據(jù)質(zhì)量問題,因此,在記錄處于收稅的區(qū)域中的條件下tax字段可以被視為是強(qiáng)制的??梢杂妙愃朴趶?qiáng)制數(shù)據(jù)模式的方式來分析條件數(shù)據(jù)模式。在本方案下,US交易記錄被期望具有未填充的country_cd和currency_cd(位6和7)字段,而對(duì)于非US交易記錄而言期望填充這些字段??梢酝ㄟ^檢查位6和7都設(shè)置為1或都設(shè)置為0來檢驗(yàn)country_cd和currency_cd字段的模式的相關(guān)性,而無需明確地檢查商店的位置(在一些情況下,該位置可能需要訪問商店數(shù)據(jù)集)。在一些實(shí)施方式中,可以從數(shù)據(jù)模式代碼的分布中推斷出這種相關(guān)性的存在。可以將交易數(shù)據(jù)集300傳送到(rollupto)數(shù)據(jù)模式代碼,使得能夠計(jì)算具有每個(gè)代碼的記錄的數(shù)量。這種方法可以確定是否具有位6和7設(shè)置這兩者的記錄的數(shù)量。在一些實(shí)施方式中,為了尋找模式的說明,提取具有數(shù)據(jù)模式代碼的記錄樣本可能是有用的。在這種方案下,在檢查合適的記錄樣本之后,缺少country_cd字段的US國家代碼可能和缺少currency_cd字段的US美元貨幣代碼一樣突顯出來。因此,currency_cd字段的填充可以看作是被條件性強(qiáng)制在country_cd字段的填充上。用這種方式,數(shù)據(jù)模式代碼公式的使用可簡化尋找“隱藏”規(guī)則的過程。在一些數(shù)據(jù)處理應(yīng)用中,特殊的記錄格式可能用于使來自不同源的數(shù)據(jù)在通過通用框架處理之前標(biāo)準(zhǔn)化或一致化。在這樣的應(yīng)用下,為了避免丟失信息,“單值化”記錄格式包括來自不同源的超集字段??梢酝ㄟ^分析來自幾個(gè)不同源的數(shù)據(jù)模式來生成單值化記錄格式。例如,在一些實(shí)施方式中,第一組字段可保存對(duì)很多源通用的數(shù)據(jù),而不同的第二組字段可能唯一地與特定源或源的子集相關(guān)聯(lián)。舉例來說,來自第一源的記錄中的date(日期)字段可能是“DD/MM/YYYY(日/月/年)”格式,而來自第二源的不同的第二記錄中的date字段可能是“DD,Month,Year(日,月,年)”格式。在一些源中,只有日和月可能是可用的,而在其它源中,日、月和年的值可能是單獨(dú)字段。因此,單值化記錄格式可以從來自各種源的記錄類型的組合中得到。接著,可以通過來自屬于不同源的記錄的數(shù)據(jù)來填充單值化記錄。在一些實(shí)施方式中,為了確定單值化記錄是否已經(jīng)被正確地填充,用于明確規(guī)定強(qiáng)制和條件填充的一個(gè)或多個(gè)商業(yè)規(guī)則可以用于將預(yù)期數(shù)據(jù)模式與測試方案的輸出相關(guān)聯(lián)。然后,將這些期望結(jié)果與實(shí)際結(jié)果進(jìn)行比較以用于確認(rèn)。例如,一旦執(zhí)行模塊112已經(jīng)產(chǎn)生單值化記錄格式,各種數(shù)據(jù)源可以用于填充單值化記錄。然后,用于明確規(guī)定強(qiáng)制和條件填充的商業(yè)規(guī)則可以用于確定字段是否已經(jīng)被正確地填充。當(dāng)來自不同源的數(shù)據(jù)被組合成通用格式時(shí),例如,當(dāng)來自不同國家的不同公司的原有(legacy)數(shù)據(jù)在公司合并后被組合時(shí),在數(shù)據(jù)倉庫應(yīng)用中可涉及到不同記錄結(jié)構(gòu)。沿著這些線索,在交易數(shù)據(jù)集300(圖3)中可能有country-specific的附加字段,該附加字段為country-specific(國家-指定)。例如,在一些國家中可能有package_id字段,該package_id字段用于表示什么時(shí)候產(chǎn)品(item)作為合裝包(例如,“六聯(lián)包”飲料)的一部分被購買,而在其它國家中可能有用于表示大?。ɡ纾?6盎司或400克)的volume(體積)字段和用于表示單位數(shù)量的unit(單位)字段。數(shù)據(jù)模式代碼320可表示只有某些字段具有相關(guān)聯(lián)的填充。也就是說,或者package_id字段被填充,或者volume字段和unit字段都被填充,這二種情況的填充都只針對(duì)某些不相交的country_cd字段值發(fā)生。在一些實(shí)施方式中,可以構(gòu)建以一組記錄格式的方式來描述數(shù)據(jù)集的條件性的記錄格式,每個(gè)條件記錄格式僅由填充字段組成。例如,一個(gè)簡化的記錄格式可能只有package_id作為額外的字段,另一個(gè)可能有volume和unit,然而另一個(gè)可能沒有附加字段。這種簡化可能在處理組合來自很多源的數(shù)據(jù)的復(fù)雜的記錄格式時(shí)是有用的。在一些實(shí)施方式中,對(duì)每個(gè)不同的簡化格式中的記錄樣本的調(diào)查可指示出該源或提供簡化記錄格式后面的商業(yè)原因,即使這不是一開始就知道的。在一些示例中,數(shù)據(jù)模式代碼公式可以與COBOLREDEFINES配合使用。通常,REDEFINES子句允許通過不同的數(shù)據(jù)條目對(duì)相同的存儲(chǔ)區(qū)進(jìn)行描述以節(jié)省空間。照這樣,COBOLREDEFINES可將同組字節(jié)的兩個(gè)或兩個(gè)以上解析(parsing)指定給不同字段。在C程序設(shè)計(jì)語言(或類似的程序設(shè)計(jì)語言)中,這樣的構(gòu)建可以被稱為聯(lián)合數(shù)據(jù)結(jié)構(gòu),并且可能發(fā)生類似問題。有時(shí)候通過記錄中的另一個(gè)字段來確定兩個(gè)或兩個(gè)以上REDEFINES中的哪一個(gè)用在給定記錄中,但關(guān)于這是哪個(gè)字段的信息可能會(huì)丟失或不可用(例如,嵌入在應(yīng)用程序代碼中)?;蛘?,記錄中可能沒有表示使用哪個(gè)REDEFINES的字段。有時(shí)候?qū)⒃撔畔⒈4妫╤old)在記錄格式的外部(例如,在文件名或?qū)τ谔幚響?yīng)用程序可用的某個(gè)位置中),或者有時(shí)候可能需要檢查REDEFINES的內(nèi)容以確定哪一個(gè)是正確的。這些示例是用來示例性而不是詳盡的。所有這些情況對(duì)于讀取其原始上下文以外的數(shù)據(jù)集造成了潛在困難。使用所有REDEFINES的字段計(jì)算的數(shù)據(jù)模式代碼可推斷出合適的解析。在示例性方案中,REDEFINES數(shù)據(jù)結(jié)構(gòu)可由不同的數(shù)據(jù)組成。例如,如果REDEFINES的一個(gè)分支僅包含字母文本字段,而對(duì)于相同字節(jié)的另一個(gè)REDEFINES包含十進(jìn)制字段,當(dāng)十進(jìn)制字段根本不包含數(shù)字和單個(gè)小數(shù)點(diǎn)時(shí),該十進(jìn)制字段將會(huì)被標(biāo)記為無效。這種情況可發(fā)生在使用COBOLREDEFINES的原有主機(jī)數(shù)據(jù)中。基于字段中數(shù)據(jù)的有效性(而不是簡單的填充)的數(shù)據(jù)模式代碼公式可以用來檢測正確的解析。在一些實(shí)施方式中,產(chǎn)生的數(shù)據(jù)模式代碼可以用于將數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為條件性的記錄格式,其中每個(gè)可替代的REDEFINES格式僅對(duì)相關(guān)聯(lián)的數(shù)據(jù)模式代碼而產(chǎn)生。對(duì)于原有數(shù)據(jù),可以通過咨詢用于填充數(shù)據(jù)的商業(yè)規(guī)則來回答關(guān)于哪些字段對(duì)很多源是通用的以及哪些是特定的、或者可持續(xù)跨過多個(gè)源或不持續(xù)跨過多個(gè)源的字段之間是否存在相關(guān)性的問題。在一些方案下,這些規(guī)則可能會(huì)丟失或者不可用。例如,任何書面文件(writendocumentation)可能會(huì)過期或丟失,而規(guī)則仍被積極地使用。在這些方案中,數(shù)據(jù)模式代碼公式可以用來確定字段之間的相關(guān)性,并且還可以用來確定記錄的源和字段之間的相關(guān)性。在一些實(shí)施方式中,在構(gòu)建數(shù)據(jù)模式代碼之后,可以通過執(zhí)行聚合來推斷出記錄中的字段之間的相關(guān)性。例如,在交易數(shù)據(jù)集300(圖3)中,如果將數(shù)據(jù)集傳送到store_id字段,有多少個(gè)記錄具有填充的tax字段的計(jì)數(shù)可以用來確定哪些商店處于具有銷量(sale)或增值稅的區(qū)域中??梢詮娜缟厦嬖敿?xì)描述的單獨(dú)數(shù)據(jù)統(tǒng)計(jì)中推斷出哪些地區(qū)收稅的確定。在一些實(shí)施方式中,數(shù)據(jù)可以諸如XML和用于金融交易的ISO20022的行業(yè)標(biāo)準(zhǔn)記錄格式而存在。例如,有些可能選擇使用ISO20022作為內(nèi)部標(biāo)準(zhǔn),這是因?yàn)樗麄兛蓪⑵湓袛?shù)據(jù)填充到通用格式中,而不需要重新設(shè)計(jì)現(xiàn)有系統(tǒng)。另外,不同的原有源(包括定制或擴(kuò)展的原有格式)可填充與其它源通用的字段以及對(duì)該原有源唯一的某些字段。在這一點(diǎn)上,開發(fā)者可能需要編寫處理以行業(yè)標(biāo)準(zhǔn)保存的數(shù)據(jù)的應(yīng)用程序。由于通過行業(yè)標(biāo)準(zhǔn)描述的完整的記錄格式可能是復(fù)雜的,并且從任一原有類型的角度來看包含外來數(shù)據(jù),因此,開發(fā)者可能選擇放棄未填充的字段。特別地,XML架構(gòu)(schema)可定義可被填充的可能的一組字段。因此,XML記錄(例如,包括根據(jù)XML格式化的數(shù)據(jù)的文件)可僅包含針對(duì)那個(gè)記錄被填充的字段。在來自多個(gè)原有源的數(shù)據(jù)被一起保存的數(shù)據(jù)倉庫情況下,可改變XML記錄中存在的數(shù)據(jù)。如果為每個(gè)XML記錄計(jì)算數(shù)據(jù)模式代碼,則該代碼能夠使得使用字段的不同組合的記錄易于分隔開而用于獨(dú)立處理。一起填充的這些類型的字段在性質(zhì)上可表示不同類型的數(shù)據(jù)(例如,與姓名和地址信息不同的類似BIC代碼的機(jī)構(gòu)標(biāo)識(shí)信息),并由此被指定用于不同的處理。掩碼或多個(gè)數(shù)據(jù)模式代碼的創(chuàng)建能夠很容易地區(qū)分這些數(shù)據(jù)段。此外,在一些實(shí)施方式中,某些XML標(biāo)簽可能被強(qiáng)制而其它的則不會(huì)。如上所述的數(shù)據(jù)模式代碼公式可幫助分析字段而無需依賴對(duì)文件的參考。在一些實(shí)施方式中,數(shù)據(jù)模式代碼公式可以用來準(zhǔn)備用于下游(downstream)應(yīng)用程序的測試用例(testcase)。當(dāng)從很多源中收集輸入到應(yīng)用程序的數(shù)據(jù)時(shí),存在的一個(gè)擔(dān)心是應(yīng)用程序是否能夠正確地處理其接收到的各種輸入。在真實(shí)世界情況下,輸入到應(yīng)用程序的數(shù)據(jù)量可能太大而難以給出有意義的測試。為了解決這種情況,在一些實(shí)施方式中,數(shù)據(jù)模式代碼可以配置為用于生產(chǎn)數(shù)據(jù),即,將數(shù)據(jù)輸入到應(yīng)用程序??梢曰跀?shù)據(jù)模式代碼來創(chuàng)建測試記錄的數(shù)據(jù)集,并將該數(shù)據(jù)集應(yīng)用到應(yīng)用程序。例如,可以為每個(gè)不同的數(shù)據(jù)模式代碼選擇少量記錄(例如,單個(gè)記錄或另外預(yù)定數(shù)量的記錄)。已經(jīng)從整個(gè)產(chǎn)生數(shù)據(jù)取出的這個(gè)數(shù)據(jù)集可以被視為表示應(yīng)用程序可以被配置為正確處理的全面的測試用例組。圖2示出用于示例性數(shù)據(jù)模式分析程序200的流程圖。該程序包括將數(shù)據(jù)集(202)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)系統(tǒng)中。該數(shù)據(jù)集可包括具有對(duì)應(yīng)于多個(gè)字段的值的多個(gè)記錄。在連接到數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)處理系統(tǒng)中分析這些記錄(204)以產(chǎn)生對(duì)記錄中數(shù)據(jù)模式的表示。對(duì)記錄中數(shù)據(jù)模式的表示可例如包括數(shù)據(jù)模式代碼公式,該數(shù)據(jù)模式代碼公式諸如為具有表示記錄中的字段屬性的位的位圖。對(duì)記錄的處理可包括:對(duì)于每個(gè)記錄,分析多個(gè)記錄的一個(gè)或多個(gè)字段或字段組合(206)。該分析可包括:對(duì)于數(shù)據(jù)集中的每個(gè)記錄,涉及在該數(shù)據(jù)集中或在一個(gè)或多個(gè)其它數(shù)據(jù)集中的一個(gè)或多個(gè)其它記錄的計(jì)算。例如,對(duì)于數(shù)據(jù)集中的一組記錄,可以計(jì)算數(shù)值字段的平均值,并與從其它數(shù)據(jù)集的集合中取出的一組記錄的平均值(“歷史平均值”)進(jìn)行比較,以確定當(dāng)前平均值是否比歷史平均值大了某些閾值量。該分析可包括發(fā)現(xiàn)多個(gè)記錄中的字段間的一個(gè)或多個(gè)模式。例如,如果相關(guān)的狀態(tài)或?qū)傩园ㄗ侄问欠癖惶畛?,則模式可以為表示字段是否被填充的一系列信息。用這種方式,可以用公式表示數(shù)據(jù)模式代碼(208)以表示對(duì)應(yīng)于記錄的數(shù)據(jù)模式。在對(duì)記錄進(jìn)行處理之后,產(chǎn)生的代碼可以以標(biāo)識(shí)記錄及其對(duì)應(yīng)數(shù)據(jù)模式的方式被存儲(chǔ)(210)。當(dāng)分析附加記錄時(shí),可以重復(fù)程序200來處理附加記錄。在一些實(shí)施方式中,子程序可以用在較大的程序中以接收包含字段名的向量的記錄作為變量(argument)并產(chǎn)生數(shù)據(jù)模式代碼。例如,子程序可將記錄取作變量并取得具有諸如“空位(blank)”、“空位_或_NULL”等值的規(guī)則類型。子程序可計(jì)算用于每個(gè)字段名的值并建立適于所選的規(guī)則類型(rule_type)的位圖?!翱瘴弧币?guī)則類型提供表示字段是否為空位或填充的數(shù)據(jù)模式代碼。按照這樣,如果字段是填充的,產(chǎn)生的位圖為二進(jìn)制位組;而如果字段是未填充的,則位圖為0?!翱瘴籣或_NULL”規(guī)則類型在這種情況下對(duì)每個(gè)代碼使用兩個(gè)位來提供表示字段是否為空位(0)、填充(1)或NULL(2)的數(shù)據(jù)模式代碼?!坝行浴币?guī)則類型可提供表示給定字段是否無效(0)或有效(1)的數(shù)據(jù)模式代碼。無效字段可以是一個(gè)包含未被許可給相關(guān)聯(lián)的數(shù)據(jù)類型的字節(jié)或值的數(shù)據(jù)模式代碼。例如,“31-JUN-1960”作為日期字段是無效的,而“123a”作為十進(jìn)制字段是無效的。“表達(dá)式”規(guī)則類型可允許為每個(gè)字段提供表達(dá)式,以及允許它們的結(jié)果與位(或位值組)相關(guān)聯(lián)。例如,一些非空字段(non-nullable)可以用“空位”規(guī)則來分析,而其它空字段可以用“空位_或_null”規(guī)則來分析。僅包含小部分枚舉值的其它字段可具有映射到位值的其特定值。例如,可以將“M”或“F”的性別映射為0或1,而可以將“A”、“C”或“P”的transaction_type字段映射為0、1或2。在一些實(shí)施方式中,也可以對(duì)一個(gè)或多個(gè)字段組合進(jìn)行編碼。例如,在對(duì)字段進(jìn)行相似性比較(“模糊匹配”)的應(yīng)用程序中,可以分配一組匹配代碼用于兩個(gè)字段的比較(典型地在兩個(gè)獨(dú)立的記錄中,可能在獨(dú)立的數(shù)據(jù)集中)。例如,給定進(jìn)行比較的兩個(gè)公司名稱,結(jié)果(例如,量化匹配度的評(píng)分)可以被標(biāo)記為:“不匹配”(0),即,根據(jù)某些預(yù)定標(biāo)準(zhǔn),公司名稱不相似;“精確匹配”(1);“模糊匹配”(2),即,根據(jù)某些預(yù)定標(biāo)準(zhǔn)公司名稱相似但不完全相同;“未填充0”,即,公司名稱0是未填充的而公司名稱1是填充的;“未填充1”,即,公司名稱1是未填充的而公司名稱0是填充的;以及“未填充01”,即,沒有一個(gè)公司名稱是填充的。在通過引用合并于此的、題為“MANAGINGANARCHIVEFORAPPROXIMATESTRINGMATCHING”的美國專利公開第2009/0182728A1號(hào)和通過引用合并于此的、題為“FUZZYDATAOPERATIONS”的美國專利公開第2010/0106724A1號(hào)中描述了用于模糊匹配和基于模糊匹配的集群(clustering)的技術(shù)示例。在一些實(shí)施方式中,可以通過呈現(xiàn)給用戶的用戶界面中的圖形顯示向用戶呈現(xiàn)模式信息。通過這種方法,用戶能夠快速地確定記錄中被填充的字段的百分比。圖4示出示例性用戶界面,其包括字段400、位標(biāo)簽401和用于設(shè)置掩碼(mask)402的按鈕的列表。對(duì)于每個(gè)字段,在圖例(legend)404中提供了對(duì)于每個(gè)字段的代碼的可能設(shè)置。(對(duì)于每個(gè)字段的選擇可能不同,并且在一些實(shí)施方式中,用戶界面顯示了對(duì)于每個(gè)字段的不同選擇)。示意圖406表示哪些元素(element)為每個(gè)不同模式下的每個(gè)所選字段而設(shè)定(該不同模式對(duì)應(yīng)于不同的數(shù)據(jù)模式代碼)。存在用于在掩碼402中所選的每個(gè)按鈕的列(具有整個(gè)圖中上部用標(biāo)簽401標(biāo)識(shí)的對(duì)應(yīng)字段)以及存在用于每個(gè)不同模式的行。這里,具有給定模式的記錄部分(recordfraction)用較暗的陰影表示更大部分的填充被示出在灰度顯示408中,并且數(shù)值化示出為百分比410。圖5示出當(dāng)選擇性地設(shè)置掩碼并且對(duì)于每個(gè)字段有兩個(gè)以上數(shù)據(jù)模式代碼時(shí)的示例性用戶界面。將字段編號(hào)為500,并將標(biāo)簽501分配給每個(gè)字段。通過選擇按鈕來設(shè)定掩碼502。圖例504列出顯示的數(shù)據(jù)模式代碼。這里,灰度級(jí)用于區(qū)分?jǐn)?shù)據(jù)模式代碼,但包括簡單顯示數(shù)值數(shù)據(jù)模式代碼的其它可能顯示表示是允許的。模式組被顯示為網(wǎng)格506,該網(wǎng)格506的每列對(duì)應(yīng)于掩碼中所選的字段以及每行對(duì)應(yīng)于表示填充模式的數(shù)據(jù)模式代碼。反映出具有每個(gè)模式的小部分記錄(其與掩碼和所選數(shù)據(jù)模式代碼組相關(guān)聯(lián))的小部分填充顯示在灰度級(jí)508中,并且被數(shù)值化為百分比510。上述數(shù)據(jù)模式分析方法可以使用用于在計(jì)算機(jī)上執(zhí)行的軟件來實(shí)現(xiàn)。例如,軟件形成在一個(gè)或多個(gè)已編程或可編程計(jì)算機(jī)系統(tǒng)(可以具有各種架構(gòu),諸如分布式、客戶端/服務(wù)器、或網(wǎng)格式)上執(zhí)行的一個(gè)或多個(gè)計(jì)算機(jī)程序中的過程,每個(gè)計(jì)算機(jī)系統(tǒng)包括至少一個(gè)處理器、至少一個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元素)、至少一個(gè)輸入設(shè)備或端口和至少一個(gè)輸出設(shè)備或端口。該軟件可形成大型程序的一個(gè)或多個(gè)模塊,例如,該大型程序提供與數(shù)據(jù)流圖的設(shè)計(jì)和配置相關(guān)的其它服務(wù)。圖表的節(jié)點(diǎn)和元素可以被實(shí)施為存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的數(shù)據(jù)結(jié)構(gòu)或者符合存儲(chǔ)在數(shù)據(jù)庫中的數(shù)據(jù)模型的其它組織的數(shù)據(jù)。該軟件可以被提供在諸如CD-ROM之類的存儲(chǔ)介質(zhì)上,其可以被通用或?qū)S每删幊逃?jì)算機(jī)讀取或者通過網(wǎng)絡(luò)的通信介質(zhì)遞送(在傳播信號(hào)中被代碼)到執(zhí)行該軟件的計(jì)算機(jī)。所有功能可以在專用計(jì)算機(jī)上執(zhí)行,或者使用諸如協(xié)處理器之類的專用硬件來執(zhí)行。該軟件可以以分布方式實(shí)施,在該分布方式中,由該軟件指定的不同的計(jì)算部分由不同的計(jì)算機(jī)執(zhí)行。每個(gè)這樣的計(jì)算機(jī)程序被優(yōu)選地存儲(chǔ)在或下載到可由通用或?qū)S每删幊逃?jì)算機(jī)讀取的存儲(chǔ)介質(zhì)或設(shè)備(例如,固態(tài)存儲(chǔ)器或介質(zhì)、或者磁或光介質(zhì)),用于在計(jì)算機(jī)系統(tǒng)讀取該存儲(chǔ)介質(zhì)或設(shè)備時(shí)配置和操作該計(jì)算機(jī),以執(zhí)行此處所描述的過程。也可以考慮將本發(fā)明的系統(tǒng)實(shí)施為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其配置有計(jì)算機(jī)程序,其中,如此配置的存儲(chǔ)介質(zhì)使得計(jì)算機(jī)系統(tǒng)以特定和預(yù)定義的方式操作以執(zhí)行此處所描述的功能。已經(jīng)對(duì)本發(fā)明的多個(gè)實(shí)施例進(jìn)行了描述。然而,應(yīng)當(dāng)理解,在不脫離本發(fā)明的精神和范圍的情況下可進(jìn)行各種修改。例如,上述的一些步驟可以是順序獨(dú)立的,因此可以以不同于所述的順序來執(zhí)行。應(yīng)當(dāng)理解,前面的描述旨在說明而非限制本發(fā)明的范圍,本發(fā)明的范圍由所附的權(quán)利要求書的范圍來限定。例如,可以以不同的順序來執(zhí)行上述的多個(gè)功能步驟,而不會(huì)在實(shí)質(zhì)上影響整個(gè)處理。其它實(shí)施例也落在所附權(quán)利要求書的范圍內(nèi)。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
西藏| 宜君县| 山东| 商水县| 西藏| 华宁县| 交城县| 营山县| 濮阳县| 章丘市| 任丘市| 龙南县| 湾仔区| 行唐县| 泰兴市| 五华县| 丹巴县| 潍坊市| 衡南县| 黄冈市| 和平区| 张掖市| 蓬安县| 呼伦贝尔市| 蒲城县| 奉新县| 北宁市| 尼玛县| 清新县| 台中市| 外汇| 开封市| 皋兰县| 营山县| 巢湖市| 石城县| 中卫市| 大冶市| 民丰县| 满洲里市| 增城市|