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