用于數(shù)據(jù)遷移的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種用于數(shù)據(jù)遷移的方法和系統(tǒng)。其中所述方法包括:接收中間數(shù)據(jù)及其鍵值-行定位信息映射表;將中間數(shù)據(jù)的每一行分別導(dǎo)入到目標(biāo)數(shù)據(jù)表中對(duì)應(yīng)的每一行,其中目標(biāo)數(shù)據(jù)表的每一行具有目標(biāo)物理行標(biāo)識(shí);以及基于所述目標(biāo)物理行標(biāo)識(shí)以及所述鍵值-行定位信息映射表,建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。采用本發(fā)明的方法或者系統(tǒng),可以提高在數(shù)據(jù)遷移后重新建立數(shù)據(jù)索引的效率。
【專利說(shuō)明】用于數(shù)據(jù)遷移的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)處理方法,更具體地,涉及一種用于數(shù)據(jù)遷移的方法和系統(tǒng)?!颈尘凹夹g(shù)】
[0002]在目前的大數(shù)據(jù)時(shí)代,數(shù)據(jù)遷移是頻繁發(fā)生的事情。圖2示出了一個(gè)典型的數(shù)據(jù)遷移的過(guò)程,其適用于目前商業(yè)應(yīng)用最廣泛的各種數(shù)據(jù)庫(kù)系統(tǒng),其從一個(gè)源數(shù)據(jù)庫(kù)(DBl)中的源數(shù)據(jù)表(表1)中,將該表中的所有數(shù)據(jù)都遷移到目標(biāo)數(shù)據(jù)庫(kù)(DB2)中的具有相同結(jié)構(gòu)或者不同結(jié)構(gòu)的目標(biāo)數(shù)據(jù)表(表2)中,現(xiàn)有的技術(shù)一般步驟是先將源數(shù)據(jù)表(表1)中的數(shù)據(jù)導(dǎo)出到一個(gè)中間文件中形成中間數(shù)據(jù),該中間文件可以采用各種文件的形式,當(dāng)然也可以采用相關(guān)數(shù)據(jù)庫(kù)的表的形式,但其數(shù)據(jù)信息是與源數(shù)據(jù)表中的數(shù)據(jù)信息是一致的,比如
中間數(shù)據(jù)的行與內(nèi)容與源數(shù)據(jù)表的行是--對(duì)應(yīng)的,接著從中間文件(MF)中將中間數(shù)據(jù)導(dǎo)
入到目標(biāo)數(shù)據(jù)表中(表2),并根據(jù)目標(biāo)數(shù)據(jù)表重新生成用于對(duì)目標(biāo)數(shù)據(jù)表進(jìn)行檢索的目標(biāo)索引。
[0003]主流關(guān)系數(shù)據(jù)庫(kù)中的索引通常都是B+樹或B-樹。其中樹的葉子節(jié)點(diǎn)由索引項(xiàng)(index entries)組成,具體索引項(xiàng)結(jié)構(gòu)為鍵值/行標(biāo)識(shí)集合構(gòu)成的二元組如:<KeyValue, (RID1,.,RIDj >,η為自然數(shù),其中鍵值(KeyValue)就是數(shù)據(jù)表中被索引的列上(一列或多列)的值,例如:表中有一“省份”列,那么如果對(duì)該列建索引的話,其相應(yīng)索引葉子節(jié)點(diǎn)上的鍵值就可能是:河北、河南、湖北、湖南等,一般會(huì)按升序或降序排列。RID (行標(biāo)識(shí))就是某鍵值所對(duì)應(yīng)的數(shù)據(jù)表中的各數(shù)據(jù)行的標(biāo)示信息(唯一索引對(duì)應(yīng)一行、非唯一索引可對(duì)應(yīng)多行)。由于其一 般對(duì)應(yīng)于某數(shù)據(jù)行的具體物理存儲(chǔ)信息,在數(shù)據(jù)遷移過(guò)程中不可重用。還是用“省份”列索引舉例:那么“省份”索引中的典型性葉子節(jié)點(diǎn)通常如下所示:
[0004]索引葉子項(xiàng)1:〈 “河北”,(RID1, RID5, RID7,……,RID」} >,表示鍵值“河北”分別在第1、5、7、……j行出現(xiàn),j為自然數(shù);
[0005]索引葉子項(xiàng)2:< “河南”,{RID2, RID3, RID6,……,RIDj >,表示鍵值“河南”分別在第2、3、6、……k行出現(xiàn),k為自然數(shù)等等。
[0006]目前關(guān)系型數(shù)據(jù)庫(kù)生成索引一般包括如下步驟:
[0007](I)數(shù)據(jù)庫(kù)引擎(Database Engine)可以通過(guò)遍歷(scan)各個(gè)數(shù)據(jù)表,依次抽取各數(shù)據(jù)行(記錄)的索引鍵值key values并構(gòu)造相應(yīng)的“索引葉子項(xiàng)”;
[0008](2)以數(shù)據(jù)庫(kù)排序空間為單位,對(duì)上述“索引葉子項(xiàng)”進(jìn)行排序,并將排序后的結(jié)果寫入磁盤作為“中間排序子序列”。
[0009](3)重復(fù)(I)、(2),直至所有數(shù)據(jù)記錄被遍歷并將相應(yīng)索引葉子項(xiàng)寫入“中間排序子序列”。
[0010](4)在內(nèi)存中,對(duì)各“中間排序子序列”進(jìn)行歸并(merge)排序并生成一個(gè)單排序序列,并用其構(gòu)建索引。其過(guò)程如下:
[0011](a)從各中間排序子序列的第一個(gè)索引項(xiàng)中,找到鍵值最小(大)的索引項(xiàng),如符合條件的索引項(xiàng)不唯一則進(jìn)行整合,用鍵值最小(大)的索引項(xiàng)構(gòu)建第一個(gè)索引葉子節(jié)點(diǎn);[0012](b)依次處理剩下的鍵值最小(大)的索引項(xiàng);當(dāng)處理的索引項(xiàng)填滿第一個(gè)索引葉子塊后,將其寫入磁盤,并開始構(gòu)建下一個(gè)索引葉子塊;
[0013](C)在寫索引葉子塊的同時(shí),構(gòu)造索引中間節(jié)點(diǎn),并在其填滿一個(gè)索引塊后,將其寫入磁盤;
[0014](d)重復(fù)步驟(a)、(b)、(C),直至全部索引構(gòu)造結(jié)束。
[0015]采用上述傳統(tǒng)數(shù)據(jù)遷移方式存在著這樣一個(gè)普遍的問(wèn)題,由于目標(biāo)數(shù)據(jù)表中通常存有大量數(shù)據(jù),在目標(biāo)數(shù)據(jù)表中直接重建索引經(jīng)常會(huì)花費(fèi)大量時(shí)間,以至于嚴(yán)重影響正常業(yè)務(wù)。
【發(fā)明內(nèi)容】
[0016]本發(fā)明提供一種用于數(shù)據(jù)遷移的方法和系統(tǒng)。
[0017]根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于數(shù)據(jù)遷移的方法,包括:接收中間數(shù)據(jù)及其鍵值-行定位信息映射表;將中間數(shù)據(jù)的每一行分別導(dǎo)入到目標(biāo)數(shù)據(jù)表中對(duì)應(yīng)的每一行,其中目標(biāo)數(shù)據(jù)表的每一行具有目標(biāo)物理行標(biāo)識(shí);以及基于所述目標(biāo)物理行標(biāo)識(shí)以及所述鍵值-行定位信息映射表,建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。
[0018]根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于數(shù)據(jù)遷移的系統(tǒng),包括:接收裝置,被配置用于接收中間數(shù)據(jù)及其鍵值-行定位信息映射表;導(dǎo)入裝置,被配置用于將中間數(shù)據(jù)的每一行分別導(dǎo)入到目標(biāo)數(shù)據(jù)表中對(duì)應(yīng)的每一行,其中目標(biāo)數(shù)據(jù)表的每一行具有目標(biāo)物理行標(biāo)識(shí);以及第一目標(biāo)索引建立裝置,被配置用于基于所述目標(biāo)物理行標(biāo)識(shí)以及所述鍵值-行定位信息映射表,建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。
[0019]采用本發(fā)明的方法或者系統(tǒng),可以提高在數(shù)據(jù)遷移后重新建立數(shù)據(jù)索引的效率?!緦@綀D】
【附圖說(shuō)明】
[0020]通過(guò)結(jié)合附圖對(duì)本公開示例性實(shí)施方式進(jìn)行更詳細(xì)的描述,本公開的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯,其中,在本公開示例性實(shí)施方式中,相同的參考標(biāo)號(hào)通常代表相同部件。
[0021]圖1示出了適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖。
[0022]圖2示出了一個(gè)典型的數(shù)據(jù)遷移的過(guò)程。
[0023]圖3示出了本發(fā)明用于數(shù)據(jù)遷移的方法的基本思路。
[0024]圖4、5示出了本發(fā)明用于數(shù)據(jù)遷移的方法的【具體實(shí)施方式】。
[0025]圖6、7示出了具體如何生成中間數(shù)據(jù)的鍵值-行定位信息映射表。
[0026]圖8示出了本發(fā)明用于數(shù)據(jù)遷移的系統(tǒng)框圖。
【具體實(shí)施方式】
[0027]下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實(shí)施方式。雖然附圖中顯示了本公開的優(yōu)選實(shí)施方式,然而應(yīng)該理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。[0028]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開可以具體實(shí)現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0029]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0030]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0031]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無(wú)線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0032]可以以一種或多種程序設(shè)計(jì)語(yǔ)言或其組合來(lái)編寫用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如”C”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
[0033]下面將參照本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計(jì)算機(jī)程序指令通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0034]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在能使得計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一個(gè)包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。
[0035]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過(guò)程。
[0036]圖1示出了適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計(jì)算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來(lái)任何限制。
[0037]如圖1所示,計(jì)算機(jī)系統(tǒng)/服務(wù)器12以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元16,系統(tǒng)存儲(chǔ)器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器28和處理單元16)的總線18。
[0038]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來(lái)說(shuō),這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線以及外圍組件互連(PCI)總線。
[0039]計(jì)算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器12訪問(wèn)的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。
[0040]系統(tǒng)存儲(chǔ)器28可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM)30和/或高速緩存存儲(chǔ)器32。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)34可以用于讀寫不可移動(dòng)的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動(dòng)器”)。盡管圖1中未示出,可以提供用于對(duì)可移動(dòng)非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動(dòng)器,以及對(duì)可移動(dòng)非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動(dòng)器。在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過(guò)一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。存儲(chǔ)器28可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。
[0041]具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可以存儲(chǔ)在例如存儲(chǔ)器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。
[0042]計(jì)算機(jī)系統(tǒng)/服務(wù)器12也可以與一個(gè)或多個(gè)外部設(shè)備14 (例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該計(jì)算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計(jì)算機(jī)系統(tǒng)/服務(wù)器12能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過(guò)輸入/輸出(I/O)接口 22進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器12還可以通過(guò)網(wǎng)絡(luò)適配器20與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過(guò)總線18與計(jì)算機(jī)系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合計(jì)算機(jī)系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。
[0043]正是由于考慮到現(xiàn)有技術(shù)的缺陷,本 申請(qǐng)人:通過(guò)長(zhǎng)期的實(shí)踐,發(fā)現(xiàn)可以另辟蹊徑地基于源數(shù)據(jù)表的源索引來(lái)解決如何加快重建目標(biāo)索引這個(gè)問(wèn)題。圖3示出了本發(fā)明用于數(shù)據(jù)遷移的方法的基本思路。該基本思路是利用源數(shù)據(jù)庫(kù)中源數(shù)據(jù)表上已有的源索引來(lái)幫助提高目標(biāo)數(shù)據(jù)庫(kù)目標(biāo)表上索引的重建效率。源數(shù)據(jù)表的源索引是無(wú)法在目標(biāo)數(shù)據(jù)表上直接使用的,其根本原因在于索引葉子項(xiàng)中的行標(biāo)識(shí)是數(shù)據(jù)行物理存儲(chǔ)位置編碼,數(shù)據(jù)遷移過(guò)程中物理存儲(chǔ)位置的改變必然造成對(duì)應(yīng)的行標(biāo)識(shí)的改變,另外,不同數(shù)據(jù)庫(kù)的行標(biāo)識(shí)的編碼方式也一般不兼容。但源索引中的邏輯結(jié)構(gòu)對(duì)目標(biāo)數(shù)據(jù)表重建目標(biāo)索引有幫助。如果能用某種方法導(dǎo)出的話,可提高目標(biāo)表索引重建效率。本發(fā)明就是另辟蹊徑地通過(guò)將源索引葉子項(xiàng)中的源物理行標(biāo)識(shí)RID替換成在遷移過(guò)程保持不變的中間數(shù)據(jù)的對(duì)應(yīng)的行定位信息,如表行數(shù)據(jù)(Table Row Data)在中間文件MF對(duì)應(yīng)的順序號(hào)SN (SequenceNumber)—即中間數(shù)據(jù)的行號(hào),來(lái)重用源索引中的邏輯結(jié)構(gòu),從而構(gòu)成了如圖3示出的鍵值與行號(hào)的一一對(duì)應(yīng)的關(guān)系,比如圖3示意示出索引鍵值IKl (Index Key,后面簡(jiǎn)稱鍵值)對(duì)應(yīng)的是行號(hào)3 (Num3),當(dāng)然一個(gè)鍵值還可以對(duì)應(yīng)多個(gè)中間數(shù)據(jù)的行號(hào)。轉(zhuǎn)化后的索引項(xiàng)結(jié)構(gòu)如圖6所示:〈IK」,(SN11^jSNJ), j,η為自然數(shù)。而由于中間數(shù)據(jù)與目標(biāo)數(shù)據(jù)表中的行號(hào)也是一一對(duì)應(yīng)的(當(dāng)然源數(shù)據(jù)表中的行號(hào)與目標(biāo)數(shù)據(jù)的行號(hào)其實(shí)也是一一對(duì)應(yīng)的),利用鍵值與不變的行定位信息,再獲取目標(biāo)數(shù)據(jù)對(duì)應(yīng)的新的物理存儲(chǔ)位置,就可以快速重建目標(biāo)數(shù)據(jù)表的索引,從而取得了出乎本領(lǐng)域技術(shù)人員預(yù)料的技術(shù)效果。
[0044]圖4、5示出了本發(fā)明用于數(shù)據(jù)遷移的方法的【具體實(shí)施方式】。在步驟401中,接收中間數(shù)據(jù)及其鍵值-行定位信息映射表。其中如在【背景技術(shù)】中所介紹的,遷移數(shù)據(jù)之前,一般形成中間數(shù)據(jù)。中間數(shù)據(jù)可以采用各種文件格式類型來(lái)表示,例如分界ASCII文件(DEL)或集成交換格式文件(IXF)等。中間數(shù)據(jù)的鍵值-行定位信息映射表是基于源數(shù)據(jù)表的物理行標(biāo)識(shí)、源數(shù)據(jù)表的源索引以及對(duì)應(yīng)的中間數(shù)據(jù)(源數(shù)據(jù))行定位信息所形成的,行定位信息可以是中間數(shù)據(jù)的行號(hào)等。 申請(qǐng)人:在后面結(jié)合圖6、7來(lái)詳細(xì)說(shuō)明具體如何生成鍵值-行定位信息映射表。
[0045]在步驟403中,將中間數(shù)據(jù)的每一行分別導(dǎo)入到目標(biāo)數(shù)據(jù)表中對(duì)應(yīng)的每一行,其中目標(biāo)數(shù)據(jù)表的每一行具有目標(biāo)物理行標(biāo)識(shí)。更具體地,如圖5所示,在步驟501中,將中間文件中的中間數(shù)據(jù)的每一行逐一導(dǎo)入到目標(biāo)數(shù)據(jù)表2中對(duì)應(yīng)的每一行,雖然源數(shù)據(jù)表、中間文件以及目標(biāo)數(shù)據(jù)表的具體結(jié)構(gòu)可能有所不同,但是其在具體數(shù)據(jù)內(nèi)容上是不會(huì)改變的,其數(shù)據(jù)行也是一一對(duì)應(yīng)的。在目標(biāo)數(shù)據(jù)庫(kù)中,目標(biāo)數(shù)據(jù)表的每一行數(shù)據(jù)都會(huì)分配有新的目標(biāo)物理行標(biāo)識(shí),以表明其具體的存儲(chǔ)位置。因此可以在步驟503中記錄目標(biāo)物理行標(biāo)識(shí),優(yōu)選地按照目標(biāo)數(shù)據(jù)表的行順序記錄所述目標(biāo)物理行標(biāo)識(shí)從而形成了目標(biāo)物理行標(biāo)識(shí)序列507,其是按照行順序依次排列的。優(yōu)選目標(biāo)物理行標(biāo)識(shí)序列可以按照表的形式或者數(shù)組等方式存儲(chǔ)。當(dāng)然也可以在導(dǎo)入每一行數(shù)據(jù)時(shí)記錄一個(gè)目標(biāo)物理行標(biāo)識(shí)從而直接形成一個(gè)目標(biāo)物理行標(biāo)識(shí)序列。
[0046]在步驟405中,基于所述目標(biāo)物理行標(biāo)識(shí)以及所述鍵值-行定位信息映射表,建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。優(yōu)選地,利用所述目標(biāo)物理行標(biāo)識(shí)替換鍵值-行定位信息映射表中對(duì)應(yīng)的中間數(shù)據(jù)行定位信息;以及基于替換后的鍵值-行定位信息映射表建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。優(yōu)選地,其中所述基于替換后的鍵值-行定位信息映射表建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引包括如在前面所介紹的那樣以鍵值-行定位信息映射表中各行數(shù)據(jù)作為索引葉子項(xiàng)建立所述目標(biāo)數(shù)據(jù)的目標(biāo)索引。優(yōu)選地,本發(fā)明的一方面還可以將源數(shù)據(jù)表的源索引導(dǎo)出作為中間索引。值得注意的是,此時(shí)的中間索引中的索引葉子項(xiàng)中的物理行標(biāo)識(shí)還是源數(shù)據(jù)表的物理行標(biāo)識(shí),不能直接用作目標(biāo)數(shù)據(jù)表的目標(biāo)索引,則可以利用所述目標(biāo)物理行標(biāo)識(shí)依次替換鍵值-行定位信息映射表中對(duì)應(yīng)的中間數(shù)據(jù)行號(hào);以及基于替換后的鍵值-行定位信息映射表中的目標(biāo)物理行標(biāo)識(shí)替換所述中間索引的索引葉子項(xiàng)中的源物理行標(biāo)識(shí)從而得到所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。如此則能更快地建立目標(biāo)索引。更具體地如圖5中的步驟505中形成目標(biāo)數(shù)據(jù)表的目標(biāo)索引:
[0047](I)依次導(dǎo)入鍵值-行定位信息映射表509的每一行數(shù)據(jù)〈IK」,{SN1,..,SNn} >,j, η為自然數(shù);
[0048](2)根據(jù)每一行中的SNi, i為自然數(shù),直接計(jì)算在目標(biāo)物理行標(biāo)識(shí)序列507中的位置地址,獲取新的目標(biāo)物理行標(biāo)識(shí),并替換相應(yīng)SNitl舉例而言,對(duì)于第5行SN5 (=5),則找到在目標(biāo)物理行標(biāo)識(shí)序列507中的第5個(gè)目標(biāo)物理行標(biāo)識(shí)RID5,并將該第5個(gè)目標(biāo)物理行標(biāo)識(shí)RID5的值在鍵值-行定位信息映射表509中替換掉SN5。這樣最后形成的就是鍵值與新的目標(biāo)物理行標(biāo)識(shí)的映射表;
[0049](3)最后使用替換后的鍵值-行定位信息映射表509直接構(gòu)建目標(biāo)索引。
[0050]圖6、7示出了具體如何生成中間數(shù)據(jù)的鍵值-行定位信息映射表。在步驟601中,獲取源數(shù)據(jù)表中每一行對(duì)應(yīng)的源物理行標(biāo)識(shí)。正如前面指出的,源數(shù)據(jù)表中的每一行都對(duì)應(yīng)有其物理存儲(chǔ)位置,而這往往被作為其源物理行標(biāo)識(shí),其與源數(shù)據(jù)表中的數(shù)據(jù)行一一對(duì)應(yīng)。因此可以直接獲得源數(shù)據(jù)表中每一行對(duì)應(yīng)的源物理行標(biāo)識(shí)。在步驟603中,基于源物理行標(biāo)識(shí)以及對(duì)應(yīng)的中間數(shù)據(jù)行定位信息建立源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表。本發(fā)明的一方面需要輸出中間數(shù)據(jù),而中間數(shù)據(jù)的行定位信息與源數(shù)據(jù)的每一行是一一對(duì)應(yīng)的,因此可以將與源數(shù)據(jù)的每一行對(duì)應(yīng)的源物理行標(biāo)識(shí)同樣與中間數(shù)據(jù)的行定位信息一一對(duì)應(yīng)起來(lái),從而形成了源 物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表。在步驟605中,根據(jù)源數(shù)據(jù)表的源索引和源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表,生成所述鍵值-行定位信息映射表。源數(shù)據(jù)表的源索引的索引葉子項(xiàng)中與其鍵值對(duì)應(yīng)的是源物理行標(biāo)識(shí),則結(jié)合源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表,將源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表中的中間數(shù)據(jù)行定位信息替換源數(shù)據(jù)表的源索引中的索引葉子項(xiàng)中對(duì)應(yīng)的源物理行號(hào)以生成所述鍵值-行定位信息映射表。更具體地,如圖7所示,由源數(shù)據(jù)表以及源索引生成鍵值-行定位信息映射表包括:在步驟701中,導(dǎo)出中間數(shù)據(jù)707 ;在步驟703中,建立起源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表709 ;在步驟705中,利用源索引、源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表通過(guò)將源索引的索引葉子項(xiàng)中的源物理行標(biāo)識(shí)替換為對(duì)應(yīng)的中間數(shù)據(jù)行定位符,從而生成鍵值-行定位信息映射表711。
[0051]舉例而言,替換前:索引葉子項(xiàng)1:〈鍵值1,{RID” RID2,..,RIDj >;索引葉子項(xiàng)2:〈鍵值 2,{RID5,..,RIDJ ;葉子 N;替換后:葉子 1:〈鍵值 1,(SN1, SN2,.., SNj >;葉子2:〈鍵值2,{SN5,.., SNJ >;...;葉子N’。其中n,m為自然數(shù)。
[0052]本發(fā)明另一方面還提供一種如圖8所示的用于數(shù)據(jù)遷移的系統(tǒng)800。該系統(tǒng)800包括:接收裝置801,其被配置用于接收中間數(shù)據(jù)及其鍵值-行定位信息映射表;導(dǎo)入裝置803,其被配置用于將中間數(shù)據(jù)的每一行分別導(dǎo)入到目標(biāo)數(shù)據(jù)表中對(duì)應(yīng)的每一行,其中目標(biāo)數(shù)據(jù)表的每一行具有目標(biāo)物理行標(biāo)識(shí);以及目標(biāo)索引建立裝置805,被配置用于基于所述目標(biāo)物理行標(biāo)識(shí)以及所述鍵值-行定位信息映射表,建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。上述各個(gè)裝置的具體實(shí)現(xiàn)已經(jīng)在上面進(jìn)行了詳細(xì)說(shuō)明,在此不再贅述。
[0053]優(yōu)選地,系統(tǒng)800還包括中間數(shù)據(jù)導(dǎo)出裝置,其被配置用于基于源數(shù)據(jù)表導(dǎo)出中間數(shù)據(jù)。
[0054]優(yōu)選地,系統(tǒng)800還包括獲取裝置,其被配置用于獲取源數(shù)據(jù)表中每一行對(duì)應(yīng)的源物理行標(biāo)識(shí);映射表建立裝置,其被配置用于基于源物理行標(biāo)識(shí)以及對(duì)應(yīng)的中間數(shù)據(jù)行定位信息建立源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表;生成裝置,其被配置用于根據(jù)源數(shù)據(jù)表的源索引和源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表,生成所述鍵值-行定位信息映射表。
[0055]優(yōu)選地,其中所述目標(biāo)索引建立裝置包括:第一替換裝置,被配置用于利用所述目標(biāo)物理行標(biāo)識(shí)替換鍵值-行定位信息映射表中對(duì)應(yīng)的中間數(shù)據(jù)行定位信息;以及第二目標(biāo)索引建立裝置,被配置用于基于替換后的鍵值-行定位信息映射表建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。
[0056]優(yōu)選地,其中所述第二目標(biāo)索引建立裝置包括:第三目標(biāo)索引建立裝置,被配置用于以替換后的鍵值-行定位信息映射表中各行數(shù)據(jù)作為索引葉子項(xiàng)建立所述目標(biāo)數(shù)據(jù)的目標(biāo)索引。
[0057]優(yōu)選地,所述系統(tǒng)800還包括:中間索引導(dǎo)出裝置,被配置用于基于源數(shù)據(jù)表的源索引導(dǎo)出中間索引。
[0058]優(yōu)選地,其中所述目標(biāo)索引建立裝置包括:第二替換裝置,被配置用于利用所述目標(biāo)物理行標(biāo)識(shí)依次替換鍵值-行定位信息映射表中對(duì)應(yīng)的中間數(shù)據(jù)行號(hào);以及第三替換裝置,被配置用于基于替換后的鍵值-行定位信息映射表中的目標(biāo)物理行標(biāo)識(shí)替換所述中間索引的索引葉子項(xiàng)中的源物理行標(biāo)識(shí)從而得到所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。
[0059]優(yōu)選地,其中所述生成裝置包括:第四替換裝置,被配置用于將源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表中的中間數(shù)據(jù)行定位信息替換源數(shù)據(jù)表的源索引中的索引葉子項(xiàng)中對(duì)應(yīng)的源物理行號(hào)以生成所述鍵值-行定位信息映射表。
[0060]優(yōu)選地,其中所述行定位信息是中間數(shù)據(jù)的行號(hào)。
[0061]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
[0062]以上已經(jīng)描述了本發(fā)明的各實(shí)施例,上述說(shuō)明是示例性的,并非窮盡性的,并且也不限于所披露的各實(shí)施例。在不偏離所說(shuō)明的各實(shí)施例的范圍和精神的情況下,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō)許多修改和變更都是顯而易見(jiàn)的。本文中所用術(shù)語(yǔ)的選擇,旨在最好地解釋各實(shí)施例的原理、實(shí)際應(yīng)用或?qū)κ袌?chǎng)中的技術(shù)的技術(shù)改進(jìn),或者使本【技術(shù)領(lǐng)域】的其它普通技術(shù)人員能理解本文披露的各實(shí)施例。
【權(quán)利要求】
1.一種用于數(shù)據(jù)遷移的方法,包括: 接收中間數(shù)據(jù)及其鍵值-行定位信息映射表; 將中間數(shù)據(jù)的每一行分別導(dǎo)入到目標(biāo)數(shù)據(jù)表中對(duì)應(yīng)的每一行,其中目標(biāo)數(shù)據(jù)表的每一行具有目標(biāo)物理行標(biāo)識(shí);以及 基于所述目標(biāo)物理行標(biāo)識(shí)以及所述鍵值-行定位信息映射表,建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。
2.一種如權(quán)利要求2所述的方法,還包括: 基于源數(shù)據(jù)表導(dǎo)出中間數(shù)據(jù)。
3.根據(jù)權(quán)利要求1或2所述的方法,還包括: 獲取源數(shù)據(jù)表中每一行對(duì)應(yīng)的源物理行標(biāo)識(shí); 基于源物理行標(biāo)識(shí)以及對(duì)應(yīng)的中間數(shù)據(jù)行定位信息建立源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表; 根據(jù)源數(shù)據(jù)表的源索引和源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表,生成所述鍵值-行定位信息映射表。
4.一種如權(quán)利要求1所述的方法,其中所述基于所述目標(biāo)物理行標(biāo)識(shí)以及所述鍵值-行定位信息映射表,建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引包括: 利用所述目標(biāo)物理行標(biāo)識(shí)替換鍵值-行定位信息映射表中對(duì)應(yīng)的中間數(shù)據(jù)行定位信息;以及 基于替換后的鍵值-行定位信息映射表建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。
5.—種如權(quán)利要求4所述的方法,其中所述基于替換后的鍵值-行定位信息映射表建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引包括: 以替換后的鍵值-行定位信息映射表中各行數(shù)據(jù)作為索引葉子項(xiàng)建立所述目標(biāo)數(shù)據(jù)的目標(biāo)索引。
6.一種如權(quán)利要求1所述的方法,還包括: 基于源數(shù)據(jù)表的源索引導(dǎo)出中間索引。
7.—種如權(quán)利要求6所述的方法,其中所述基于所述目標(biāo)物理行標(biāo)識(shí)以及所述鍵值-行定位信息映射表,建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引包括: 利用所述目標(biāo)物理行標(biāo)識(shí)依次替換鍵值-行定位信息映射表中對(duì)應(yīng)的中間數(shù)據(jù)行號(hào);以及 基于替換后的鍵值-行定位信息映射表中的目標(biāo)物理行標(biāo)識(shí)替換所述中間索引的索引葉子項(xiàng)中的源物理行標(biāo)識(shí)從而得到所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。
8.—種如權(quán)利要求3所述的方法,其中所述根據(jù)源數(shù)據(jù)表的源索引和源物理行標(biāo)識(shí)-中間數(shù)據(jù)行號(hào)映射表,生成所述鍵值-行定位信息映射表包括: 將源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表中的中間數(shù)據(jù)行定位信息替換源數(shù)據(jù)表的源索引中的索引葉子項(xiàng)中對(duì)應(yīng)的源物理行號(hào)以生成所述鍵值-行定位信息映射表。
9.一種用于數(shù)據(jù)遷移的系統(tǒng),包括: 接收裝置,被配置用于接收中間數(shù)據(jù)及其鍵值-行定位信息映射表; 導(dǎo)入裝置,被配置用于將中間數(shù)據(jù)的每一行分別導(dǎo)入到目標(biāo)數(shù)據(jù)表中對(duì)應(yīng)的每一行,其中目標(biāo)數(shù)據(jù)表的每一行具有目標(biāo)物理行標(biāo)識(shí);以及第一目標(biāo)索引建立裝置,被配置用于基于所述目標(biāo)物理行標(biāo)識(shí)以及所述鍵值-行定位信息映射表,建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。
10.一種如權(quán)利要求9所述的系統(tǒng),還包括: 中間數(shù)據(jù)導(dǎo)出裝置,被配置用于基于源數(shù)據(jù)表導(dǎo)出中間數(shù)據(jù)。
11.根據(jù)權(quán)利要求9或10所述的系統(tǒng),還包括: 獲取裝置,被配置用于獲取源數(shù)據(jù)表中每一行對(duì)應(yīng)的源物理行標(biāo)識(shí); 映射表建立裝置,被配置用于基于源物理行標(biāo)識(shí)以及對(duì)應(yīng)的中間數(shù)據(jù)行定位信息建立源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表; 生成裝置,被配置用于根據(jù)源數(shù)據(jù)表的源索引和源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表,生成所述鍵值-行定位信息映射表。
12.—種如權(quán)利要求9所述的系統(tǒng),其中所述第一目標(biāo)索引建立裝置包括: 第一替換裝置,被配置用于利用所述目標(biāo)物理行標(biāo)識(shí)替換鍵值-行定位信息映射表中對(duì)應(yīng)的中間數(shù)據(jù)行定位信息;以及 第二目標(biāo)索引建立裝置,被配置用于基于替換后的鍵值-行定位信息映射表建立所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。
13.—種如權(quán)利 要求12所述的系統(tǒng),其中所述第二目標(biāo)索引建立裝置包括: 第三目標(biāo)索引建立裝置,被配置用于以替換后的鍵值-行定位信息映射表中各行數(shù)據(jù)作為索引葉子項(xiàng)建立所述目標(biāo)數(shù)據(jù)的目標(biāo)索引。
14.一種如權(quán)利要求9所述的系統(tǒng),還包括: 中間索引導(dǎo)出裝置,被配置用于基于源數(shù)據(jù)表的源索引導(dǎo)出中間索引。
15.一種如權(quán)利要求14所述的系統(tǒng),其中所述第一目標(biāo)索引建立裝置包括: 第二替換裝置,被配置用于利用所述目標(biāo)物理行標(biāo)識(shí)依次替換鍵值-行定位信息映射表中對(duì)應(yīng)的中間數(shù)據(jù)行號(hào);以及 第三替換裝置,被配置用于基于替換后的鍵值-行定位信息映射表中的目標(biāo)物理行標(biāo)識(shí)替換所述中間索引的索引葉子項(xiàng)中的源物理行標(biāo)識(shí)從而得到所述目標(biāo)數(shù)據(jù)表的目標(biāo)索引。
16.一種如權(quán)利要求11所述的系統(tǒng),其中所述生成裝置包括: 第四替換裝置,被配置用于將源物理行標(biāo)識(shí)-中間數(shù)據(jù)行定位信息映射表中的中間數(shù)據(jù)行定位信息替換源數(shù)據(jù)表的源索引中的索引葉子項(xiàng)中對(duì)應(yīng)的源物理行號(hào)以生成所述鍵值-行定位信息映射表。
【文檔編號(hào)】G06F17/30GK104021123SQ201310064513
【公開日】2014年9月3日 申請(qǐng)日期:2013年2月28日 優(yōu)先權(quán)日:2013年2月28日
【發(fā)明者】殷卓, 李昂, 劉健, 高英明, 鄒獻(xiàn) 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司