用于數(shù)據(jù)傳送的快速串行化的制作方法
【技術領域】
[0001 ] 本公開涉及數(shù)據(jù)處理。
【背景技術】
[0002] -般情況下,當數(shù)據(jù)從源數(shù)據(jù)庫傳送到目標數(shù)據(jù)庫時,所傳送的數(shù)據(jù)在傳送之前 被串行化。源數(shù)據(jù)庫和目標數(shù)據(jù)庫可以位于計算機網(wǎng)絡的不同節(jié)點、一個位置中的不同存 儲組件、或它們的組合。在串行化(serial i zat ion)處理期間,源系統(tǒng)可以順次讀出存儲在 源數(shù)據(jù)庫中的數(shù)據(jù)。然后源系統(tǒng)可以將串行化的數(shù)據(jù)寫入傳送介質以便將數(shù)據(jù)傳送到目標 系統(tǒng)。目標系統(tǒng)可以從傳送介質讀出傳送的數(shù)據(jù)并且可以將傳送的數(shù)據(jù)解串行化。在解串 行化(deserialization)的處理中,目標系統(tǒng)可以創(chuàng)建目標數(shù)據(jù)庫,并且將傳送的數(shù)據(jù)順次 地寫入目標數(shù)據(jù)庫。一般情況下,在解串行化處理期間使用的寫入順序對應于在串行化處 理期間使用的讀出順序。
【發(fā)明內(nèi)容】
[0003] 本公開涉及用于數(shù)據(jù)傳送操作中的串行化處理的計算機實現(xiàn)的方法、計算機可讀 介質和計算機系統(tǒng)。一種用于提高從第一數(shù)據(jù)庫到第二數(shù)據(jù)庫的數(shù)據(jù)傳送效率的計算機實 現(xiàn)的方法包括:分析存儲在第一數(shù)據(jù)庫中的數(shù)據(jù)列以確定至少一個串行化參數(shù),所述至少 一個串行化參數(shù)包括重復(repetition)計數(shù)器、復制(replication)計數(shù)器或變量類型;基 于重復計數(shù)器或復制計數(shù)器中的至少一個確定與數(shù)據(jù)相關聯(lián)的數(shù)據(jù)串行化方案,其中數(shù)據(jù) 串行化方案包括重復方案或者復制方案中的至少一個;基于變量類型確定與數(shù)據(jù)相關聯(lián)的 變量串行化方案;對于存儲在第一數(shù)據(jù)庫中的每列數(shù)據(jù),重復所述分析、所述確定數(shù)據(jù)串行 化方案、和所述確定變量串行化方案;使用與數(shù)據(jù)相關聯(lián)的數(shù)據(jù)串行化方案和與數(shù)據(jù)相關 聯(lián)的變量串行化方案,來串行化存儲在第一數(shù)據(jù)庫中的數(shù)據(jù);以及將串行化的數(shù)據(jù)傳送到 第二數(shù)據(jù)庫。
[0004] 這個方面的其他實現(xiàn)包括相應計算機系統(tǒng)、裝置、和記錄在一種或多種計算機存 儲設備上的計算機程序,每一個都配置成執(zhí)行所述方法的動作。一個或多個計算機的系統(tǒng) 可以配置成通過將在操作時使系統(tǒng)執(zhí)行特定動作的軟件、固件、硬件或軟件、固件、硬件的 組合安裝在系統(tǒng)上來執(zhí)行特定操作或動作。一個或多個計算機程序可以配置成通過包括指 令來執(zhí)行特定操作或動作,其中當所述指令被數(shù)據(jù)處理設備執(zhí)行時使該數(shù)據(jù)處理設備執(zhí)行 所述動作。
[0005] 上述和其他實現(xiàn)中的每一個可以可選地單獨或組合地包括如下特征中的一個或 多個:
[0006] 第一方面,可與一般實現(xiàn)結合,還包括:在分析之前,確定第一數(shù)據(jù)庫是否是基于 行的數(shù)據(jù)庫;以及如果第一數(shù)據(jù)庫是基于行的數(shù)據(jù)庫,則將第一數(shù)據(jù)庫傳送到基于列的數(shù) 據(jù)庫。
[0007] 第二方面,可與任何一個前述方面結合,還包括:壓縮串行化數(shù)據(jù);以及傳送壓縮 的串行化數(shù)據(jù)。
[0008] 第三方面,可與任何一個前述方面結合,其中,確定數(shù)據(jù)串行化方案還包括:如果 重復計數(shù)器小于預定限制,則確定數(shù)據(jù)串行化方案包括重復方案;以及如果重復計數(shù)器大 于或等于預定限制而且復制計數(shù)器大于預定閾值時,則確定數(shù)據(jù)串行化方案包括復制方 案。
[0009] 第四方面,可與任何一個前述方面結合,其中,確定變量串行化方案還包括:如果 變量類型是整數(shù),則確定變量串行化包括整數(shù)方案;以及如果變量類型是字符,則確定變量 串行化包括字符方案。
[0010] 第五方面,可與任何一個前述方面結合,其中,重復方案包括:將重復計數(shù)器寫入 傳送介質;將值集合中的至少一個值串行化到傳送介質;確定與數(shù)據(jù)值相對應的索引;以及 將索引寫入傳送介質。
[0011] 第六方面,可與任何一個前述方面結合,其中,復制方案包括:將附加值計數(shù)器設 置為零;將數(shù)據(jù)值寫入傳送介質;讀出下一個數(shù)據(jù)值;響應于下一個數(shù)據(jù)值等于該數(shù)據(jù)值的 確定,將附加值計數(shù)器增加一;以及將附加值計數(shù)器寫入傳送介質。
[0012] 在本說明書中描述的主題可以在特定實現(xiàn)中實現(xiàn),以便實現(xiàn)如下優(yōu)點中的一個或 多個。例如,數(shù)據(jù)量在串行化/解串行化處理期間被減少。因此,數(shù)據(jù)傳送的速度增加。當對 所存儲的數(shù)據(jù)的訪問速度很慢時,例如,當數(shù)據(jù)被存儲在硬盤上或計算機網(wǎng)絡的遠程位置 中時,或當傳送的數(shù)據(jù)被存儲在大型表中時,性能改善會是顯著的。此外,在快速網(wǎng)絡中,可 以評估壓縮時間和數(shù)據(jù)量減少之間的折衷,以提高數(shù)據(jù)傳送的整體性能。
[0013] 本說明書的主題的一種或多種實現(xiàn)的細節(jié)展示在附圖和下面的描述中。該主題的 其他特征、方面和優(yōu)點將從該描述、附圖和權利要求書中明顯看出。
【附圖說明】
[0014] 圖1是示出根據(jù)實現(xiàn)的用于數(shù)據(jù)傳送的串行化系統(tǒng)的高層次架構框圖。
[0015] 圖2是根據(jù)實現(xiàn)的在用于數(shù)據(jù)傳送的串行化系統(tǒng)中使用的示例性計算機的框圖。
[0016] 圖3A到圖3B是示出根據(jù)實現(xiàn)的分析處理的方法的流程圖。
[0017] 圖4是示出根據(jù)實現(xiàn)的用于確定串行化方案的處理的方法的流程圖。
[0018] 圖5是示出根據(jù)實現(xiàn)的串行化處理的方法的流程圖。
[0019] 圖6是示出根據(jù)實現(xiàn)的解串行化處理的方法的流程圖。
[0020] 圖7是示出根據(jù)實現(xiàn)的基于復制方案的串行化處理的方法的流程圖。
[0021 ]圖8是示出根據(jù)實現(xiàn)的基于復制方案的解串行化處理的方法的流程圖。
[0022] 圖9是示出根據(jù)實現(xiàn)的基于重復方案的串行化處理的方法的流程圖。
[0023] 圖10是示出根據(jù)實現(xiàn)的基于重復方案的解串行化處理的方法的流程圖。
[0024] 圖11是示出根據(jù)實現(xiàn)的基于字符方案的串行化處理的方法的流程圖。
[0025] 在各圖中,相同的參考標記和標號指示相同元件。
【具體實施方式】
[0026] 給出如下詳細描述以使本領域的普通技術人員能夠做出、使用和/或實踐所公開 的主題,而且如下描述是在一個或多個特定實現(xiàn)的背景下提供的。對本領域技術人員來說, 對公開的實現(xiàn)的各種修改將是非常明顯的,并且本文定義的一般原理可以應用于其他實現(xiàn) 和應用而不脫離本公開的范圍。因此,本公開不打算限制描述和/或示出的實施例,而是符 合與本文公開的原理和特征一致的最寬的范圍。
[0027] 在一些情況下,壓縮方案,例如,ZIP或GZIP,可以在數(shù)據(jù)傳送中使用以減少傳送的 數(shù)據(jù)量。這些壓縮方案可能使用大量的處理器時間。當傳送介質的傳送速度很快時,由于減 少的數(shù)據(jù)量所節(jié)省的傳輸時間可能被用于壓縮數(shù)據(jù)的時間抵消。另一方面,使用快速串行 化方案來串行化數(shù)據(jù)可以在串行化/解串行化處理期間減少數(shù)據(jù)量,并且因此增加了數(shù)據(jù) 傳送速度,而需要很少或不需要額外的處理器時間。
[0028] 有時,可以根據(jù)傳送介質的速度選擇性地使用快速串行化方案和壓縮方案。例如, 在連接較慢的廣域網(wǎng)(WAN)上,因為壓縮率可以更高,所以可以使用壓縮方案而沒有快速串 行化。相反,在快速傳送介質例如直接局域網(wǎng)(LAN)連接上,可以使用快速串行化方案。在一 些情況下,快速串行化方案可以與壓縮方案,諸如GZIP/ZIP,組合使用,因為快速串行化可 以減少用于壓縮快速串行化的數(shù)據(jù)的時間。
[0029] 在一些情況下,快速串行化方案可以使用關于數(shù)據(jù)格式、數(shù)據(jù)內(nèi)容或其組合的知 識。數(shù)據(jù)格式的知識可以包括字符、整數(shù)或其他格式。數(shù)據(jù)內(nèi)容的知識可以包括最小值、最 大值、值集合或字典。在一些情況下,這些知識可以在源數(shù)據(jù)庫中創(chuàng)建表期間由運行時系統(tǒng) 存儲。在一些情況下,這些知識可以在串行化之前的分析處理期間獲得。在分析處理期間, 也可以確定是否使用壓縮方案、快速串行化方案或它們的組合。
[0030] 用于傳送數(shù)據(jù)庫中的數(shù)據(jù)字段中的值的總時間可以以下面的線性等式來表示:
[0031] tsum = n tl+n t2+c t3,
[0032] 其中n =字段的數(shù)目,c =列數(shù)的數(shù)目,tl =分析一個字段所需的時間,t2=串行化 一個字段所需的時間,t3 =選擇每列的壓縮方法所需的時間,并且tsum =分析和傳送全部 數(shù)據(jù)所需的時間。
[0033] 圖1是示出根據(jù)實現(xiàn)的用于數(shù)據(jù)傳送的串行化系統(tǒng)100的高層次架構框圖。在高層 次上,所示的串行化系統(tǒng)100包括源系統(tǒng)102,其通過傳送介質160與目標系統(tǒng)142可通信地 耦合。所描述的圖示僅僅是所描述的主題的一個可能的實現(xiàn),并且并非旨在將本公開限制 為單個描述的實現(xiàn)。本領域普通技術人員將理解的事實是,所描述的組件可以以與本公開 一致的替代方式來連接、組合和使用。
[0034]源系統(tǒng)102表示可以用于存儲源數(shù)據(jù)庫和執(zhí)行數(shù)據(jù)串行化的任何應用、應用的集 合、軟件、軟件模塊、硬件、或軟件和硬件的組合。在示出的例子中,源系統(tǒng)102包括接口 104、 處理器106、存儲器130和串行化引擎110。
[0035]存儲器130可以包括任何存儲器或數(shù)據(jù)庫模塊,并且可以采用易失性或非易失性 存儲器的形式,包括但不限于,磁介質、光介質、隨機存取存儲器(RAM)、只讀存儲器(R0M)、 可移除介質、或任何其它合適的本地或遠程存儲器組件。存儲器130可以存儲各種對象或數(shù) 據(jù),包括財務數(shù)據(jù)、用戶信息、管理設置、密碼信息、高速緩存、應用、備份數(shù)據(jù)、存儲業(yè)務和/ 或動態(tài)信息的儲存庫、以及與源系統(tǒng)102的目的相關聯(lián)的任何其他適當?shù)男畔ⅲㄈ魏螀?數(shù)、變量、算法、指令、規(guī)則、約束或引用。如圖所示,存儲器130可以存儲一個或多個源數(shù)據(jù) 庫132。源數(shù)據(jù)庫132可以在數(shù)據(jù)傳送操作中被傳送到目標系統(tǒng)142。
[0036]串行化引擎110表示可以用于執(zhí)行數(shù)據(jù)串行化的任何應用、應用的集合、軟件、軟 件模塊、硬件、或軟件和硬件的組合。在示出的例子中,串行化引擎110包括分析模塊112、串 行化方案確定模塊114和串行化模塊116。
[0037] 分析模塊112表示可以用于執(zhí)行源數(shù)據(jù)庫中的數(shù)據(jù)的分析處理的任何應用、應用 的集合、軟件、軟件模塊、硬件、或軟件和硬件的組合。在一些實現(xiàn)中,分析處理可以在串行 化之前執(zhí)行。在分析處理期間,可以確定一個或多個串行化參數(shù)。圖3A到圖3B及相關聯(lián)的描 述提供分析處理的更多細節(jié)。
[0038] 串行化方案確定模塊114表示可以用于確定一個或多個串行化方案的集合、軟件、 軟件模塊、硬件、或軟件和硬件的組合。在一些實現(xiàn)中,一個或多個串行化方案可以基于在 分析處理中確定的串行化參數(shù)來確定。圖4及相管理的描述提供串行化方案確定處理的更 多細節(jié)。
[0039]串行化模塊116表示可以用于根據(jù)由串行化方案確定模塊114所確定的串行化方 案來執(zhí)行串行化處理的任何應用、應用的集合、軟件、軟件模塊、硬件、或軟件和硬件的組 合。圖5到圖11及相關聯(lián)的描述提供串行化處理的更多細節(jié)。
[0040] 如圖1所示,源系統(tǒng)102包括處理器106。雖然在圖1中示出了單個處理器106,但是 可以根據(jù)系統(tǒng)100的特定需要、期望或特定實現(xiàn)而使用兩個或更多個處理器。每個處理器 106可以是中央處理單元(CPU)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其他合 適的組件。一般地,處理器106運行指令和操縱數(shù)據(jù)以執(zhí)行源系統(tǒng)102的操作。具體地,處理 器106執(zhí)行在所示的圖中描述的算法和操作,一般包括執(zhí)行與源系統(tǒng)102,以及