大數(shù)據(jù)一致性對(duì)比方法和系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明提供了一種大數(shù)據(jù)一致性對(duì)比方法和系統(tǒng),所述方法包括:將第一待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第一結(jié)構(gòu)化數(shù)據(jù),以及將第二待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第二結(jié)構(gòu)化數(shù)據(jù);利用分布式并行計(jì)算構(gòu)架對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分層對(duì)比,所述分層對(duì)比包括在不同層級(jí)對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息進(jìn)行對(duì)比和對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的內(nèi)容進(jìn)行對(duì)比;若所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息不相同,則直接返回對(duì)比不一致的結(jié)果;若所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息和內(nèi)容都相同,則返回對(duì)比一致的結(jié)果。采用該方法和系統(tǒng),能夠?qū)崿F(xiàn)了高效的對(duì)無(wú)序的大數(shù)據(jù)進(jìn)行一致性對(duì)比。
【專(zhuān)利說(shuō)明】大數(shù)據(jù)一致性對(duì)比方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別是涉及一種大數(shù)據(jù)一致性對(duì)比方法和系統(tǒng)。
【背景技術(shù)】
[0002]大數(shù)據(jù),也稱(chēng)為巨量數(shù)據(jù),是指數(shù)據(jù)量為PB級(jí)(PB指petabyte,是較為高級(jí)的存儲(chǔ)單位,為2的50次方字節(jié))以上的數(shù)據(jù)。大數(shù)據(jù)由于數(shù)據(jù)量規(guī)模巨大,無(wú)法通過(guò)目前主流軟件工具,在合理時(shí)間內(nèi)達(dá)到擷取、管理、處理、并整理成為幫助企業(yè)經(jīng)營(yíng)決策更積極目的的資訊,通常需要上千甚至幾萬(wàn)臺(tái)計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)連接組成的共同完成特定數(shù)據(jù)存儲(chǔ)、計(jì)算任務(wù)的計(jì)算機(jī)集群(即大數(shù)據(jù)集群)來(lái)進(jìn)行處理。
[0003]隨著大數(shù)據(jù)時(shí)代的到來(lái),大數(shù)據(jù)的價(jià)值得以開(kāi)發(fā),大數(shù)據(jù)的應(yīng)用和處理越來(lái)越頻繁,大數(shù)據(jù)一致性對(duì)比成為大數(shù)據(jù)中的一個(gè)關(guān)鍵應(yīng)用。比如,在大數(shù)據(jù)集群系統(tǒng)更替時(shí)需要確定更替前后的大數(shù)據(jù)是否一致;算法優(yōu)化前后計(jì)算結(jié)果是否一致;數(shù)據(jù)遷移前后是否一致等等。
[0004]然而傳統(tǒng)的對(duì)比工具通常只能實(shí)現(xiàn)小數(shù)據(jù)量一致性的對(duì)比,但在對(duì)比大數(shù)據(jù)量(PB級(jí)數(shù)據(jù)量)時(shí)效率則非常低下。
【發(fā)明內(nèi)容】
[0005]基于此,有必要針對(duì)上述技術(shù)問(wèn)題,提供一種能提高對(duì)比效率的大數(shù)據(jù)一致性對(duì)比方法和系統(tǒng)。
[0006]一種大數(shù)據(jù)一致性對(duì)比方法,所述方法包括:
[0007]將第一待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第一結(jié)構(gòu)化數(shù)據(jù),以及將第二待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第二結(jié)構(gòu)化數(shù)據(jù);
[0008]利用分布式并行計(jì)算構(gòu)架對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分層對(duì)t匕,所述分層對(duì)比包括在不同層級(jí)對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息進(jìn)行對(duì)比和對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的內(nèi)容進(jìn)行對(duì)比;
[0009]若所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息不相同,則直接返回對(duì)比不一致的結(jié)果;若所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息和內(nèi)容都相同,則返回對(duì)比一致的結(jié)果。
[0010]一種大數(shù)據(jù)一致性對(duì)比系統(tǒng),所述系統(tǒng)包括:
[0011]數(shù)據(jù)轉(zhuǎn)換模塊,用于將第一待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第一結(jié)構(gòu)化數(shù)據(jù),以及將第二待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第二結(jié)構(gòu)化數(shù)據(jù);
[0012]數(shù)據(jù)對(duì)比模塊,用于利用分布式并行計(jì)算構(gòu)架對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分層對(duì)比,所述分層對(duì)比包括在不同層級(jí)對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息進(jìn)行對(duì)比和對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的內(nèi)容進(jìn)行對(duì)比;若所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息不相同,則直接返回對(duì)比不一致的結(jié)果;若所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息和內(nèi)容都相同,則返回對(duì)比一致的結(jié)果。
[0013]上述大數(shù)據(jù)一致性對(duì)比方法和系統(tǒng),通過(guò)將非結(jié)構(gòu)化的待對(duì)比數(shù)據(jù)轉(zhuǎn)換為有序的結(jié)構(gòu)化數(shù)據(jù),使得后續(xù)的對(duì)比更加高效。另外,利用分布式并行架構(gòu)對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分層對(duì)比,通過(guò)在不同層級(jí)分別對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)通信信息和內(nèi)容進(jìn)行對(duì)比,這種分層對(duì)比的方式能夠降低一些不必要的對(duì)比開(kāi)銷(xiāo),從而提高了對(duì)比效率,能夠高效的解決無(wú)序的大數(shù)據(jù)一致性對(duì)比的問(wèn)題,且能實(shí)現(xiàn)大數(shù)據(jù)的高一致性對(duì)比。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0014]圖1為一個(gè)實(shí)施例中大數(shù)據(jù)一致性對(duì)比方法的應(yīng)用環(huán)境圖;
[0015]圖2為一個(gè)實(shí)施例中大數(shù)據(jù)一致性對(duì)比方法的流程示意圖;
[0016]圖3為另一個(gè)實(shí)施例中大數(shù)據(jù)一致性對(duì)比方法的流程示意圖;
[0017]圖4為圖3中對(duì)非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù)的示意圖;
[0018]圖5為圖3中判斷第一庫(kù)表中的記錄條數(shù)與第二庫(kù)表中的記錄條數(shù)是否相同的步驟的流程示意圖;
[0019]圖6為圖3中對(duì)第一庫(kù)表和第二庫(kù)表進(jìn)行內(nèi)容對(duì)比的流程示意圖;
[0020]圖7為圖6中對(duì)兩個(gè)庫(kù)表進(jìn)行內(nèi)容對(duì)比的示意圖;
[0021]圖8為一個(gè)實(shí)施例中利用MapReduce進(jìn)行分布式計(jì)算的示意圖;
[0022]圖9為一個(gè)實(shí)施例中大數(shù)據(jù)一致性對(duì)比系統(tǒng)的結(jié)構(gòu)框圖;
[0023]圖10為圖9中數(shù)據(jù)對(duì)比模塊的結(jié)構(gòu)框圖;
[0024]圖11為另一個(gè)實(shí)施例中大數(shù)據(jù)一致性對(duì)比系統(tǒng)的結(jié)構(gòu)框圖;
[0025]圖12為一個(gè)實(shí)際項(xiàng)目中的大數(shù)據(jù)一致性對(duì)比系統(tǒng)的運(yùn)行框架圖;
[0026]圖13為圖12中的記錄結(jié)果的示意圖。
【具體實(shí)施方式】
[0027]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0028]本發(fā)明實(shí)施例所提供的一種大數(shù)據(jù)一致性對(duì)比方法可應(yīng)用于如圖1所示的系統(tǒng)中。參考圖1所示,需要進(jìn)行一致性對(duì)比的大數(shù)據(jù)A和大數(shù)據(jù)B為計(jì)算機(jī)集群中的數(shù)據(jù),t匕如,可以分別是大數(shù)據(jù)集群進(jìn)行系統(tǒng)更替時(shí)的更替前和更替后的大數(shù)據(jù),可以分別是集群中進(jìn)行算法優(yōu)化所對(duì)應(yīng)的優(yōu)化前的計(jì)算結(jié)果和優(yōu)化后的計(jì)算結(jié)果,也可以分別是大數(shù)據(jù)從一個(gè)計(jì)算機(jī)集群遷移到另一個(gè)計(jì)算機(jī)集群所對(duì)應(yīng)的遷移前的數(shù)據(jù)和遷移后的數(shù)據(jù),等等。需要進(jìn)行一致性對(duì)比的大數(shù)據(jù)A和大數(shù)據(jù)B通常為不規(guī)整的目錄文件數(shù)據(jù),服務(wù)器106獲取這些數(shù)據(jù),將這些非結(jié)構(gòu)化的數(shù)據(jù)轉(zhuǎn)換為規(guī)整的結(jié)構(gòu)化數(shù)據(jù)(庫(kù)表),然后使用分布式并行計(jì)算架構(gòu)108對(duì)得到的兩個(gè)有序的庫(kù)表進(jìn)行分層對(duì)比。其中,分層對(duì)比包括對(duì)兩個(gè)庫(kù)表中的數(shù)據(jù)統(tǒng)計(jì)信息和內(nèi)容進(jìn)行對(duì)比。具體的,例如,可先對(duì)比兩個(gè)庫(kù)表中的記錄條數(shù)是否相同,如果記錄條數(shù)不相同,則表明其內(nèi)容不可能相同,直接返回對(duì)比不一致的結(jié)果。如果記錄條數(shù)相同,再進(jìn)一步對(duì)比內(nèi)容是否相同,采用分布式并行計(jì)算架構(gòu)108使用多線程提交任務(wù)進(jìn)行并行計(jì)算對(duì)比,大大提高了對(duì)比效率。最終將對(duì)比結(jié)果存儲(chǔ)至數(shù)據(jù)庫(kù)110中。存儲(chǔ)在數(shù)據(jù)庫(kù)Iio中的對(duì)比結(jié)果可以通過(guò)前臺(tái)進(jìn)行展現(xiàn),或通過(guò)網(wǎng)絡(luò)112推送至遠(yuǎn)程終端114進(jìn)行展示,比如以郵件的方式發(fā)送到遠(yuǎn)程終端114。
[0029]如圖2所示,在一個(gè)實(shí)施例中,提供了一種大數(shù)據(jù)一致性對(duì)比方法,該方法以運(yùn)行于Linux ( 一種類(lèi)Unix操作系統(tǒng),是一個(gè)基于POSIX和Unix的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng))服務(wù)器進(jìn)行舉例說(shuō)明,該方法包括:
[0030]步驟202,將第一待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第一結(jié)構(gòu)化數(shù)據(jù),以及將第二待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第二結(jié)構(gòu)化數(shù)據(jù)。
[0031]本實(shí)施例中,第一待對(duì)比數(shù)據(jù)和第二待對(duì)比數(shù)據(jù)即為需要進(jìn)行一致性對(duì)比的大數(shù)據(jù),由于原始的大數(shù)據(jù)是不規(guī)整的,因此可先分別將第一待對(duì)比數(shù)據(jù)和第二待對(duì)比數(shù)據(jù)轉(zhuǎn)換為規(guī)整有序的結(jié)構(gòu)化數(shù)據(jù),如庫(kù)表。
[0032]步驟204,利用分布式并行計(jì)算架構(gòu)對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分層對(duì)比,分層對(duì)比包括在不同層級(jí)對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)通信信息進(jìn)行對(duì)比和對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的內(nèi)容進(jìn)行對(duì)比。
[0033]本實(shí)施例中,若第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息不相同,則直接返回對(duì)比不一致的結(jié)果;若第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息和內(nèi)容都相同,則返回對(duì)比一致的結(jié)果。
[0034]具體的,可利用分布式并行計(jì)算架構(gòu),先對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息進(jìn)行對(duì)比,數(shù)據(jù)統(tǒng)計(jì)信息可以是結(jié)構(gòu)化數(shù)據(jù)的記錄條數(shù)、行數(shù)、列數(shù)、數(shù)據(jù)量大小等中的至少一種。若第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息不相同,則不再進(jìn)行內(nèi)容對(duì)比,因?yàn)槿绻麛?shù)據(jù)統(tǒng)計(jì)信息不相同,則內(nèi)容不可能再相同,則直接返回對(duì)比不一致的結(jié)果。若第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息相同,則再進(jìn)一步對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的內(nèi)容進(jìn)行對(duì)比,若內(nèi)容相同,則返回對(duì)不一致的結(jié)果,若內(nèi)容不相同,則返回對(duì)比不一致的結(jié)果。
[0035]本實(shí)施例中,通過(guò)將非結(jié)構(gòu)化的待對(duì)比數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù),例如,可將無(wú)序的大數(shù)據(jù)轉(zhuǎn)換為有序的庫(kù)表,使得后續(xù)的對(duì)比更加高效。另外,利用分布式并行架構(gòu)對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分層對(duì)比,這種分層對(duì)比的方式能夠降低一些不必要的對(duì)比開(kāi)銷(xiāo),從而提高了對(duì)比效率,能夠高效的解決無(wú)序的大數(shù)據(jù)一致性對(duì)比的問(wèn)題,且能實(shí)現(xiàn)大數(shù)據(jù)的高一致性對(duì)比。
[0036]在一個(gè)實(shí)施例中,第一結(jié)構(gòu)化數(shù)據(jù)為第一庫(kù)表,第二結(jié)構(gòu)化數(shù)據(jù)為第二庫(kù)表;利用分布式并行計(jì)算架構(gòu)對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分層對(duì)比的步驟包括:判斷第一庫(kù)表和第二庫(kù)表中的記錄條數(shù)是否相同,若是,則對(duì)第一庫(kù)表和第二庫(kù)表進(jìn)行內(nèi)容對(duì)t匕,否則返回對(duì)比不一致的結(jié)果。
[0037]如圖3所示,一種大數(shù)據(jù)一致性對(duì)比方法,該方法以應(yīng)用于Linux服務(wù)器進(jìn)行舉例說(shuō)明,該方法包括:
[0038]步驟302,對(duì)第一待對(duì)比數(shù)據(jù)中目錄下所有數(shù)據(jù)創(chuàng)建對(duì)應(yīng)的外表,得到結(jié)構(gòu)化的第一庫(kù)表,以及對(duì)第二待對(duì)比數(shù)據(jù)中目錄下所有數(shù)據(jù)創(chuàng)建對(duì)應(yīng)的外表,得到結(jié)構(gòu)化的第二庫(kù)表。
[0039]本實(shí)施例中,可采用開(kāi)源框架Hive將大數(shù)據(jù)的文件所在目錄關(guān)聯(lián)為庫(kù)表。Hive是基于Hadoop (—種分布式系統(tǒng)基礎(chǔ)架構(gòu))的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,其可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張庫(kù)表,也可將SQL (結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)句轉(zhuǎn)換為MapReduce ( 一種編程模型,用于大規(guī)模數(shù)據(jù)集的并行計(jì)算)任務(wù)進(jìn)行運(yùn)行。這樣,可將不規(guī)整的大數(shù)據(jù)轉(zhuǎn)換為有序的數(shù)據(jù),規(guī)避了原始數(shù)據(jù)由于文件分片不一致導(dǎo)致無(wú)法對(duì)比的問(wèn)題,實(shí)現(xiàn)了大數(shù)據(jù)的可對(duì)比性。
[0040]舉例說(shuō)明,可采用如下SQL語(yǔ)句對(duì)一個(gè)目錄下的數(shù)據(jù)創(chuàng)建外表:
[0041 ] CREATE EXTERNAL TABLE TX (a String,) ROW FORMAT DELIMITED FIELDS TERMINATEDBY’ 13’ LOCATION’/user/tdwadmin/testl'
[0042]其中,“/user/tdwadmin/testI” 表示目錄的路徑。
[0043]如圖4所示,需要進(jìn)行一致性對(duì)比的大數(shù)據(jù)X和Y包含文件目錄以及目錄下的數(shù)據(jù),分別對(duì)每條目錄下所有數(shù)據(jù)創(chuàng)建對(duì)應(yīng)的外表,得到相應(yīng)的庫(kù)表TX和TY,庫(kù)表TX和庫(kù)表TY中的數(shù)據(jù)是有序的。應(yīng)當(dāng)說(shuō)明的是,圖4所示的庫(kù)表的內(nèi)容僅僅是一個(gè)示例,并不用于限制本實(shí)施例。
[0044]步驟304,判斷第一庫(kù)表和第二庫(kù)表中的記錄條數(shù)是否相同,若是,則進(jìn)入步驟306,否則進(jìn)入步驟308。
[0045]步驟306,判斷第一庫(kù)表和第二庫(kù)表中的內(nèi)容是否相同,若是,貝U進(jìn)入步驟308,否則進(jìn)入步驟310。
[0046]步驟308,返回對(duì)比不一致的結(jié)果。
[0047]步驟310和步驟312,返回對(duì)比不一致的結(jié)果。
[0048]本實(shí)施例中,可對(duì)兩個(gè)庫(kù)表分別執(zhí)行select count獲取其中的記錄條數(shù)。如果第一庫(kù)表和第二庫(kù)表中的記錄條數(shù)不相同,則兩個(gè)庫(kù)表的內(nèi)容必然不相同,直接返回對(duì)比不一致的結(jié)果,以降低不必要的對(duì)比開(kāi)銷(xiāo)。如果兩個(gè)庫(kù)表中的記錄條數(shù)相同,再進(jìn)一步判斷第一庫(kù)表和第二庫(kù)表中的內(nèi)容是否相同,如果相同,則返回對(duì)比一致的結(jié)果,如果內(nèi)容不相同,則返回對(duì)比不一致的結(jié)果。
[0049]進(jìn)一步的,在一個(gè)實(shí)施例中,可將大數(shù)據(jù)一致性對(duì)比結(jié)果進(jìn)行記錄,生成記錄結(jié)果,將記錄結(jié)果發(fā)送至遠(yuǎn)程終端,記錄結(jié)果包括記錄條數(shù)對(duì)比失敗列表、內(nèi)容對(duì)比失敗列表和內(nèi)容對(duì)比成功列表。其中,每一列表都可包含任務(wù)標(biāo)識(shí)、任務(wù)類(lèi)型、每個(gè)任務(wù)對(duì)應(yīng)的記錄條數(shù)等等,其中內(nèi)容對(duì)比成功列表還包含每個(gè)任務(wù)對(duì)應(yīng)的內(nèi)容對(duì)比結(jié)果??梢岳斫?,若內(nèi)容對(duì)比失敗列表和內(nèi)容對(duì)比成功列表中不為空,則記錄條數(shù)對(duì)比失敗列表為空,若記錄條數(shù)對(duì)比失敗列表不為空,則內(nèi)容對(duì)比失敗列表和內(nèi)容對(duì)比成功列表為空。本實(shí)施例中,記錄結(jié)果中還可包含對(duì)對(duì)比結(jié)果的匯總,比如,內(nèi)容對(duì)比成功的任務(wù)數(shù)量、內(nèi)容對(duì)比失敗的任務(wù)數(shù)量等??蓪⒂涗浗Y(jié)果以郵件推送的方式發(fā)送至遠(yuǎn)程終端。
[0050]在一個(gè)實(shí)施例中,如圖5所示,判斷第一庫(kù)表中的記錄條數(shù)與第二庫(kù)表中的記錄條數(shù)是否相同的步驟為:
[0051]步驟502,分別統(tǒng)計(jì)第一庫(kù)表中去重后的第一記錄條數(shù)和第二庫(kù)表中去重后的第二記錄條數(shù)。
[0052]步驟504,獲取第一記錄條數(shù)和第二記錄條數(shù)相減后的絕對(duì)值。
[0053]步驟506,判斷該絕對(duì)值是否為零,若是,則進(jìn)入步驟508,否則進(jìn)入步驟510。
[0054]步驟508,第一庫(kù)表中的記錄條數(shù)與第二庫(kù)表中的記錄條數(shù)相同。[0055]步驟510,第一庫(kù)表中的記錄條數(shù)與第二庫(kù)表的記錄條數(shù)不相同。
[0056]本實(shí)施例中,由于第一庫(kù)表和第二庫(kù)表中都是規(guī)則的結(jié)構(gòu)化數(shù)據(jù),可直接對(duì)第一庫(kù)表和第二庫(kù)表執(zhí)行select count獲取其中的記錄條數(shù)。例如,對(duì)于圖4中的第一庫(kù)表TX,可執(zhí)行如下語(yǔ)句:
[0057]NonrepeatingX: Select count (distinct a) from TX
[0058]從而可以獲取第一庫(kù)表TX中去重后的記錄條數(shù)。
[0059]本實(shí)施例中,通過(guò)簡(jiǎn)單的SQL語(yǔ)句即可直接得到第一庫(kù)表和第二庫(kù)表中去重后的記錄條數(shù),從而對(duì)記錄條數(shù)進(jìn)行對(duì)比,在記錄條數(shù)相同時(shí)再進(jìn)行內(nèi)容對(duì)比,能夠提高對(duì)比效率。
[0060]在一個(gè)實(shí)施例中,如圖6所不,對(duì)第一庫(kù)表和第二庫(kù)表進(jìn)行內(nèi)容對(duì)比的步驟,包括:
[0061]步驟602,分別對(duì)第一庫(kù)表和第二庫(kù)表按照字段進(jìn)行分組統(tǒng)計(jì),得到第一庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果和第二庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果。
[0062]步驟604,對(duì)第一庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果和第二庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果進(jìn)行關(guān)聯(lián)計(jì)算。
[0063]步驟606,判斷第一庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果和第二庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果中的分組統(tǒng)計(jì)信息相同且字段值是否也相同,若是,則進(jìn)入步驟608,否則進(jìn)入步驟610。
[0064]步驟608,返回對(duì)比一致的結(jié)果。
[0065]步驟610,返回對(duì)比不一致的結(jié)果。
[0066]具體的,結(jié)合圖7所不,本實(shí)施例中,可分別對(duì)第一庫(kù)表A和第二庫(kù)表B執(zhí)行如上所述的select count ο例如,執(zhí)行語(yǔ)句:select count (distinct a) from A以得到第一庫(kù)表A對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果(如表SI所示)。執(zhí)行語(yǔ)句:select count (distinct a) from B以得到第一庫(kù)表B對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果(如表S2所示)。該分組統(tǒng)計(jì)結(jié)果包括字段值和分組統(tǒng)計(jì)信息,其中,字段值是指字段中的具體內(nèi)容,如表SI中的“aaaaaaaa”,分組統(tǒng)計(jì)信息是指統(tǒng)計(jì)出的每一字段值對(duì)應(yīng)的數(shù)量,比如表SI中,“aaaaaaaa”的分組統(tǒng)計(jì)信息為2,“bbbbbbbbb”的分組統(tǒng)計(jì)信息為2,等等。進(jìn)一步的,對(duì)表SI和表S2進(jìn)行JOIN關(guān)聯(lián)計(jì)算,SQL中的JOIN可根據(jù)兩個(gè)或多個(gè)表中的列之間的關(guān)系來(lái)實(shí)現(xiàn)從這些表中查詢數(shù)據(jù)。本實(shí)施例中,JOIN關(guān)聯(lián)計(jì)算的條件是兩個(gè)表的字段值相等、字段分組統(tǒng)計(jì)信息也相等。如圖7所不,對(duì)于表SI和表S2,執(zhí)行語(yǔ)句:
[0067]SELECT COUNT (*) FROM(SELET tl.a a.COUNT (*) b FROM 11GR0UP BY tl.a)s I JOIN (SELECT tl.a a.COUNT (*)b FROM T1GR0UP BY tl.a)s20N(sl.a = s2.a AND s1.b =s2.b);
[0068]即可查詢表SI和表2中是否分組統(tǒng)計(jì)信息和字段值都相同,如果都相同,標(biāo)識(shí)第一庫(kù)表和第二庫(kù)表中的數(shù)據(jù)完全相同,返回對(duì)比一致的結(jié)果,否則返回對(duì)比不一致的結(jié)果。
[0069]本實(shí)施例中,由于可以查詢兩個(gè)庫(kù)表的分組統(tǒng)計(jì)結(jié)果,分組統(tǒng)計(jì)結(jié)果包含分組統(tǒng)計(jì)信息和字段中的具體內(nèi)容(也就是字段值),通過(guò)JION關(guān)聯(lián)計(jì)算,即可查詢得到兩個(gè)庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)信息和字段值是否都相同,在滿足都相同的條件下,得到對(duì)比一致的對(duì)比結(jié)果。從而可以實(shí)現(xiàn)大數(shù)據(jù)的高一致性對(duì)比,所謂高一致性是指事物的全部特征完全一致,對(duì)于大數(shù)據(jù)來(lái)說(shuō),大數(shù)據(jù)一致性則指的是大數(shù)據(jù)中記錄條數(shù)、每條記錄的內(nèi)容和計(jì)算的重復(fù)次數(shù)完全一致??梢岳斫?,本實(shí)施例可以實(shí)現(xiàn)大數(shù)據(jù)的高一致性對(duì)比。
[0070]在一個(gè)實(shí)施例中,上述各實(shí)施例中的大數(shù)據(jù)一致性對(duì)比方法中,利用開(kāi)源分布式并行計(jì)算架構(gòu)中的MapReduce并行計(jì)算第一結(jié)構(gòu)化數(shù)據(jù)中的記錄條數(shù)和第二結(jié)構(gòu)化數(shù)據(jù)中的記錄條數(shù),以及對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)進(jìn)行內(nèi)容對(duì)比。如圖8所示,本實(shí)施例中,源數(shù)據(jù)為轉(zhuǎn)換得到的結(jié)構(gòu)化數(shù)據(jù)即庫(kù)表,在源數(shù)據(jù)進(jìn)行對(duì)比的過(guò)程中,可使用多線程對(duì)比提交任務(wù),利用開(kāi)源分布式并行計(jì)算架構(gòu)中的MapReduce實(shí)現(xiàn)并行計(jì)算,從而能夠大大提高對(duì)比效率。所得到的對(duì)比結(jié)果可存儲(chǔ)在數(shù)據(jù)庫(kù)中。
[0071]如圖9所示,在一個(gè)實(shí)施例中,還提供了一種大數(shù)據(jù)一致性對(duì)比系統(tǒng),包括數(shù)據(jù)轉(zhuǎn)換模塊902和數(shù)據(jù)對(duì)比模塊904,其中:
[0072]數(shù)據(jù)轉(zhuǎn)換模塊902用于將第一待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第一結(jié)構(gòu)化數(shù)據(jù),以及第二待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第二結(jié)構(gòu)化數(shù)據(jù)。
[0073]數(shù)據(jù)對(duì)比模塊904用于利用分布式并行計(jì)算構(gòu)架對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分層對(duì)比,分層對(duì)比包括在不同層級(jí)對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息進(jìn)行對(duì)比和對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的內(nèi)容進(jìn)行對(duì)比;若第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息不相同,則直接返回對(duì)比不一致的結(jié)果;若第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息和內(nèi)容都相同,則返回對(duì)比一致的結(jié)果。
[0074]在一個(gè)實(shí)施例中,第一結(jié)構(gòu)化數(shù)據(jù)為第一庫(kù)表,第二結(jié)構(gòu)化數(shù)據(jù)為第二庫(kù)表。數(shù)據(jù)轉(zhuǎn)換模塊902用于判斷第一庫(kù)表和第二庫(kù)表中的記錄條數(shù)是否相同,若是,則對(duì)第一庫(kù)表和第二庫(kù)表進(jìn)行內(nèi)容對(duì)比,否則,返回對(duì)比不一致的結(jié)果。
[0075]本實(shí)施例中,數(shù)據(jù)轉(zhuǎn)換模塊902可用于采用開(kāi)源框架Hive將大數(shù)據(jù)的文件所在目錄關(guān)聯(lián)為庫(kù)表,從而將不規(guī)整的大數(shù)據(jù)轉(zhuǎn)換為有序的數(shù)據(jù)。
[0076]進(jìn)一步的,在一個(gè)實(shí)施例中,如圖10所示,數(shù)據(jù)對(duì)比模塊904包括記錄條數(shù)對(duì)比模塊924和內(nèi)容對(duì)比模塊944,其中:
[0077]記錄條數(shù)對(duì)比模塊924用于分別統(tǒng)計(jì)第一庫(kù)表中去重后的第一記錄條數(shù)和第二庫(kù)表中去重后的第二記錄條數(shù);獲取第一記錄條數(shù)和第二記錄條數(shù)相減后的絕對(duì)值;判斷絕對(duì)值是否為零,若為零,則第一庫(kù)表中的記錄條數(shù)與第二庫(kù)表中的記錄條數(shù)相同,若不為零,則第一庫(kù)表中的記錄條數(shù)與第二庫(kù)表中的記錄條數(shù)不相同。
[0078]內(nèi)容對(duì)比模塊944用于分別對(duì)第一庫(kù)表和第二庫(kù)表按照字段進(jìn)行分組統(tǒng)計(jì),得到第一庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果和第二庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果,對(duì)第一庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果和第二庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果進(jìn)行關(guān)聯(lián)計(jì)算;若第一庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果和第二庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果中的分組統(tǒng)計(jì)信息相同且字段值相同,則返回對(duì)比一致的結(jié)構(gòu),否則返回對(duì)比不一致的結(jié)果。
[0079]在一個(gè)實(shí)施例中,數(shù)據(jù)對(duì)比模塊904還用于利用開(kāi)源分布式并行計(jì)算架構(gòu)中的MapReduce并行計(jì)算第一結(jié)構(gòu)化數(shù)據(jù)中的記錄條數(shù)和第二結(jié)構(gòu)化數(shù)據(jù)中的記錄條數(shù),以及對(duì)第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)進(jìn)行內(nèi)容對(duì)比。
[0080]在一個(gè)實(shí)施例中,如圖11所示,大數(shù)據(jù)一致性對(duì)比系統(tǒng)還包括:
[0081]記錄和發(fā)送模塊906,用于將大數(shù)據(jù)一致性對(duì)比結(jié)果進(jìn)行記錄,生成記錄結(jié)果,將記錄結(jié)果發(fā)送至遠(yuǎn)程終端,記錄結(jié)果包括記錄條數(shù)對(duì)比失敗列表、內(nèi)容對(duì)比失敗列表和內(nèi)容對(duì)比成功列表。
[0082]本實(shí)施例中,每一列表都可包含任務(wù)標(biāo)識(shí)、任務(wù)類(lèi)型、每個(gè)任務(wù)對(duì)應(yīng)的記錄條數(shù)等等,其中內(nèi)容對(duì)比成功列表還包含每個(gè)任務(wù)對(duì)應(yīng)的內(nèi)容對(duì)比結(jié)果。,記錄結(jié)果中還可包含對(duì)對(duì)比結(jié)果的匯總,比如,內(nèi)容對(duì)比成功的任務(wù)數(shù)量、內(nèi)容對(duì)比失敗的任務(wù)數(shù)量等。可將記錄結(jié)果以郵件推送的方式發(fā)送至遠(yuǎn)程終端。
[0083]下面結(jié)合一個(gè)具體的實(shí)施例來(lái)對(duì)上述大數(shù)據(jù)一致性對(duì)比方法和系統(tǒng)的原理進(jìn)行詳細(xì)說(shuō)明。本實(shí)施例中,需實(shí)現(xiàn)對(duì)計(jì)算機(jī)集群進(jìn)行規(guī)模擴(kuò)建,比如,從4K到8K的升級(jí)過(guò)程中,集群底層機(jī)構(gòu)從Corona ( —種集群架構(gòu))升級(jí)到Gaia (另一種集群架構(gòu)),任務(wù)也需要從COTona集群逐步遷移至Gaia集群上。為了保證整個(gè)過(guò)程對(duì)業(yè)務(wù)計(jì)算無(wú)影響以及業(yè)務(wù)正常遷移,需要對(duì)現(xiàn)網(wǎng)任務(wù)割接前對(duì)現(xiàn)網(wǎng)任務(wù)在兩個(gè)不同的集群進(jìn)行數(shù)據(jù)一致性對(duì)比測(cè)試。其中,現(xiàn)網(wǎng)是指生產(chǎn)環(huán)境中正式部署的硬件和軟件的集合,即生產(chǎn)環(huán)境。任務(wù)是指在運(yùn)行場(chǎng)景下對(duì)數(shù)據(jù)進(jìn)行的一種操作,會(huì)輸出操作結(jié)果。
[0084]結(jié)合圖12所示,根據(jù)現(xiàn)網(wǎng)的調(diào)度引擎層獲取現(xiàn)網(wǎng)真實(shí)任務(wù),構(gòu)造現(xiàn)網(wǎng)對(duì)比測(cè)試任務(wù),現(xiàn)網(wǎng)測(cè)試是指現(xiàn)網(wǎng)環(huán)境上進(jìn)行的測(cè)試,通過(guò)測(cè)試環(huán)境發(fā)起測(cè)試對(duì)比任務(wù)到測(cè)試客戶端(測(cè)試Ihoster客戶端),然后再將測(cè)試客戶端提交到現(xiàn)網(wǎng)客戶端上,最后提交到Gaia平臺(tái)上運(yùn)行。如圖8所示,在現(xiàn)網(wǎng)客戶端層上運(yùn)行有現(xiàn)網(wǎng)Conrona hive客戶端、現(xiàn)網(wǎng)Coronahadoop客戶端、現(xiàn)網(wǎng)Gaia Hadoop客戶端和現(xiàn)網(wǎng)Gaia hive客戶端。在現(xiàn)網(wǎng)Conrona hive客戶端和現(xiàn)網(wǎng)Corona hadoop客戶端執(zhí)行現(xiàn)網(wǎng)任務(wù),在現(xiàn)網(wǎng)Gaia Hadoop客戶端和現(xiàn)網(wǎng)Gaiahive客戶端上執(zhí)行測(cè)試任務(wù),則在現(xiàn)網(wǎng)集群層上得到現(xiàn)網(wǎng)任務(wù)在Corona上的執(zhí)行結(jié)果以及測(cè)試任務(wù)在Gaia上的執(zhí)行結(jié)果,將這兩個(gè)執(zhí)行結(jié)果傳輸至結(jié)果對(duì)比層進(jìn)行大數(shù)據(jù)一致性對(duì)比。
[0085]進(jìn)一步的,在結(jié)果對(duì)比層實(shí)現(xiàn)大數(shù)據(jù)一致性對(duì)比過(guò)程中,首先進(jìn)行任務(wù)級(jí)對(duì)比,SP對(duì)比任務(wù)的任務(wù)狀態(tài)是否相同,其中任務(wù)狀態(tài)包括任務(wù)成功和任務(wù)失敗兩個(gè)狀態(tài),如果任務(wù)狀態(tài)對(duì)比不相同,是得到任務(wù)狀態(tài)對(duì)比失敗的對(duì)比結(jié)果,如果任務(wù)狀態(tài)對(duì)比相同,則再進(jìn)一步進(jìn)行記錄條數(shù)和內(nèi)容對(duì)比。其中,記錄條數(shù)可根據(jù)任務(wù)的類(lèi)型分別統(tǒng)計(jì)。如圖8所示,統(tǒng)計(jì)的記錄條數(shù)包括MR記錄條數(shù)、PYSQL計(jì)算條數(shù)和記錄條數(shù)去重?cái)?shù)量,其中MB記錄條數(shù)是指MapReduce并行計(jì)算任務(wù)的記錄條數(shù),PYSQL是指PYSQL計(jì)算類(lèi)型的任務(wù)對(duì)應(yīng)的記錄條數(shù),記錄條數(shù)去重?cái)?shù)量是指所有任務(wù)的記錄條數(shù)去重后的數(shù)量。若這些記錄條數(shù)都相同,則進(jìn)一步進(jìn)行內(nèi)容對(duì)比,若不相同,則直接輸出對(duì)比不一致的結(jié)果。
[0086]進(jìn)一步的,在進(jìn)行內(nèi)容對(duì)比的過(guò)程中,如上所述,對(duì)于COTona計(jì)算結(jié)果數(shù)據(jù)(Corona集群中還包含Hadoop其它目錄)和Gaia計(jì)算結(jié)果數(shù)據(jù),通過(guò)Hive SQL語(yǔ)句將目錄關(guān)聯(lián)成外表,得到結(jié)構(gòu)化數(shù)據(jù),再將得到的結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分組統(tǒng)計(jì)和關(guān)聯(lián)計(jì)算,得到內(nèi)容對(duì)比是否一致的對(duì)比結(jié)果。結(jié)合圖8所示,將對(duì)比結(jié)果進(jìn)行記錄和收集,最終可將對(duì)比結(jié)果進(jìn)行郵件推送。圖13展示了一種郵件接收到的對(duì)比結(jié)果,以MR任務(wù)為例,展示了 MR任務(wù)的記錄條數(shù)對(duì)比失敗列表、內(nèi)容對(duì)比失敗列表和內(nèi)容對(duì)比成功列表。本實(shí)施例中,MR任務(wù)的記錄條數(shù)對(duì)比失敗列表為空,也就是說(shuō),記錄條數(shù)相同。內(nèi)容對(duì)比失敗列表也為空,也就是說(shuō)內(nèi)容對(duì)比結(jié)果為內(nèi)容一致。在內(nèi)容對(duì)比成功列表中,包含有任務(wù)以及對(duì)應(yīng)在不同平臺(tái)上的任務(wù)狀態(tài)和記錄條數(shù)、分組統(tǒng)計(jì)后的記錄條數(shù)以及任務(wù)對(duì)應(yīng)的內(nèi)容對(duì)比是否一致的對(duì)比結(jié)果,任務(wù)標(biāo)識(shí)用于唯一標(biāo)識(shí)每個(gè)任務(wù)。進(jìn)一步的,若統(tǒng)計(jì)出內(nèi)容對(duì)比失敗列表中有任務(wù),則開(kāi)發(fā)人員可針對(duì)性的對(duì)這些失敗的任務(wù)進(jìn)行解決,以最終實(shí)現(xiàn)大數(shù)據(jù)對(duì)比完全一致的目的。
[0087]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(RandomAccessMemory, RAM)等。
[0088]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專(zhuān)利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專(zhuān)利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種大數(shù)據(jù)一致性對(duì)比方法,所述方法包括: 將第一待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第一結(jié)構(gòu)化數(shù)據(jù),以及將第二待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第二結(jié)構(gòu)化數(shù)據(jù); 利用分布式并行計(jì)算構(gòu)架對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分層對(duì)比,所述分層對(duì)比包括在不同層級(jí)對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息進(jìn)行對(duì)比和對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的內(nèi)容進(jìn)行對(duì)比; 若所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息不相同,則直接返回對(duì)比不一致的結(jié)果;若所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息和內(nèi)容都相同,則返回對(duì)比一致的結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一結(jié)構(gòu)化數(shù)據(jù)為第一庫(kù)表,所述第二結(jié)構(gòu)化數(shù)據(jù)為第二庫(kù)表;所述利用分布式并行計(jì)算架構(gòu)對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分層對(duì)比的步驟包括: 判斷所述第一庫(kù)表和第二庫(kù)表中的記錄條數(shù)是否相同,若是,則對(duì)所述第一庫(kù)表和第二庫(kù)表進(jìn)行內(nèi)容對(duì)比,否則,返回對(duì)比不一致的結(jié)果。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述判斷第一庫(kù)表中的記錄條數(shù)與第二庫(kù)表中的記錄條數(shù)是 否相同的步驟,包括: 分別統(tǒng)計(jì)所述第一庫(kù)表中去重后的第一記錄條數(shù)和所述第二庫(kù)表中去重后的第二記錄條數(shù); 獲取所述第一記錄條數(shù)和第二記錄條數(shù)相減后的絕對(duì)值; 判斷所述絕對(duì)值是否為零,若為零,則所述第一庫(kù)表中的記錄條數(shù)與第二庫(kù)表中記錄條數(shù)相同,若不為零,則所述第一庫(kù)表中的記錄條數(shù)與第二庫(kù)表中的記錄條數(shù)不相同。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對(duì)第一庫(kù)表和第二庫(kù)表進(jìn)行內(nèi)容對(duì)比的步驟,包括: 分別對(duì)所述第一庫(kù)表和第二庫(kù)表按照字段進(jìn)行分組統(tǒng)計(jì),得到第一庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果和第二庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果; 對(duì)所述第一庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果和第二庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果進(jìn)行關(guān)聯(lián)計(jì)算; 若所述第一庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果和第二庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果中的分組統(tǒng)計(jì)信息相同且字段值相同,則返回對(duì)比一致的結(jié)果,否則返回對(duì)比不一致的結(jié)果。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述方法還包括: 將大數(shù)據(jù)一致性對(duì)比結(jié)果進(jìn)行記錄,生成記錄結(jié)果,將所述記錄結(jié)果發(fā)送至遠(yuǎn)程終端,所述記錄結(jié)果包括記錄條數(shù)對(duì)比失敗列表、內(nèi)容對(duì)比失敗列表和內(nèi)容對(duì)比成功列表。
6.一種大數(shù)據(jù)一致性對(duì)比系統(tǒng),其特征在于,所述系統(tǒng)包括: 數(shù)據(jù)轉(zhuǎn)換模塊,用于將第一待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第一結(jié)構(gòu)化數(shù)據(jù),以及將第二待對(duì)比數(shù)據(jù)轉(zhuǎn)換為第二結(jié)構(gòu)化數(shù)據(jù); 數(shù)據(jù)對(duì)比模塊,用于利用分布式并行計(jì)算構(gòu)架對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分層對(duì)比,所述分層對(duì)比包括在不同層級(jí)對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息進(jìn)行對(duì)比和對(duì)所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的內(nèi)容進(jìn)行對(duì)比;若所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息不相同,則直接返回對(duì)比不一致的結(jié)果;若所述第一結(jié)構(gòu)化數(shù)據(jù)和第二結(jié)構(gòu)化數(shù)據(jù)中的數(shù)據(jù)統(tǒng)計(jì)信息和內(nèi)容都相同,則返回對(duì)比一致的結(jié)果。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述第一結(jié)構(gòu)化數(shù)據(jù)為第一庫(kù)表,所述第二結(jié)構(gòu)化數(shù)據(jù)為第二庫(kù)表;所述數(shù)據(jù)對(duì)比模塊用于判斷所述第一庫(kù)表和第二庫(kù)表中的記錄條數(shù)是否相同,若是,則對(duì)所述第一庫(kù)表和第二庫(kù)表進(jìn)行內(nèi)容對(duì)比,否則,返回對(duì)比不一致的結(jié)果。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述數(shù)據(jù)對(duì)比模塊包括: 記錄條數(shù)對(duì)比模塊,用于分別統(tǒng)計(jì)所述第一庫(kù)表中去重后的第一記錄條數(shù)和所述第二庫(kù)表中去重后的第二記錄條數(shù);獲取所述第一記錄條數(shù)和第二記錄條數(shù)相減后的絕對(duì)值;判斷所述絕對(duì)值是否為零,若為零,則所述第一結(jié)構(gòu)化數(shù)據(jù)中的記錄條數(shù)與第二結(jié)構(gòu)化數(shù)據(jù)中記錄條數(shù)相同,若不為零,則所述第一結(jié)構(gòu)化數(shù)據(jù)中的記錄條數(shù)與第二結(jié)構(gòu)化數(shù)據(jù)中的記錄條數(shù)不相同。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述數(shù)據(jù)對(duì)比模塊包括: 內(nèi)容對(duì)比模塊,用于分別對(duì)所述第一庫(kù)表和第二庫(kù)表按照字段進(jìn)行分組統(tǒng)計(jì),得到第一庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果和第二庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果;對(duì)所述第一庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果和第二庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果進(jìn)行關(guān)聯(lián)計(jì)算;若所述第一庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果和第二庫(kù)表對(duì)應(yīng)的分組統(tǒng)計(jì)結(jié)果中的分組統(tǒng)計(jì)信息相同且字段值相同,則返回對(duì)比一致的結(jié)果,否則返回對(duì)比不一致的結(jié)果。
10.根據(jù)權(quán)利要 求6至9任一項(xiàng)所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 記錄和發(fā)送模塊,用于將大數(shù)據(jù)一致性對(duì)比結(jié)果進(jìn)行記錄,生成記錄結(jié)果,將所述記錄結(jié)果發(fā)送至遠(yuǎn)程終端,所述記錄結(jié)果包括記錄條數(shù)對(duì)比失敗列表、內(nèi)容對(duì)比失敗列表和內(nèi)容對(duì)比成功列表。
【文檔編號(hào)】G06F17/30GK104036029SQ201410302021
【公開(kāi)日】2014年9月10日 申請(qǐng)日期:2014年6月27日 優(yōu)先權(quán)日:2014年6月27日
【發(fā)明者】徐天華, 賀波, 梁棟, 蔡偉崗, 張寶亮 申請(qǐng)人:深圳市騰訊計(jì)算機(jī)系統(tǒng)有限公司