對與數(shù)據(jù)類型有關的數(shù)據(jù)剖析操作的管理的制作方法
【專利摘要】數(shù)據(jù)類型信息(208)將一個或多個數(shù)據(jù)類型中的每一個與標識符相關聯(lián)。處理記錄的字段中的數(shù)據(jù)值包括:產(chǎn)生數(shù)據(jù)單元(203),每個數(shù)據(jù)單元包括來自從被字段標識符標識的記錄的字段中提取的一個記錄的字段標識符及二進制值;從多個數(shù)據(jù)單元中收集關于二進制值的信息;為一個或多個字段產(chǎn)生條目的列表(205),至少一些條目的每個都包括一個該二進制值及關于從多個數(shù)據(jù)單元中收集的該二進制值的信息;從數(shù)據(jù)類型信息中檢索數(shù)據(jù)類型,且將檢索到的數(shù)據(jù)類型與至少一個包括在條目中的二進制值相關聯(lián);以及在收集后,基于檢索到的出現(xiàn)在字段中的特定二進制值的數(shù)據(jù)類型生成剖析信息(114)。
【專利說明】
對與數(shù)據(jù)類型有關的數(shù)據(jù)剖析操作的管理
[0001] 相關申請的交叉引用
[0002] 本申請要求享有2014年3月7日提交的序列號為61/949,477的美國申請的優(yōu)先權。
技術領域
[0003]本說明書涉及一種對與數(shù)據(jù)類型有關的數(shù)據(jù)剖析(data profiIing)操作的管理。
【背景技術】
[0004] 數(shù)據(jù)庫或其他信息管理系統(tǒng)常常包括數(shù)據(jù)集,對于數(shù)據(jù)集,其很多特征可能不得 獲悉。例如,對于某數(shù)據(jù)集,其值的范圍或典型值,該數(shù)據(jù)集內(nèi)不同字段之間的關系,或不同 字段的值之間的函數(shù)相關性,可能不得獲悉。數(shù)據(jù)剖析可包括檢測數(shù)據(jù)集從而確定上述特 征。某些數(shù)據(jù)剖析的技術包括:接收數(shù)據(jù)剖析工作的相關信息,運行該數(shù)據(jù)剖析工作,然后 在一段延遲之后返回運行結(jié)果,該延遲是基于執(zhí)行數(shù)據(jù)剖析所涉及的各個處理步驟所花費 的時間長短。其中一個可能涉及重要的處理時間的步驟是"標準化(canonical ization)", 該步驟涉及將數(shù)據(jù)集的記錄內(nèi)出現(xiàn)的值的數(shù)據(jù)類型改變?yōu)轭A定或"標準"數(shù)據(jù)類型,以方便 其他處理。例如,標準化可包括將值轉(zhuǎn)化為人可讀的字符串表示形式。
【發(fā)明內(nèi)容】
[0005] 在一方案中,一般來說,一種計算機系統(tǒng)的數(shù)據(jù)處理方法包括:通過輸入設備或所 述計算機系統(tǒng)的端口接收多個記錄,每個所述記錄包括與多個字段中各字段對應的一個或 多個值。所述方法還包括存儲數(shù)據(jù)類型信息于所述計算機系統(tǒng)的存儲介質(zhì)中,所述數(shù)據(jù)類 型信息將一個或多個數(shù)據(jù)類型中的每個數(shù)據(jù)類型與至少一個標識符相關聯(lián)。所述方法還包 括采用所述計算機系統(tǒng)的至少一個處理器處理來自所述記錄的多個數(shù)據(jù)值。所述處理包 括:根據(jù)所述記錄產(chǎn)生多個數(shù)據(jù)單元,每個所述數(shù)據(jù)單元包括字段標識符及來自一個所述 記錄的二進制值,所述字段標識符唯一地標記一個所述字段,所述二進制值提取自由所述 字段標識符標記的該記錄的字段;從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息; 為一個或多個所述字段的每一個建立條目的列表,至少部分所述條目中每個條目包括一個 所述二進制值及從多個所述數(shù)據(jù)單元中收集的關于所述二進制值的信息;從所述數(shù)據(jù)類型 信息中獲取與第一標識符相關聯(lián)的數(shù)據(jù)類型,并將獲取的數(shù)據(jù)類型與一個所述列表中的條 目所包括的至少一個二進制值相關聯(lián);及在從多個所述數(shù)據(jù)單元中收集關于所述二進制值 的信息之后,至少部分基于獲取的出現(xiàn)在所述字段中的特定二進制值的數(shù)據(jù)類型為至少一 個所述字段建立剖析信息。
[0006] 方案可包括一個或多個以下特征。
[0007] 從由所述字段標識符標記的該記錄的字段中提取出的所述二進制值被提取為非 類型化的比特序列。所述至少部分基于獲取的出現(xiàn)在所述字段中的特定二進制值的數(shù)據(jù)類 型為至少一個所述字段建立剖析信息包括:將所述非類型化的比特序列重新解釋為類型化 數(shù)據(jù)值,所述類型化數(shù)據(jù)值具有所述獲取的數(shù)據(jù)類型。
[0008] 所述剖析信息包括類型依賴的剖析結(jié)果,該結(jié)果取決于所述記錄的多個數(shù)據(jù)值的 原始數(shù)據(jù)類型。
[0009] 從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息包括將來自多個所述數(shù)據(jù) 單元的二進制值與所述條目列表中的二進制值相比較以確定二進制值之間是否存在匹配。 [0010]關于從多個所述數(shù)據(jù)單元收集的所述二進制值的信息包括相匹配的二進制值的 總數(shù),每當比較二進制值時確定存在匹配,所述總數(shù)相應增加。
[0011] 第一二進制值與第二二進制值之間的匹配對應于包括所述第一二進制值的比特 序列與包括所述第二二進制值的序列相同。
[0012] 所述數(shù)據(jù)類型信息將一個或多個數(shù)據(jù)類型中的每個數(shù)據(jù)類型與至少一個所述字 段標識符相關聯(lián)。
[0013] 從所述數(shù)據(jù)類型信息中獲取與所述第一標識符相關聯(lián)的數(shù)據(jù)類型包括獲取與第 一字段標識符相關聯(lián)的數(shù)據(jù)類型。
[0014] 每個數(shù)據(jù)單元包括:一個所述字段標識符,一個所述記錄中的二進制值,及唯一標 記一個所述數(shù)據(jù)類型的數(shù)據(jù)類型標識符。
[0015] 所述數(shù)據(jù)類型信息將一個或多個數(shù)據(jù)類型中的每個數(shù)據(jù)類型與至少一個所述數(shù) 據(jù)類型標識符相關聯(lián)。
[0016] 從所述數(shù)據(jù)類型信息中獲取與所述第一標識符相關聯(lián)的數(shù)據(jù)類型包括獲取與第 一數(shù)據(jù)類型標識符相關聯(lián)的數(shù)據(jù)類型。
[0017] 將獲取的數(shù)據(jù)類型與一個所述列表中的條目所包括的至少一個二進制值相關聯(lián) 包括:實例化具有所述獲取的數(shù)據(jù)類型的局部變量,并將實例化的變量初始化為基于所述 條目所包括的所述二進制值的值。
[0018] 將所述獲取的數(shù)據(jù)類型與一個所述列表中的條目所包括的至少一個二進制值相 關聯(lián)包括:設置與所述獲取的數(shù)據(jù)類型相關聯(lián)的指針,指向所述條目所包括的所述二進制 值所在的存儲位置。
[0019] 每個數(shù)據(jù)單元包括:一個所述字段標識符,一個所述記錄中的二進制值,及所述二 進制值的長度指示符。
[0020] 所述長度指示符被存儲為所述二進制值的前綴。
[0021] 所述方法進一步包括:通過所述輸入設備或所述計算機系統(tǒng)的端口接收與所述多 個記錄相關聯(lián)的記錄格式信息。
[0022] 所述數(shù)據(jù)類型信息至少部分基于獲取的所述記錄格式信息而產(chǎn)生。
[0023] 所述處理進一步包括:對于與所述二進制值相關聯(lián)的所述獲取的數(shù)據(jù)類型中的第 一字段,將第一列表的各個不同條目中的二進制值轉(zhuǎn)化為目標數(shù)據(jù)類型;及對于與所述二 進制值相關聯(lián)的所述獲取的數(shù)據(jù)類型中的第二字段,將第二列表的各個不同條目中的二進 制值轉(zhuǎn)化為同一所述目標數(shù)據(jù)類型。
[0024] 在另一方案中,一般來說,一種以非臨時形式存儲于計算機可讀介質(zhì)的軟件包括 指令以觸發(fā)計算機系統(tǒng)的以下動作:通過輸入設備或所述計算機系統(tǒng)的端口接收多個記 錄,每個所述記錄包括與多個字段中各字段對應的一個或多個值;存儲數(shù)據(jù)類型信息于所 述計算機系統(tǒng)的存儲介質(zhì)中,所述數(shù)據(jù)類型信息將一個或多個數(shù)據(jù)類型中的每個數(shù)據(jù)類型 與至少一個標識符相關聯(lián);以及采用所述計算機系統(tǒng)的至少一個處理器處理來自所述記錄 的多個數(shù)據(jù)值。所述處理包括:根據(jù)所述記錄產(chǎn)生多個數(shù)據(jù)單元,每個所述數(shù)據(jù)單元包括字 段標識符及來自一個所述記錄的二進制值,所述字段標識符唯一地標記一個所述字段,所 述二進制值提取自由所述字段標識符標記的該記錄的字段;從多個所述數(shù)據(jù)單元中收集關 于所述二進制值的信息;為一個或多個所述字段的每一個建立條目的列表,至少部分所述 條目中每個條目包括一個所述二進制值及從多個所述數(shù)據(jù)單元中收集的關于所述二進制 值的信息;從所述數(shù)據(jù)類型信息中獲取與第一標識符相關聯(lián)的數(shù)據(jù)類型,并將獲取的數(shù)據(jù) 類型與一個所述列表中的條目所包括的至少一個二進制值相關聯(lián);及在從多個所述數(shù)據(jù)單 元中收集關于所述二進制值的信息之后,至少部分基于獲取的出現(xiàn)在所述字段中的特定二 進制值的數(shù)據(jù)類型為至少一個所述字段建立剖析信息。
[0025] 在另一方案中,一般來說,一種計算機系統(tǒng),包括:輸入設備或所述計算機系統(tǒng)的 端口,配置用于接收多個記錄,每個所述記錄包括與多個字段中各字段對應的一個或多個 值;所述計算機系統(tǒng)的存儲介質(zhì),配置用于存儲數(shù)據(jù)類型信息,所述數(shù)據(jù)類型信息將一個或 多個數(shù)據(jù)類型中的每個數(shù)據(jù)類型與至少一個標識符相關聯(lián);以及所述計算機系統(tǒng)的至少一 個處理器,配置用于處理來自所述記錄的多個數(shù)據(jù)值。所述處理包括:根據(jù)所述記錄產(chǎn)生多 個數(shù)據(jù)單元,每個所述數(shù)據(jù)單元包括字段標識符及來自一個所述記錄的二進制值,所述字 段標識符唯一地標記一個所述字段,所述二進制值提取自由所述字段標識符標記的該記錄 的字段;從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息;為一個或多個所述字段的 每一個建立條目的列表,至少部分所述條目中每個條目包括一個所述二進制值及從多個所 述數(shù)據(jù)單元中收集的關于所述二進制值的信息;從所述數(shù)據(jù)類型信息中獲取與第一標識符 相關聯(lián)的數(shù)據(jù)類型,并將獲取的數(shù)據(jù)類型與一個所述列表中的條目所包括的至少一個二進 制值相關聯(lián);及在從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息之后,至少部分基 于獲取的出現(xiàn)在所述字段中的特定二進制值的數(shù)據(jù)類型為至少一個所述字段建立剖析信 息。
[0026] 在另一方案中,一般來說,一種計算機系統(tǒng),包括:接收裝置,用于接收多個記錄, 每個所述記錄包括與多個字段中各字段對應的一個或多個值;存儲裝置,用于存儲數(shù)據(jù)類 型信息,所述數(shù)據(jù)類型信息將一個或多個數(shù)據(jù)類型中的每個數(shù)據(jù)類型與至少一個標識符相 關聯(lián);處理裝置,用于處理來自所述記錄的多個數(shù)據(jù)值。所述處理包括:根據(jù)所述記錄產(chǎn)生 多個數(shù)據(jù)單元,每個所述數(shù)據(jù)單元包括字段標識符及來自一個所述記錄的二進制值,所述 字段標識符唯一地標記一個所述字段,所述二進制值提取自由所述字段標識符標記的該記 錄的字段;從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息;為一個或多個所述字段 的每一個建立條目的列表,至少部分所述條目中每個條目包括一個所述二進制值及從多個 所述數(shù)據(jù)單元中收集的關于所述二進制值的信息;從所述數(shù)據(jù)類型信息中獲取與第一標識 符相關聯(lián)的數(shù)據(jù)類型,并將獲取的數(shù)據(jù)類型與一個所述列表中的條目所包括的至少一個二 進制值相關聯(lián);及在從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息之后,至少部分 基于獲取的出現(xiàn)在所述字段中的特定二進制值的數(shù)據(jù)類型為至少一個所述字段建立剖析 信息。
[0027] 各方案可具有一個或多個以下優(yōu)點。
[0028] 數(shù)據(jù)剖析有時會由提供用戶界面的程序執(zhí)行,該界面專用于實現(xiàn)管理數(shù)據(jù)剖析程 序的目的。在此情況下,當剖析大量數(shù)據(jù)(例如較大的數(shù)據(jù)集及/或較多數(shù)量的數(shù)據(jù)集)時, 用戶預計會承受較長的延遲。在有些方案中,將數(shù)據(jù)剖析功能并入另一個用戶界面,例如用 于開發(fā)數(shù)據(jù)處理程序的用戶界面(例如,表現(xiàn)為數(shù)據(jù)流),是有用的。然而,如果某用戶正處 理開發(fā)數(shù)據(jù)處理的程序,即使從上述用于開發(fā)的用戶界面上對特定數(shù)據(jù)集的數(shù)據(jù)剖析結(jié)果 的請求是有用的,讓用戶在獲得上述結(jié)果前忍受長時間的延遲仍是不妥的。
[0029] 采用本文所描述的技術,可縮短特定數(shù)據(jù)剖析程序的某些延遲(例如,尤其是對于 字段級的數(shù)據(jù)剖析)。例如,不再需要為數(shù)據(jù)剖析結(jié)果等待3分鐘,用戶僅需等待30秒即可。 其中一項用于產(chǎn)生至少部分提速效果的技術是基于一個認識,即,在收集要被標準化的數(shù) 據(jù)值的其他數(shù)據(jù)剖析步驟之后,對標準化及其他類型依賴的處理可被延遲且被更有效率地 執(zhí)行。處理更有效率,是因為利用一個字段處理所有不同的值,而不必使所有不同的值都出 現(xiàn),這樣一般會使操作大大減少(除非該字段因特定的值而數(shù)量特別多)。該技術可避免冗 余處理,其對于大集合的記錄可能會花費大量時間。該技術的一個后果就是,需要適當?shù)毓?理后期會被用于標準化及類型依賴驗證的數(shù)據(jù)類型信息,以下對此進行更詳細的描述。
[0030] 處理延遲的縮短,使數(shù)據(jù)剖析在開發(fā)用戶界面內(nèi)執(zhí)行成為可行的。用戶界面的元 素(例如,環(huán)境菜單(context menu)),可被加入開發(fā)用戶界面,并在例如用戶對表示數(shù)據(jù)集 的圖標或表示數(shù)據(jù)流的鏈接進行交互操作(例如,采用點擊右鍵操作)時顯示出來。用戶界 面元素可向用戶呈現(xiàn)用于初始化要對關聯(lián)數(shù)據(jù)集或數(shù)據(jù)流執(zhí)行的一個或多個數(shù)據(jù)剖析程 序的操作。經(jīng)過一個相對短的延遲,結(jié)果可被顯示于該用戶界面的一個窗口。在延遲期間, 可顯示一個進度條以告訴用戶該延遲是相對較短的。在一個示例情形中,如果用戶期望數(shù) 據(jù)集的特定字段僅具有一組固定值,數(shù)據(jù)剖析結(jié)果可顯示給用戶該數(shù)據(jù)集中是否有意外值 出現(xiàn)。在另一個示例情形中,用戶可以檢測,看看期待完全填充的字段是否有空白或空值。 該用戶可將"防御性邏輯"加入到程序中來適當處理任何觀察到的意外情況。在另一個示例 情形中,用戶可能希望查看在最近一次運行數(shù)據(jù)流圖時沿特定數(shù)據(jù)流流過的所有數(shù)據(jù)的概 要。
[0031] 本發(fā)明的其他特征及優(yōu)點將通過以下描述及權利要求變得明顯。
【附圖說明】
[0032]圖1是數(shù)據(jù)處理系統(tǒng)的模塊圖。
[0033]圖2是數(shù)據(jù)剖析過程的示意圖。
[0034]圖3是提取字段-值對及數(shù)據(jù)類型信息的示意圖。
[0035]圖4是數(shù)據(jù)剖析過程的流程圖。
【具體實施方式】
[0036]圖1示出一個數(shù)據(jù)處理系統(tǒng)100的示例,在該系統(tǒng)中可應用管理技術類型信息以實 現(xiàn)高效數(shù)據(jù)剖析的技術。該系統(tǒng)100包括數(shù)據(jù)源102,數(shù)據(jù)源102可包括一個或多個數(shù)據(jù)源, 例如存儲設備或連接到在線數(shù)據(jù)流,每一個數(shù)據(jù)源可以多種形式(例如,數(shù)據(jù)庫表,電子數(shù) 據(jù)表文件,純文本文件,或某主機使用的本機格式)中的任何一種存儲或提供數(shù)據(jù)。執(zhí)行環(huán) 境包括剖析模塊106及執(zhí)行模塊112。剖析模塊106對數(shù)據(jù)源102或在由數(shù)據(jù)處理程序產(chǎn)生的 中間數(shù)據(jù)或輸出數(shù)據(jù)執(zhí)行數(shù)據(jù)剖析程序,該數(shù)據(jù)處理程序由執(zhí)行模塊112執(zhí)行。提供數(shù)據(jù)源 102的存儲設備112相對于執(zhí)行環(huán)境104可以是本地的,例如,存儲于承載執(zhí)行環(huán)境104的電 腦所連接的存儲介質(zhì)(例如,硬盤108),或者,相對于執(zhí)行環(huán)境104可以是遠程的,例如,被托 管在與承載執(zhí)行環(huán)境104的計算機通過遠程連接(例如由云計算基礎設施提供)通信的遠程 系統(tǒng)(例如主機110)上。
[0037] 執(zhí)行環(huán)境104可以被托管,例如,托管在合適的操作系統(tǒng)控制下的一個或多個通用 計算機,例如一個版本的UNIX操作系統(tǒng)。例如,執(zhí)行環(huán)境104可以包括多節(jié)點并行計算環(huán)境, 該計算環(huán)境包括使用多個中央處理單元(CPU)或處理器內(nèi)核的計算機系統(tǒng)的結(jié)構,計算機 系統(tǒng)的結(jié)構可以是本地的(例如,多處理器系統(tǒng),如對稱多處理(SMP)計算機),或者是本地 分布的(例如,聯(lián)接為簇的多個處理器或大規(guī)模并行處理(MPP)系統(tǒng)),或遠程,或遠程分布 式(例如,通過局域網(wǎng)(LAN)及/或廣域網(wǎng)(WAN)聯(lián)接的多個處理器),或上述方式的任意組 合。
[0038] 剖析模塊106從數(shù)據(jù)源102讀取數(shù)據(jù),及存儲剖析信息114,該剖析信息114由數(shù)據(jù) 剖析程序產(chǎn)生,該數(shù)據(jù)剖析程序由剖析模塊106執(zhí)行。剖析模塊106可在執(zhí)行環(huán)境104中與執(zhí) 行模塊112相同的主機(多個)上運行,或者,可使用額外的資源,例如,與執(zhí)行環(huán)境104通信 的專用的數(shù)據(jù)剖析服務器。剖析信息114包括數(shù)據(jù)剖析程序的結(jié)果及在產(chǎn)生該結(jié)果的過程 中編譯產(chǎn)生的中間數(shù)據(jù)。剖析信息114可存儲回數(shù)據(jù)源102或存儲在可訪問執(zhí)行環(huán)境104的 數(shù)據(jù)存儲系統(tǒng)116,或采用其他方式使用。
[0039] 執(zhí)行環(huán)境104還提供了開發(fā)用戶界面118,開發(fā)者120使用該開發(fā)用戶界面118既能 夠開發(fā)數(shù)據(jù)處理程序又能夠啟動數(shù)據(jù)剖析程序。在一些實現(xiàn)方式中,開發(fā)用戶界面118采用 數(shù)據(jù)流圖有助于開發(fā)數(shù)據(jù)處理程序,該數(shù)據(jù)流圖包括頂點(表示數(shù)據(jù)處理元件或數(shù)據(jù)集), 這些頂點通過頂點之間的定向鏈路(表示工作元素的流,即數(shù)據(jù)流)連接。例如,對于這樣的 用戶界面在美國公開號2007/0011668的專利中有更詳細的描述,該專利名稱為"管理基于 圖形應用程序的參數(shù)(Managing Parameters for Graph-Based Applications)",并通過 引用并入本文。一種用于執(zhí)行這樣的基于圖形的計算的系統(tǒng)在美國專利號5,966,072的專 利中被描述,該專利名稱為"執(zhí)行表示為圖的計算(EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS)",并通過引用并入本文。根據(jù)本系統(tǒng)所制的數(shù)據(jù)流圖提供得到流入及流出由圖 組件所表示各個進程的信息的方法,并提供在進程之間轉(zhuǎn)移信息的方法,以及提供限定進 程的運行順序的方法。該系統(tǒng)包括從任何可行方法(例如,通信路徑根據(jù)圖上的鏈路可使用 TCP/IP或UNIX域套接字,或使用共享存儲器在進程之間傳遞數(shù)據(jù))選擇進程間通信方法的 算法。除了從開發(fā)用戶界面118內(nèi)被啟動的數(shù)據(jù)剖析程序,數(shù)據(jù)剖析程序也可被數(shù)據(jù)流圖中 的剖析器組件執(zhí)行,該組件具有被數(shù)據(jù)流鏈路連接到輸入數(shù)據(jù)集的輸入端口及被數(shù)據(jù)流鏈 路連接到下游組件的輸出端口,該下游組件被配置用于執(zhí)行使用數(shù)據(jù)剖析的結(jié)果的任務。
[0040] 剖析模塊106可從多種類型的可體現(xiàn)數(shù)據(jù)源102的系統(tǒng)接收數(shù)據(jù),上述系統(tǒng)包括不 同類型的數(shù)據(jù)庫系統(tǒng)。該數(shù)據(jù)可被組織為數(shù)據(jù)集,該數(shù)據(jù)集代表具有相應的字段(也稱為 "屬性"或"列")值的記錄的集合,包括可能的無效值。當?shù)谝淮螐囊粋€數(shù)據(jù)源讀取數(shù)據(jù),剖 析模塊106通常以關于數(shù)據(jù)源的記錄的一些初始格式信息開始。在某些情況下,數(shù)據(jù)源的記 錄結(jié)構開始可以是非已知的,而是在分析數(shù)據(jù)源或數(shù)據(jù)后才確定。關于記錄的初始信息可 包括,例如,用于存儲單個值的比特數(shù),記錄中的字段順序,及出現(xiàn)在特定字段內(nèi)的值的數(shù) 據(jù)類型(例如,字符串,符號/無符號整數(shù))。
[0041]通常,特定的數(shù)據(jù)集的記錄都具有相同的記錄格式,及特定字段內(nèi)的所有值都具 有相同的數(shù)據(jù)類型(即,該記錄格式是"靜態(tài)")??梢杂幸粋€"動態(tài)"的記錄格式,其中,記錄 的每個子集可以具有不同的格式,及/或一個或多個字段可以具有不同數(shù)據(jù)類型的值。此處 描述的某些示例假設為靜態(tài)記錄格式,但可以進行各種修改,以支持一個動態(tài)記錄格式。例 如,可以在具有記錄格式的變化的數(shù)據(jù)集中記錄的每個子集的開頭對處理進行重新初始 化??商娲?,具有相同記錄格式的記錄各個子集可視為具有靜態(tài)記錄格式的不同虛擬數(shù) 據(jù)集,而那些虛擬記錄格式的結(jié)果如有必要可在后期合并。
[0042] 當執(zhí)行數(shù)據(jù)剖析時,剖析模塊106從數(shù)據(jù)源102讀取數(shù)據(jù),并存儲剖析信息114,這 可用于執(zhí)行各種類型的分析,以描繪不同的數(shù)據(jù)集內(nèi)的不同數(shù)據(jù)集及不同字段。在一些實 現(xiàn)方式中,剖析信息114包括特定字段(例如,所選數(shù)據(jù)集的選定字段,或全部數(shù)據(jù)集的所有 字段)中出現(xiàn)的值的統(tǒng)計調(diào)查(census)。該統(tǒng)計調(diào)查列出了字段中的所有獨特值,并確定每 個獨特值出現(xiàn)的次數(shù)。在一些實現(xiàn)方式中,統(tǒng)計調(diào)查數(shù)據(jù)存儲成單個數(shù)據(jù)結(jié)構,可選地由字 段加以索引,在其他實施方式中,統(tǒng)計調(diào)查數(shù)據(jù)存儲成多個數(shù)據(jù)結(jié)構,例如,對于一個字段 就使用一個數(shù)據(jù)結(jié)構。
[0043] 被剖析的特定字段的統(tǒng)計調(diào)查數(shù)據(jù)可以被組織為條目的列表,其中每個條目包 括:用于該字段的標識符,在字段中出現(xiàn)的值,及數(shù)據(jù)集中該值在該字段中出現(xiàn)的次數(shù)的計 數(shù)。對于某些數(shù)據(jù)集,計數(shù)相當于該值出現(xiàn)在該字段中的記錄數(shù)。對于其他數(shù)據(jù)集(例如,包 含嵌套向量作為某些字段值的分層數(shù)據(jù)集)的計數(shù)可以與記錄的數(shù)目不同。在一些實現(xiàn)方 式中,統(tǒng)計調(diào)查條目還可以指示該值是否為空值(null)。存在用于每一個獨特值的條目,所 以某一條目的每個值與在其他條目中的值不同,且條目的數(shù)目與字段中出現(xiàn)的獨特值的數(shù) 目相等。該字段的標識符可以是唯一標識被剖析的字段的任何值。例如,被剖析的字段可以 通過為每個字段分配范圍為1至該被剖析字段的數(shù)目的整數(shù)索引來枚舉。這樣的索引可以 簡潔地存儲在統(tǒng)計調(diào)查數(shù)據(jù)結(jié)構中。即使對不同的字段的統(tǒng)計調(diào)查數(shù)據(jù)被存儲在單獨的數(shù) 據(jù)結(jié)構中,包含數(shù)據(jù)結(jié)構的每個條目內(nèi)該字段的特定字段標識符仍是有用的(例如,以區(qū)分 來自不同的數(shù)據(jù)結(jié)構的條目)?;蛘?,在一些實現(xiàn)方式中,如果用于不同字段的統(tǒng)計調(diào)查數(shù) 據(jù)被存儲在單獨的數(shù)據(jù)結(jié)構中,該字段僅需在該數(shù)據(jù)結(jié)構被存儲一次,且每個條目與該片 段隱藏關聯(lián),且每個條目僅包括值和計數(shù)。
[0044] 圖2示出由剖析模塊106執(zhí)行的基于統(tǒng)計調(diào)查的數(shù)據(jù)剖析程序的一個例子。提取模 塊200執(zhí)行提取程序,提取程序用于從被剖析的數(shù)據(jù)集生成提取的字段-值對的數(shù)據(jù)流203, 如表201。在本實施例中,表201具有三個字段,名為FIELD(字段)1,F(xiàn)IELD2及FIELD3,且在該 表201中的前幾個數(shù)據(jù)記錄(即,前三行)示出與這三個字段中的每個分別相對應的值。統(tǒng)計 調(diào)查生成模塊202處理字段-值對的數(shù)據(jù)流203以為各個字段生成一個或多個統(tǒng)計調(diào)查文件 205。類型依賴(type-dependent)處理模塊204將來自保留數(shù)據(jù)類型信息208的各種數(shù)據(jù)類 型與各個字段相關聯(lián),以使類型依賴剖析結(jié)果被包括在剖析信息114中。類型無關(type-independent) 處理模塊 206 使由類型依賴處理模塊 204 恢復的類型化數(shù)據(jù)值標準化 ,如此提 供預定類型的數(shù)據(jù)值以促進不依賴于初始數(shù)據(jù)類型的附加處理。通過延遲類型依賴處理和 標準化直到統(tǒng)計調(diào)查產(chǎn)生后,潛在的大的提速會實現(xiàn),因為相同的數(shù)據(jù)值的多個實例可以 被一起處理(即,同一時間處理共有數(shù)據(jù)值),而不是分別處理。
[0045] 提取模塊200通過將特定的數(shù)據(jù)記錄分解為一系列的字段-值對來產(chǎn)生所述字段-值對,每個字段-值對包括:字段索引和二進制數(shù)據(jù)值。字段索引是分配給某一特定字段以 唯一(且有效)地識別該字段(如1=FIELD1,2 = FIELD2,3 = FIELD3)的索引值,二進制數(shù)據(jù) 值是無類型(或"原始")比特序列,該比特序列表示包含在該字段的數(shù)據(jù)記錄中的相應數(shù)據(jù) 值。在這個例子中,在表201中的第一數(shù)據(jù)記錄將產(chǎn)生以下字段-值(即,字段索引,二進制數(shù) 據(jù)值)對:(1,1^11(厶)),(2,1^11(1〇),(3,1^11(父))(其中,為了說明的目的,應當理解,"1^11 (A)"在本示例中表示代表數(shù)據(jù)值"A"的二進制數(shù)據(jù)值(即,比特序列)。
[0046]統(tǒng)計調(diào)查生成模塊202聚合來自數(shù)據(jù)流203中字段-值對的二進制數(shù)據(jù)值以產(chǎn)生統(tǒng) 計調(diào)查文件205。只需執(zhí)行該聚合,也就是統(tǒng)計調(diào)查的一部分,以具有足夠的信息來知道某 特定的數(shù)據(jù)值是否與另一個數(shù)據(jù)值相同??梢杂迷级M制數(shù)據(jù)值來執(zhí)行這種匹配,因此 不需耗費寶貴的處理時間來給統(tǒng)計調(diào)查生成模塊202提供數(shù)據(jù)類型。(在圖2中,在統(tǒng)計調(diào)查 文件205的條目中所示的值與表201中的前三個數(shù)據(jù)記錄相對應,這將隨著來自表201中額 外數(shù)據(jù)記錄的字段-值對被統(tǒng)計調(diào)查生成模塊202執(zhí)行而更新。)
[0047]對于一個特定的數(shù)據(jù)集,該字段-值對可以任意順序插入數(shù)據(jù)流203。在本實施例 中,隨著特定記錄出現(xiàn)在表201中,數(shù)據(jù)流203包括該特定數(shù)據(jù)記錄的所有數(shù)據(jù)值對,隨后是 下一個數(shù)據(jù)記錄的所有字段值對。可替代地,表201可按照字段進行處理,從而隨著特定記 錄出現(xiàn)在表201中,該數(shù)據(jù)流包括該特定字段的所有字段-值對,隨后是下一個字段的所有 字段-值對。高維數(shù)據(jù)集也可以這種方式處理,使得基于某順序添加字段-值對到數(shù)據(jù)流 203,該順序例如對于讀取數(shù)據(jù)集或從結(jié)果數(shù)據(jù)流203產(chǎn)生統(tǒng)計調(diào)查文件將是最高效的。在 所有的字段-值對生成后,字段-值對的數(shù)據(jù)流203可以被寫入由下游的統(tǒng)計調(diào)查生成模塊 202處理的文件,或者,可以在生成該字段-值對的數(shù)據(jù)流203同時將其提供給下游統(tǒng)計調(diào)查 生成模塊202(例如,以利用所得到的流水并行性的優(yōu)勢)。
[0048]統(tǒng)計調(diào)查生成模塊202處理該字段-值對直到達到數(shù)據(jù)流203的尾部(例如,如果該 數(shù)據(jù)流對應有限批次的數(shù)據(jù)記錄則該尾部由一數(shù)據(jù)流尾部記錄來指示,或者如果該數(shù)據(jù)流 對應于數(shù)據(jù)記錄的連續(xù)流則該尾部由界定一工作單元的標記來指示)。模塊202執(zhí)行對字段 值對的數(shù)據(jù)操作,被稱為"統(tǒng)計調(diào)查匹配操作",以確定在該字段值對的二進制數(shù)據(jù)值是否 與來自先前處理的字段-值對的先前二進制數(shù)據(jù)值相匹配。模塊202對數(shù)據(jù)流203中的每個 字段值對進行至少一次的統(tǒng)計調(diào)查匹配操作。模塊202將統(tǒng)計調(diào)查匹配操作的結(jié)果存儲在 某數(shù)據(jù)結(jié)構,該數(shù)據(jù)結(jié)構存儲于存儲設備的工作存儲空間。如果統(tǒng)計調(diào)查匹配操作發(fā)現(xiàn)匹 配到了先前的數(shù)據(jù)值,則與該數(shù)據(jù)值相關聯(lián)的存儲的計數(shù)增加。否則,如果統(tǒng)計調(diào)查匹配操 作沒有發(fā)現(xiàn)匹配到先前的數(shù)據(jù)值,則在該數(shù)據(jù)結(jié)構中存儲一個新的條目。
[0049] 例如,該數(shù)據(jù)結(jié)構可以是關聯(lián)陣列,其能夠存儲具有唯一鍵的鍵-值對,該唯一鍵 用于在該陣列內(nèi)查找關聯(lián)的值。在本例中,該鍵是來自字段-值對的二進制數(shù)據(jù)值,并且該 值是將要增加至統(tǒng)計調(diào)查數(shù)據(jù)對應的總數(shù)的計數(shù)。當針對某字段-值對創(chuàng)建鍵-值對并將一 特定二進制值作為其鍵(該鍵不與任何已存在于關聯(lián)陣列的鍵相匹配)時,從1開始計數(shù),并 且每次當另一個字段-值對具有與現(xiàn)存鍵相匹配的二進制數(shù)據(jù)值時計數(shù)增加1。模塊202在 不同的關聯(lián)陣列中查找不同字段(根據(jù)每個域值對中的字段索引來確定)對應的字段-值對 的二進制數(shù)據(jù)值,其中給每個被剖析的字段都分配一個關聯(lián)陣列。在一些實現(xiàn)方式中,正在 被分析的字段數(shù)是預知的,并且一個空關聯(lián)陣列(其只使用最小量的存儲空間)在剖析過程 的開始被分配給每個字段。
[0050] 關聯(lián)陣列是可被實施的,例如,使用哈希表或其它數(shù)據(jù)結(jié)構,其提供了鍵的有效查 找和相關聯(lián)的值的修改。用作鍵-值對的鍵的二進制數(shù)據(jù)值可以存儲該二進制數(shù)據(jù)值自身 的一個拷貝或者一個指向存儲在工作存儲器的一個不同位置(例如,存儲在一個字段-值對 的備份)的二進制數(shù)據(jù)值的指針。該關聯(lián)陣列,連同存儲的來自字段-值對的二進制數(shù)據(jù)值 的備份,或甚至是整個字段-值對本身,可一概被視為存儲統(tǒng)計調(diào)查匹配結(jié)果的數(shù)據(jù)結(jié)構。 在指向字段-值對中二進制數(shù)據(jù)值的指針存儲于關聯(lián)陣列的實施方式中,僅包含特定鍵的 第一個字段-值對需要被存儲在工作存儲器,而含有該特定鍵的后續(xù)字段-值對可在統(tǒng)計調(diào) 查匹配操作后從工作存儲器中刪除。
[0051]在下面的例子中,被剖析的這些字段的關聯(lián)陣列被稱為"統(tǒng)計調(diào)查陣列",而鍵-值 對被稱為統(tǒng)計調(diào)查陣列內(nèi)的"統(tǒng)計調(diào)查條目"。在統(tǒng)計調(diào)查產(chǎn)生的結(jié)尾,由統(tǒng)計調(diào)查產(chǎn)生模 塊202所產(chǎn)生的統(tǒng)計調(diào)查陣列將存儲出現(xiàn)在各統(tǒng)計調(diào)查條目中表201內(nèi)的所有獨特二進制 數(shù)據(jù)值,以及存儲該二進制數(shù)據(jù)值出現(xiàn)在表201的行中的次數(shù)的總數(shù),這代表被剖析的數(shù)據(jù) 記錄。任選地,可能是作為與類型依賴的處理的一部分,統(tǒng)計調(diào)查陣列可被更新以不僅僅存 儲原始二進制數(shù)據(jù)值,還存儲與這些二進制數(shù)據(jù)值相關聯(lián)的類型,從而所述統(tǒng)計調(diào)查條目 存儲數(shù)據(jù)表201中出現(xiàn)的所有不同類型的數(shù)據(jù)值。對于靜態(tài)記錄格式,其中在一個字段中的 所有數(shù)據(jù)值具有相同的數(shù)據(jù)類型,在被類型化前是不同的數(shù)據(jù)值在被類型化后仍是不同 的。
[0052]類型依賴處理模塊204使數(shù)據(jù)剖析程序運行,以確定一個特定的數(shù)據(jù)值相對于其 原始數(shù)據(jù)類型是否有效。例如,如果一個特定字段中出現(xiàn)的值的原始數(shù)據(jù)類型被定義(呈記 錄格式)為具有"日期"的數(shù)據(jù)類型,則該字段的有效數(shù)據(jù)值可能具有一個特定的字符串格 式和值的范圍,該值的范圍考慮到該字符串的不同部分。例如,字符串格式可以被指定為 YYYY-MM-DD,其中YYYY為表示年的任意四位整數(shù),匪是1到12之間的表示月的任意兩位整 數(shù),DD為1到31之間的表示天的任意兩位整數(shù)。在類型"日期"的有效值的附加限制可能會進 一步指定某些月份只允許例如1到30之間的天數(shù)。在另一實例中,在一個具有'UTF-8'數(shù)據(jù) 類型的字段中驗證數(shù)據(jù)值可包括針對特定比特序列的數(shù)據(jù)值的每個UTF-8字符檢查其中出 現(xiàn)的不被有效UTF-8字符所允許的字節(jié)。在另一個例子中,在具有特定主機格式的數(shù)據(jù)類型 的字段中驗證數(shù)據(jù)值可以包括檢查由該主機格式定義的具體特征。類型依賴的驗證檢查還 可以包括依賴于一個數(shù)據(jù)值的原始數(shù)據(jù)類型的用戶定義的驗證規(guī)則的應用。如果數(shù)據(jù)值被 發(fā)現(xiàn)對于其數(shù)據(jù)類型是無效的,該類型依賴處理模塊204可以將其標記為無效,這可避免本 應由類型無關處理模塊206對該數(shù)據(jù)執(zhí)行的額外處理。進行這樣的驗證檢查之前,類型依賴 處理模塊204檢索來自保留的數(shù)據(jù)類型信息208中的數(shù)據(jù)類型,并且將檢索到的數(shù)據(jù)類型與 統(tǒng)計調(diào)查中對于給定字段包括的相應二進制值相關聯(lián),如下有更詳細的描述。
[0053]用于提取二進制數(shù)據(jù)值并分別保存供以后使用的數(shù)據(jù)類型信息208的技術的一個 例子在圖3中示出。表201與描述隨表201的三個字段出現(xiàn)的值的數(shù)據(jù)類型的記錄格式相關 聯(lián)。在這個例子中,使用字段聲明的列表來定義記錄格式300,如下所示:
[0054] TiLiFIELDl
[0055] T2L2FIELD2
[0056] T3L3FIELD3
[0057] 該記錄格式300包括用于表201的三個字段中每個字段的字段聲明=FIELDl, FIELD2,F(xiàn)IELD3。對于FIELD i,字段聲明包括:該字段中數(shù)據(jù)值的數(shù)據(jù)類型的標識符Ti,該 字段中的數(shù)據(jù)值的長度的標識符Li以及字段名稱。數(shù)據(jù)類型和長度標識符(Ti和Li)在本例 中象征性地表示(從i = l到i =字段的數(shù)量),但實際的記錄格式可使用任意各種關鍵字、標 點符號和其它語法元素來標識數(shù)據(jù)類型和長度。
[0058] 在此示出一例,說明數(shù)據(jù)類型和長度標識如何使用特定類型的語法(即數(shù)據(jù)操縱 語言(Data Manipulation Language,DML)語法)來被指定,其中有由術語"記錄(record)" 和"結(jié)束(end)"限定的字段聲明;以及每個字段聲明以分號結(jié)尾: recoi d string(7) FIELD 1 ;
[0059] int(4) FIELD2; decimal(lO) FIELD3; end;
[0060] 在本例中,有三個不同的數(shù)據(jù)類型:由關鍵字"string(字符串)"標識的字符串數(shù) 據(jù)類型,由關鍵字"int(整數(shù))"標識的整數(shù)數(shù)據(jù)類型,及由關鍵字"decimal (小數(shù))"標識的 浮點小數(shù)數(shù)據(jù)類型。本例還包括附于數(shù)據(jù)類型關鍵字之后括號中的長度標識符(以字節(jié)為 單位)。
[0061] 也可使用其他類型的記錄格式。例如,在一些記錄格式中,一個數(shù)據(jù)值的長度在字 段聲明中沒有明確的被指定(例如,對于可變長度的數(shù)據(jù)值,或被限定的數(shù)據(jù)值)。一些記錄 格式有一個潛在的復雜結(jié)構(例如,分層或嵌套結(jié)構),其例如可用于為特定類型的存儲系 統(tǒng)(例如,COBOL代碼庫(copybook))指定附條件的記錄格式或指定記錄格式。這種復雜的結(jié) 構可以被解析(或"消解(walked)"),并且每個字段可以被分配一個唯一的字段標識。
[0062]提取模塊200存儲數(shù)據(jù)類型信息208,其包括關于字段的原始數(shù)據(jù)類型的足夠的信 息,由記錄格式300所定義,使得該類型依賴處理模塊204能夠為類型依賴的處理恢復原始 數(shù)據(jù)類型。例如,數(shù)據(jù)類型標識符T 1和長度標識符1^可被存儲在關聯(lián)陣列中,該關聯(lián)陣列將 數(shù)據(jù)類型標識符和長度標識符與各自字段的對應字段標識符相關聯(lián),如圖3所示。任選地, 附加信息也可以被存儲在數(shù)據(jù)類型信息208中,如字段的名稱。數(shù)據(jù)類型標識符的T 1可以其 原始形式存儲,或者以保留了足夠信息來恢復原始數(shù)據(jù)類型的不同形式存儲。數(shù)據(jù)類型信 息208的生成只需要在每個數(shù)據(jù)集執(zhí)行一次,避免由系統(tǒng)進行潛在大量的工作,即在為生成 統(tǒng)計調(diào)查生成字段-值對時提取數(shù)據(jù)類型連同數(shù)據(jù)值的工作。即使數(shù)據(jù)類型信息208的生成 被重復多次(例如,由提取模塊204生成一次,又再次被類型依賴處理模塊204生成),但通過 把該數(shù)據(jù)類型提取限制到恒定的次數(shù)而不是接近數(shù)據(jù)集中記錄數(shù)目的次數(shù),仍然可以避免 潛在大量的工作。
[0063]如果數(shù)據(jù)類型信息208由提取模塊200產(chǎn)生一次,然后可被(或以其它方式傳達給) 類型依賴處理模塊204存儲以供檢索。相反,如果數(shù)據(jù)類型信息208由提取模塊200生成并單 獨由類型依賴處理模塊204(例如,剛好在其被需要之前)生成,對于以上二者,只要對由記 錄格式定義的字段分配索引值的過程是相同的,就會獲得相同的數(shù)據(jù)類型信息208。無論哪 個模塊生成數(shù)據(jù)類型信息208,都將使用映射到特定字段的字段索引值302,該字段索引值 302與提取模塊200用于將字段索引值插入到字段-值對時所使用的相同。
[0064] 提取模塊200的輸出是元素流,該元素流任選地包括除了包括字段索引和二進制 數(shù)據(jù)值的對的其它信息。仍參照圖3,由提取模塊200從表201中提取的可選字段值對的流 203'由還包括記錄索引和每個二進制數(shù)據(jù)值的長度的元素組成。流203'中的一個元素306 包括字段索引值"2"(對應于FIELD2),長度值Ien(M),二進制數(shù)據(jù)值Mn(M)和記錄索引值 "Γ (對應于表201中的第一個記錄)。字段索引和二進制數(shù)據(jù)值被用于編制統(tǒng)計調(diào)查條目, 如上所述。該記錄索引可用于編譯位置信息,如下所述。長度值Ien(M)例如可以是值4(例 如,編碼為固定長度的整數(shù)),對于如下的二進制數(shù)據(jù)值bin(M)表示為4字節(jié)長度。圖2中不 攜帶該長度的數(shù)據(jù)流203對于固定長度字段的數(shù)據(jù)值可能是足夠的,該數(shù)據(jù)值的長度(L 1) 在記錄格式中被指定并且在讀取流203的元素時可被統(tǒng)計調(diào)查生成模塊202訪問。但是,如 果記錄格式未指定固定長度,而是允許數(shù)據(jù)值的長度是可變的,則每個元素可包括長度前 綴,例如在流203'中那樣。對于空白數(shù)據(jù)值,可使用為0的長度前綴,其后沒有相應的二進制 數(shù)據(jù)值。
[0065] 統(tǒng)計調(diào)查生成一般被執(zhí)行以使"字段級"剖析能進行,在該剖析中剖析信息特征化 在字段中出現(xiàn)的值。在一些實現(xiàn)方式中,對于每一個獨特的數(shù)據(jù)值,統(tǒng)計調(diào)查生成模塊202 還將針對該數(shù)據(jù)值出現(xiàn)的數(shù)據(jù)集中的所有記錄進行標識的位置信息添加到每個統(tǒng)計調(diào)查 條目,這對于"記錄級"剖析是有用的。在本例中,位置信息可以基于記錄索值304被編譯映 射到表201中特定記錄。例如,在某一特定字段的特定數(shù)據(jù)值的統(tǒng)計調(diào)查項的生成過程中, 比特向量(bit vector)有其位的位置集合,該集合對應于在該字段具有該數(shù)據(jù)值的每一個 記錄的記錄索引的整數(shù)值。該比特向量可被壓縮,以減少所需的存儲空間。該記錄索引值 304可以例如通過對每個記錄分配連續(xù)的整數(shù)序列來生成。然后分析程序模塊204和206或 其它數(shù)據(jù)剖析程序可使用該位置信息以編譯記錄-級數(shù)據(jù)統(tǒng)計并定位到(或"鉆取"到)具有 由數(shù)據(jù)剖析發(fā)現(xiàn)的特定屬性的記錄(例如,所有的具有某特定數(shù)據(jù)值的記錄,該特定數(shù)據(jù)值 沒有預期在某個字段出現(xiàn))。編譯位置信息可能要耗費額外的處理時間,但不會像在統(tǒng)計調(diào) 查產(chǎn)生前通過直接處理每個記錄來編譯記錄-級統(tǒng)計耗費得那樣多。
[0066]類型依賴處理模塊204可采用各種技術以將原始數(shù)據(jù)類型與用于類型依賴處理和 最終標準化(canonical ization)的統(tǒng)計調(diào)查陣列中的對應二進制數(shù)據(jù)值相關聯(lián)。在一些實 施方式中,來自統(tǒng)計調(diào)查條目的二進制數(shù)據(jù)值所具有的數(shù)據(jù)類型,是通過采用來自該統(tǒng)計 調(diào)查條目的字段索引實例化具有從數(shù)據(jù)類型信息208中檢索到的數(shù)據(jù)類型的局部變量而恢 復的。局部變量初始化為對應于包括在統(tǒng)計調(diào)查條目的二進制數(shù)據(jù)值的值(例如,通過根據(jù) 局部變量的數(shù)據(jù)類型解析二進制數(shù)據(jù)值)。例如,局部變量可以是在實現(xiàn)依賴處理模塊204 的編程語言中的變量(例如,C或C++變量)。然后該實例化并初始化的局部變量可用于由類 型依賴處理模塊204執(zhí)行的處理?;蛘撸谝恍嵤┓绞街?,可不用實例化一個新的局部變 量,而是設置一個與檢索的數(shù)據(jù)類型相關聯(lián)的指針,該指針指向二進制數(shù)據(jù)值存儲的存儲 位置(例如,在統(tǒng)計調(diào)查條目中)。也可以采用一個調(diào)用處理模塊(例如,用于解釋DML代碼的 專用引擎)的函數(shù)引用來執(zhí)行原始數(shù)據(jù)類型的恢復,以生成代碼行將二進制數(shù)據(jù)值如重新 解釋為類型化數(shù)據(jù)值。例如,所述函數(shù)引用可被表示如下。
[0067] reinterpret_as(<data type identifier),〈binary data value>)
[0068] 函數(shù)"reinterpret_as"調(diào)用必要的處理,以將第二個"binary data value(二進 制_數(shù)據(jù)_值)"參數(shù)重新解釋為具有對應于第一 "data type identifier(數(shù)據(jù)_類型_標識 符)"參數(shù)的數(shù)據(jù)類型的類型化數(shù)據(jù)值。
[0069]如上所述,某些被執(zhí)行的類型依賴處理可包括檢查以確定數(shù)據(jù)值對于其類型是否 是有效的。在確定數(shù)據(jù)值對于其類型是有效或無效的之前,可以有一個檢查,以確定該數(shù)據(jù) 值是否是空值或缺失(表示該字段對于至少一個記錄是空的)。有可能是一個預定的空值 (或值,例如任何數(shù)量的"空格(space)"字符),它可以在記錄格式被定義。缺失的值例如可 由指示零長度的二進制數(shù)據(jù)值的長度前綴指出。在一些情況下,缺失的值可被不同地處理, 形成一個空值。哪個數(shù)據(jù)值被視為空值可以取決于數(shù)據(jù)類型。
[0070] 標準化可以在類型無關處理(由模塊206進行)的開始來執(zhí)行,或在類型依賴處理 (由模塊204進行)的結(jié)束來執(zhí)行。標準化可以包括,例如,將所有的數(shù)據(jù)值轉(zhuǎn)化為具有目標 數(shù)據(jù)類型"字符串"的數(shù)據(jù)值。如果數(shù)據(jù)值已經(jīng)具有"字符串"的(恢復)數(shù)據(jù)類型,則標準化 程序可能無法對該數(shù)據(jù)值執(zhí)行任何操作。在一些實現(xiàn)方式中,即使數(shù)據(jù)值具有目標數(shù)據(jù)類 型,該標準化程序可能仍執(zhí)行某些操作(例如,除去前部或尾隨的"空格(space)"字符)。標 準化將兩個不同的數(shù)據(jù)值映射到相同的標準化數(shù)據(jù)值是可能的。例如,數(shù)據(jù)值"3.14"具有 "字符串"(來自第一字段)的數(shù)據(jù)類型,其可能有一個尾隨的'空格'符被刪掉,以生成"字符 串"值"3.14",而具有"小數(shù)"(來自第二字段)數(shù)據(jù)類型的數(shù)據(jù)值"3.14"可被轉(zhuǎn)換為同樣的 "字符串"值"3.14"。如果來自相同字段的兩個不同數(shù)據(jù)值(并且因此具有相同的原始數(shù)據(jù) 類型)被轉(zhuǎn)換成相同的標準化數(shù)據(jù)值,那么,在一些實施方式中,類型無關的處理模塊206可 任選地更新合適的統(tǒng)計調(diào)查陣列以為那兩個數(shù)據(jù)值聚集統(tǒng)計調(diào)查條目,以便對新值的計數(shù) 是舊值的個體數(shù)的總和。
[0071] 圖4示出對延遲的類型依賴性處理和標準化采用數(shù)據(jù)類型管理技術的過程數(shù)據(jù)剖 析的一個例子的流程圖400。該流程圖表示用于數(shù)據(jù)剖析的可能算法,但并不意味著限制執(zhí) 行特定步驟的順序(例如,允許不同形式的并行)。在外層循環(huán)中,系統(tǒng)100接收(402)被剖析 的數(shù)據(jù)集,及存儲(404)相應的數(shù)據(jù)類型信息,該數(shù)據(jù)類型信息將數(shù)據(jù)類型與對應的用于每 個被剖析字段的標識符相關聯(lián)。在內(nèi)部循環(huán)中,系統(tǒng)100產(chǎn)生(406)數(shù)據(jù)單元(即,字段-值 對),每個數(shù)據(jù)單元包括唯一標識一個字段的字段標識符及來自于一個記錄中的二進制值。 二進制值是從由字段標識符識別的記錄的字段中提取。系統(tǒng)100檢查(408)以確定是否有任 何附加的記錄要處理以作為用于結(jié)束內(nèi)部循環(huán)的一個條件,并檢查(410)以確定是否有任 何額外的數(shù)據(jù)集要處理以作為用于結(jié)束外部循環(huán)的條件。
[0072] 與內(nèi)部循環(huán)和外部循環(huán)潛在地并行(例如,使用圖2中的模塊的流水線并行)中,系 統(tǒng)100聚集(412)與來自一組數(shù)據(jù)單元(例如,基于字段標識符的特定字段的數(shù)據(jù)單元)的二 進值有關的信息。在一些實現(xiàn)方式中,這種聚集表現(xiàn)為統(tǒng)計調(diào)查程序的形式,而對于每個被 剖析的字段是以該統(tǒng)計調(diào)查程序的形式來生成(414)條目的列表。每個統(tǒng)計調(diào)查條目包括 特定的一個二進制值及與從多個數(shù)據(jù)單元聚集的二進制值有關的信息(例如,總計數(shù))。在 一個類型依賴處理階段中,系統(tǒng)100檢索(416)與來自數(shù)據(jù)類型信息的各字段標識符相關聯(lián) 的數(shù)據(jù)類型,并將每個檢索的數(shù)據(jù)類型與合適的一個列表的條目中所包括的二進制值相關 聯(lián)(基于字段標識符)。這使得系統(tǒng)100在聚集與來自多個數(shù)據(jù)單元的二進制值有關的信息 之后,能夠至少部分基于檢索的出現(xiàn)在字段中的特定二進制值的數(shù)據(jù)類型來高效地生成 (418)用于一個或多個字段的剖析信息。
[0073]與延遲類型依賴處理和標準化直到基于統(tǒng)計調(diào)查的聚集一起,可以組合使用其他 技術,以進一步提高數(shù)據(jù)剖析的效率(減少可能的延遲)。例如,可采用技術以有效地將一個 工作存儲空間溢出至一溢流存儲空間。在一些實施方式中,執(zhí)行數(shù)據(jù)剖析過程的程序,或者 該程序的一部分(例如,統(tǒng)計調(diào)查生成模塊202),可被給予一個存儲限制,即在存儲設備內(nèi) 設置一個允許該程序使用的的最大工作存儲空間。該程序可使用所述工作存儲空間以存儲 統(tǒng)計調(diào)查陣列(其可能需要大部分的允許工作存儲空間),以及存儲其他臨時值(其可能需 要相較于統(tǒng)計調(diào)查陣列顯著少的空間)。在模塊202確定有可能沒有足夠的可用工作存儲空 間來將額外的條目加入統(tǒng)計調(diào)查陣列時,或者不再有任何可用工作存儲空間來加入額外條 目(例如由于最后一個條目的加入)時,則滿足工作存儲空間的一個溢出條件。模塊202可通 過測量統(tǒng)計調(diào)查陣列(包括統(tǒng)計調(diào)查陣列內(nèi)的指針引用的任何數(shù)據(jù)值或字段-值對)的總大 小并將該大小與存儲器限制(或其它閾值)進行比較做出該確定,或者通過確定剩下的可用 工作記憶空間的量而不用直接測量統(tǒng)計調(diào)查陣列的總大?。ɡ?,從存儲器地址分配的區(qū) 塊剩下的存儲地址范圍)做出該確定。
[0074]在一些實現(xiàn)方式中,程序設置一個溢出閾值,以檢測統(tǒng)計調(diào)查陣列的總大小何時 接近存儲限制??梢灾苯訙y量統(tǒng)計調(diào)查陣列的總大小,例如,通過計算各個統(tǒng)計調(diào)查陣列的 大小的總和,其中一個單獨的統(tǒng)計調(diào)查陣列的大小以該統(tǒng)計調(diào)查陣列占據(jù)的工作存儲空間 的比特數(shù)來測量??商娲兀y(tǒng)可以間接測量計調(diào)查陣列的總大小,例如,通過計算工作存 儲器空間內(nèi)余留的可用空間的量來測量。在一些實現(xiàn)方式中,該程序設置剛好低于存儲器 限制的溢出閾值以為其他的值保留一些空間。在一些實現(xiàn)方式中,溢出閾值可以等于存儲 器的限制,例如,如果其他值需要的空間是可忽略不計和/或剖析模塊106不強加嚴格的存 儲器限制,從而允許相對較短的時間內(nèi)少量地超出存儲限制。
[0075]溢出條件已被觸發(fā)后,該程序使用一個溢出處理過程來存儲需要的數(shù)據(jù),以在存 儲設備(例如,數(shù)據(jù)存儲系統(tǒng)116)內(nèi)的溢出存儲空間生成完整的統(tǒng)計調(diào)查陣列。究竟什么存 儲在溢出存儲空間取決于所使用溢出處理程序的類型。美國公開號2014/0344508,題為"管 理用于數(shù)據(jù)操作的存儲器和存儲空間(MANAGING MEMORY AND STORAGE SPACE FOR A DATA OPERATION)"的專利,引用于此作為參考,描述了溢出處理程序的例子,在該例子中,在溢出 條件觸發(fā)后,程序?qū)γ總€處理的字段-值對繼續(xù)執(zhí)行統(tǒng)計調(diào)查匹配操作,并將與數(shù)據(jù)操作的 結(jié)果相關聯(lián)的信息(即,在統(tǒng)計調(diào)查條目中遞增的計數(shù),或一個新的統(tǒng)計調(diào)查條目)存儲在 工作存儲器的同一組統(tǒng)計調(diào)查陣列中,或者存儲在工作存儲器的一組新的統(tǒng)計調(diào)查陣列 中。如果溢出條件是在對數(shù)據(jù)流203的字段-值對進行處理的期間內(nèi)一些時刻觸發(fā),則有的 數(shù)據(jù)將存儲在工作存儲空間,而有的數(shù)據(jù)將存儲在溢出存儲空間。在某些情況下,以某種方 式合并在這兩個位置的數(shù)據(jù)以產(chǎn)生完整的統(tǒng)計調(diào)查陣列。由類型依賴處理模塊204將每個 統(tǒng)計調(diào)查陣列輸出于其自己的統(tǒng)計調(diào)查文件205中以用于處理。因為每個二進制數(shù)據(jù)值可 以被提取并存儲在統(tǒng)計調(diào)查陣列中,沒有相關聯(lián)的指示其數(shù)據(jù)類型的中間數(shù)據(jù),統(tǒng)計調(diào)查 數(shù)據(jù)的存儲大小可以保持得很小,這也減少將發(fā)生溢出的機會。
[0076]上述技術可以被實現(xiàn),例如,使用執(zhí)行適當?shù)能浖噶畹目删幊逃嬎阆到y(tǒng),或?qū)崿F(xiàn) 于合適的硬件上,例如現(xiàn)場可編程門陣列(FPGA),或以一些混合形式實現(xiàn)。例如,在一個編 程的方法中,軟件可以包括一個或多個計算機程序中的過程,該一個或多個計算機程序被 執(zhí)行于一個或多個程序化的或可編程的計算機系統(tǒng)(其可以是各種架構,諸如分布式、客戶 端/服務器、或網(wǎng)格式),每個計算機系統(tǒng)包括至少一個處理器,至少一個數(shù)據(jù)存儲系統(tǒng)(包 括易失性和/或非易失性存儲器和/或存儲元件),至少一個用戶界面(使用至少一個輸入設 備或端口以接收輸入,及使用至少一個輸出設備或端口以提供輸出)。該軟件可以包括一個 較大程序的一個或多個模塊,例如,提供與設計、配置和執(zhí)行數(shù)據(jù)流圖有關的服務。該程序 的模塊(例如,數(shù)據(jù)流圖的元素)可被實施為符合存儲在數(shù)據(jù)儲存庫中的數(shù)據(jù)模型的數(shù)據(jù)結(jié) 構或其他組織形式的數(shù)據(jù)。
[0077]可在一個有形的、非臨時性介質(zhì)上提供該軟件,如CD-ROM或其它計算機可讀介質(zhì) (例如,通用或?qū)S糜嬎阆到y(tǒng)或設備可讀的),或通過網(wǎng)絡通信介質(zhì)遞送(例如,以編碼傳播 信號)到執(zhí)行該軟件的計算機系統(tǒng)的有形、非臨時性介質(zhì)。一些或全部的處理可以在專用計 算機上或者使用專用硬件執(zhí)行,例如協(xié)處理器或現(xiàn)場可編程門陣列(FPGA)或?qū)S玫奶囟☉?用集成電路(ASIC)。該處理可以分布式方式來實現(xiàn),其中由軟件指定的不同計算部分可由 不同的計算元件執(zhí)行。每個這樣的計算機程序優(yōu)選地被存儲在或下載到可由通用或?qū)S每?編程計算機可訪問的存儲設備的計算機可讀存儲介質(zhì)(例如,固態(tài)存儲器或介質(zhì),或者磁或 光介質(zhì)),用于在計算機讀取存儲設備介質(zhì)時配置和操作計算機以進行本文描述的處理。本 發(fā)明的系統(tǒng)也可被認為實施于有形的、非臨時性介質(zhì),其配置有計算機程序,其中,如此配 置的介質(zhì)使計算機以特定和預定的方式操作以執(zhí)行一個或多個本文所描述的處理步驟。 [0078]已經(jīng)描述了本發(fā)明的數(shù)個實施例。然而,可以理解的是,前述描述旨在說明而并不 構成對本發(fā)明范圍的限制,該范圍由以下的權利要求的范圍來確定。因此,其他實施例也在 以下權利要求的范圍之內(nèi)。例如,在不脫離本發(fā)明的范圍的情況下可以進行各種修改。另 外,一些上述的步驟可以是順序無關的,因此可以與所描述的不同的順序來執(zhí)行。
【主權項】
1. 一種在計算機系統(tǒng)中處理數(shù)據(jù)的方法,該方法包括: 通過輸入設備或所述計算機系統(tǒng)的端口接收多個記錄,每個所述記錄包括與多個字段 中各字段對應的一個或多個值; 存儲數(shù)據(jù)類型信息于所述計算機系統(tǒng)的存儲介質(zhì)中,所述數(shù)據(jù)類型信息將一個或多個 數(shù)據(jù)類型中的每個數(shù)據(jù)類型與至少一個標識符相關聯(lián);以及 采用所述計算機系統(tǒng)的至少一個處理器處理來自所述記錄的多個數(shù)據(jù)值,所述處理包 括: 根據(jù)所述記錄產(chǎn)生多個數(shù)據(jù)單元,每個所述數(shù)據(jù)單元包括字段標識符及來自一個所述 記錄的二進制值,所述字段標識符唯一地標記一個所述字段,所述二進制值提取自由所述 字段標識符標記的該記錄的字段; 從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息; 為一個或多個所述字段的每一個建立條目的列表,至少部分所述條目中每個條目包括 一個所述二進制值及從多個所述數(shù)據(jù)單元中收集的關于所述二進制值的信息; 從所述數(shù)據(jù)類型信息中獲取與第一標識符相關聯(lián)的數(shù)據(jù)類型,并將獲取的數(shù)據(jù)類型與 一個所述列表中的條目所包括的至少一個二進制值相關聯(lián);及 在從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息之后,至少部分基于獲取的出 現(xiàn)在所述字段中的特定二進制值的數(shù)據(jù)類型為至少一個所述字段建立剖析信息。2. 根據(jù)權利要求1所述的方法,其中從由所述字段標識符標記的該記錄的字段中提取 出的所述二進制值被提取為非類型化的比特序列;所述至少部分基于獲取的出現(xiàn)在所述字 段中的特定二進制值的數(shù)據(jù)類型為至少一個所述字段建立剖析信息包括:將所述非類型化 的比特序列重新解釋為類型化數(shù)據(jù)值,所述類型化數(shù)據(jù)值具有所述獲取的數(shù)據(jù)類型。3. 根據(jù)權利要求2所述的方法,其中所述剖析信息包括類型依賴的剖析結(jié)果,該結(jié)果取 決于所述記錄的多個數(shù)據(jù)值的原始數(shù)據(jù)類型。4. 根據(jù)權利要求1所述的方法,其中從多個所述數(shù)據(jù)單元中收集關于所述二進制值的 信息包括將來自多個所述數(shù)據(jù)單元的二進制值與所述條目列表中的二進制值相比較以確 定二進制值之間是否存在匹配。5. 根據(jù)權利要求4所述的方法,其中關于從多個所述數(shù)據(jù)單元收集的所述二進制值的 信息包括相匹配的二進制值的總數(shù),每當比較二進制值時確定存在匹配則所述總數(shù)相應增 加。6. 根據(jù)權利要求4所述的方法,其中第一二進制值與第二二進制值之間的匹配對應于 包括所述第一二進制值的比特序列與包括所述第二二進制值的序列相同。7. 根據(jù)權利要求1所述的方法,其中所述數(shù)據(jù)類型信息將一個或多個數(shù)據(jù)類型中的每 個數(shù)據(jù)類型與至少一個所述字段標識符相關聯(lián)。8. 根據(jù)權利要求7所述的方法,其中從所述數(shù)據(jù)類型信息中獲取與所述第一標識符相 關聯(lián)的數(shù)據(jù)類型包括獲取與第一字段標識符相關聯(lián)的數(shù)據(jù)類型。9. 根據(jù)權利要求1所述的方法,其中每個數(shù)據(jù)單元包括:一個所述字段標識符,一個所 述記錄中的二進制值,及唯一標記一個所述數(shù)據(jù)類型的數(shù)據(jù)類型標識符。10. 根據(jù)權利要求9所述的方法,其中所述數(shù)據(jù)類型信息將一個或多個數(shù)據(jù)類型中的每 個數(shù)據(jù)類型與至少一個所述數(shù)據(jù)類型標識符相關聯(lián)。11. 根據(jù)權利要求10所述的方法,其中從所述數(shù)據(jù)類型信息中獲取與所述第一標識符 相關聯(lián)的數(shù)據(jù)類型包括獲取與第一數(shù)據(jù)類型標識符相關聯(lián)的數(shù)據(jù)類型。12. 根據(jù)權利要求1所述的方法,其中將獲取的數(shù)據(jù)類型與一個所述列表中的條目所包 括的至少一個二進制值相關聯(lián)包括:實例化具有所述獲取的數(shù)據(jù)類型的局部變量,并將實 例化的變量初始化為基于所述條目所包括的所述二進制值的值。13. 根據(jù)權利要求1所述的方法,其中將所述獲取的數(shù)據(jù)類型與一個所述列表中的條目 所包括的至少一個二進制值相關聯(lián)包括:設置與所述獲取的數(shù)據(jù)類型相關聯(lián)的指針,指向 所述條目所包括的所述二進制值所在的存儲位置。14. 根據(jù)權利要求1所述的方法,其中每個數(shù)據(jù)單元包括:一個所述字段標識符,一個所 述記錄中的二進制值,及所述二進制值的長度指示符。15. 根據(jù)權利要求14所述的方法,其中所述長度指示符被存儲為所述二進制值的前綴。16. 根據(jù)權利要求1所述的方法,進一步包括:通過所述輸入設備或所述計算機系統(tǒng)的 端口接收與所述多個記錄相關聯(lián)的記錄格式信息。17. 根據(jù)權利要求16所述的方法,其中所述數(shù)據(jù)類型信息至少部分基于獲取的所述記 錄格式信息而產(chǎn)生。18. 根據(jù)權利要求1所述的方法,所述處理還包括:對于與所述二進制值相關聯(lián)的所述 獲取的數(shù)據(jù)類型中的第一字段,將第一列表的各個不同條目中的二進制值轉(zhuǎn)化為目標數(shù)據(jù) 類型;以及對于與所述二進制值相關聯(lián)的所述獲取的數(shù)據(jù)類型中的第二字段,將第二列表 的各個不同條目中的二進制值轉(zhuǎn)化為同一所述目標數(shù)據(jù)類型。19. 一種以非臨時性形式存儲于計算機可讀介質(zhì)的軟件,所述軟件包括指令以觸發(fā)計 算機系統(tǒng)執(zhí)行: 通過輸入設備或所述計算機系統(tǒng)的端口接收多個記錄,每個所述記錄包括與多個字段 中各字段對應的一個或多個值; 存儲數(shù)據(jù)類型信息于所述計算機系統(tǒng)的存儲介質(zhì)中,所述數(shù)據(jù)類型信息將一個或多個 數(shù)據(jù)類型中的每個數(shù)據(jù)類型與至少一個標識符相關聯(lián);以及 采用所述計算機系統(tǒng)的至少一個處理器處理來自所述記錄的多個數(shù)據(jù)值,所述處理包 括: 根據(jù)所述記錄產(chǎn)生多個數(shù)據(jù)單元,每個所述數(shù)據(jù)單元包括字段標識符及來自一個所述 記錄的二進制值,所述字段標識符唯一地標記一個所述字段,所述二進制值提取自由所述 字段標識符標記的該記錄的字段; 從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息; 為一個或多個所述字段的每一個建立條目的列表,至少部分所述條目中每個條目包括 一個所述二進制值及從多個所述數(shù)據(jù)單元中收集的關于所述二進制值的信息; 從所述數(shù)據(jù)類型信息中獲取與第一標識符相關聯(lián)的數(shù)據(jù)類型,并將獲取的數(shù)據(jù)類型與 一個所述列表中的條目所包括的至少一個二進制值相關聯(lián);及 在從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息之后,至少部分基于獲取的出 現(xiàn)在所述字段中的特定二進制值的數(shù)據(jù)類型為至少一個所述字段建立剖析信息。20. -種計算機系統(tǒng),包括: 輸入設備或所述計算機系統(tǒng)的端口,配置用于接收多個記錄,每個所述記錄包括與多 個字段中各字段對應的一個或多個值; 所述計算機系統(tǒng)的存儲介質(zhì),配置用于存儲數(shù)據(jù)類型信息,所述數(shù)據(jù)類型信息將一個 或多個數(shù)據(jù)類型中的每個數(shù)據(jù)類型與至少一個標識符相關聯(lián);以及 所述計算機系統(tǒng)的至少一個處理器,配置用于處理來自所述記錄的多個數(shù)據(jù)值,所述 處理包括: 根據(jù)所述記錄產(chǎn)生多個數(shù)據(jù)單元,每個所述數(shù)據(jù)單元包括字段標識符及來自一個所述 記錄的二進制值,所述字段標識符唯一地標記一個所述字段,所述二進制值提取自由所述 字段標識符標記的該記錄的字段; 從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息; 為一個或多個所述字段的每一個建立條目的列表,至少部分所述條目中每個條目包括 一個所述二進制值及從多個所述數(shù)據(jù)單元中收集的關于所述二進制值的信息; 從所述數(shù)據(jù)類型信息中獲取與第一標識符相關聯(lián)的數(shù)據(jù)類型,并將獲取的數(shù)據(jù)類型與 一個所述列表中的條目所包括的至少一個二進制值相關聯(lián);及 在從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息之后,至少部分基于獲取的出 現(xiàn)在所述字段中的特定二進制值的數(shù)據(jù)類型為至少一個所述字段建立剖析信息。21. -種計算機系統(tǒng),包括: 接收裝置,用于接收多個記錄,每個所述記錄包括與多個字段中各字段對應的一個或 多個值; 存儲裝置,用于存儲數(shù)據(jù)類型信息,所述數(shù)據(jù)類型信息將一個或多個數(shù)據(jù)類型中的每 個數(shù)據(jù)類型與至少一個標識符相關聯(lián); 處理裝置,用于處理來自所述記錄的多個數(shù)據(jù)值,所述處理包括: 根據(jù)所述記錄產(chǎn)生多個數(shù)據(jù)單元,每個所述數(shù)據(jù)單元包括字段標識符及來自一個所述 記錄的二進制值,所述字段標識符唯一地標記一個所述字段,所述二進制值提取自由所述 字段標識符標記的該記錄的字段; 從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息; 為一個或多個所述字段的每一個建立條目的列表,至少部分所述條目中每個條目包括 一個所述二進制值及從多個所述數(shù)據(jù)單元中收集的關于所述二進制值的信息; 從所述數(shù)據(jù)類型信息中獲取與第一標識符相關聯(lián)的數(shù)據(jù)類型,并將獲取的數(shù)據(jù)類型與 一個所述列表中的條目所包括的至少一個二進制值相關聯(lián);及 在從多個所述數(shù)據(jù)單元中收集關于所述二進制值的信息之后,至少部分基于獲取的出 現(xiàn)在所述字段中的特定二進制值的數(shù)據(jù)類型為至少一個所述字段建立剖析信息。
【文檔編號】G06F17/30GK106062751SQ201580012497
【公開日】2016年10月26日
【申請日】2015年2月19日 公開號201580012497.1, CN 106062751 A, CN 106062751A, CN 201580012497, CN-A-106062751, CN106062751 A, CN106062751A, CN201580012497, CN201580012497.1, PCT/2015/16517, PCT/US/15/016517, PCT/US/15/16517, PCT/US/2015/016517, PCT/US/2015/16517, PCT/US15/016517, PCT/US15/16517, PCT/US15016517, PCT/US1516517, PCT/US2015/016517, PCT/US2015/16517, PCT/US2015016517, PCT/US201516517
【發(fā)明人】M·A·可汗
【申請人】起元科技有限公司