一種基于數據倉庫自動化的數據遷移系統及方法
【專利摘要】本發明一種基于數據倉庫自動化的數據遷移系統及方法,包括觸發模塊、接口單元、入庫模塊、服務器模塊,其中觸發單元跟接口單元相互連接,接口單元跟入庫單元相互連接,觸發模塊、接口單元、入庫模塊均與服務器模塊相互連接。分發明通過ETL(將數據從來源端經過萃取(extract)、轉置(transform)、加載(load)至目的端的過程)定時任務自動化執行,采用主流網絡傳輸協議ftp傳輸數據文件,全程無需人工干預,真正實現了安全、可靠、有效的自動化數據遷移。
【專利說明】一種基于數據倉庫自動化的數據遷移系統及方法
【技術領域】
[0001]本發明涉及數出處理【技術領域】,特別是一種采用主流網絡傳輸協議(ftp)傳輸數據文件的數據遷移系統及方法。
【背景技術】
[0002]隨著大數據時代的到來,數據倉庫技術的迅速發展,人們將越來越多的意識到數據對企業的重要性。而系統之間的數據交互需求也越來越多。數據庫之間的數據遷移一直以來都是一個難題。傳統的數據遷移方案過多的依賴于數據庫,如:通過dblink方式打通數據庫連接。缺點如下:1、過分的依賴于數據庫,若連接中斷不能自動恢復2、長時間的數據交互增加了數據庫的負載,影響數據庫性能3、需要人工干預,工作量大。4、數據庫之間耦合度太高,安全性得不到保障。
【發明內容】
[0003]本發明的目的在于提供一種全程無需人工干預,真正實現安全、可靠、有效的自動化數據遷移系統及方法。
[0004]為達到上述目的,本發明采用如下技術方案:
一種基于數據倉庫自動化的數據遷移系統,包括觸發模塊、接口單元、入庫模塊、服務器模塊,其中觸發單元跟接口單元相互連接,接口單元跟入庫單元相互連接,觸發模塊、接口單元、入庫模塊均與服務器模塊相互連接。
[0005]在其中一個實施例中,所述觸發模塊是通過ETL定時任務自動化執行來觸發數據遷移。
在其中一個實施例中,所述接口單元包括數據文件和控制文件。
[0006]在其中一個實施例中,所述入庫模塊包括入庫日志和數據質量報告。
[0007]在其中一個實施例中,所述服務器模塊包括接口服務器、目標服務器、FTP服務器。
[0008]在其中一個實施例中,所述數據文件采用分卷傳輸,傳輸方式為FTP傳輸,傳輸模式包括并行傳輸和串行傳輸。
[0009]在其中一個實施例中,所述控制文件通過FTP傳輸方式傳輸,所述控制文件采用MD5加密,具有識別碼,所述識別碼包括記錄條數和密文信息。
[0010]本發明另一技術方案為:
一種數據遷移方法,包括以下步驟:
A:數據源端ETL任務將接口表中數據生成數據文件,并將接口表生成數據文件信息進行Md5加密,生成控制文件;
B:將數據文件組及控制文件作為一個接口單元上傳至ftp服務器;
C:目標主機ETL任務調起shell腳本,檢測ftp服務器中接口單元控制文件是否存在,如存在則表明接口單元中數據文件已全部接收,將接收到的數據文件信息進行Md5加密,與控制文件中信息進行比對,避免網絡傳輸過程中丟包導致的文件缺失,保證接收文件的完整性,進而保證數據的完整性;
D:數據文件校驗通過后進行入庫操作,ETL任務依次將數據文件入庫,入庫完成后調用稽核腳本,進行業務數據質量稽核。
[0011]步驟A中:數據源端ETL任務將接口表中數據生成數據文件,并將接口表生成數據文件信息進行Md5加密,生成控制文件包括:
Al:數據源端數據開始傳輸;
A2:在接口單元生成數據文件,數據文件根據其大小形成分卷形式的數據文件;
A3:在接口單元生成控制文件,對控制文件進行MD5加密,給控制文件標記識別碼以保證數據文件的完整性,識別碼包括數據文件記錄的條數以及密文信息;
A4:采用FTP傳輸模式將生成的數據文件、控制文件進行上傳,傳輸過程中可以采用串行傳輸和并行傳輸;
A5:在傳輸的過程中接口單元向入庫模塊發送郵件通知;
A6:完成傳輸。
[0012]在其中一個實施例中所述步驟D:數據文件校驗通過后進行入庫操作,ETL任務依次將數據文件入庫,入庫完成后調用稽核腳本,進行業務數據質量稽核包括:
Dl:入庫模塊開始接手數據文件入庫;
D2:入庫模塊檢驗控制文件是否存在,如果存在就進入下一步,如果不存在則繼續等待;
D3:在入庫模塊中對控制文件進行對比以檢驗文件是否符合要求,如果不符合要求就放棄入庫,如果符合要求就進入下一步;
D4:入庫模塊將數據文件入庫,并生成入庫日志;
D5:稽核數據文件腳本形成數據質量報告;
D6:向接口模塊發送郵件通知;
D7:完成數據入庫。
[0013]本發明實現了全程無需人工干預,真正實現了安全、可靠、有效的自動化數據遷移方案。并且通過導出數據文件進行傳輸,不依賴與特定數據庫平臺,可以兼容不同類型數據庫之間的數據遷移。其可應用于任何需要數據遷移的場景,是一種理想的自動化數據遷移解決方案。
【專利附圖】
【附圖說明】
[0014]圖1是本發明的系統組成圖。
[0015]圖2是本發明中接口單元示意圖。
[0016]圖3是本發明的工作流程示意圖。
[0017]圖4是本發明數據源端數據文件生成流程圖。
[0018]圖5是本發明目標數據庫入庫流程示意圖。
【具體實施方式】
[0019]下面結合說明書附圖對本發明的【具體實施方式】進行說明。
[0020]圖1是本發明的系統組成圖,如圖1所示,本發明一種數據遷移系統,包括觸發模塊、接口單元、入庫模塊、服務器模塊,其中觸發單元跟接口單元相互連接,接口單元跟入庫單元相互連接,觸發模塊、接口單元、入庫模塊均與服務器模塊相互連接。
[0021]所述觸發模塊是通過ETL定時任務自動化執行來觸發數據遷移。
所述入庫模塊包括入庫日志和數據質量報告。
[0022]所述服務器模塊包括接口服務器、目標服務器、FTP服務器。
[0023]所述控制文件通過FTP傳輸方式傳輸,所述控制文件采用MD5加密,具有識別碼,所述識別碼包括記錄條數和密文信息。
[0024]圖2是本發明中接口單元示意圖,從圖2可以看出所述接口單元包括數據文件和控制文件。
[0025]所述數據文件米用分卷傳輸,傳輸方式為FTP傳輸,傳輸模式包括并行傳輸和串行傳輸。
[0026]圖3是本發明的工作流程示意圖。圖3揭示了本發明一種基于數據倉庫自動化的數據遷移方法,該方法包括以下步驟:
A:數據源端ETL任務將接口表中數據生成數據文件,并將接口表生成數據文件信息進行Md5加密,生成控制文件;
B:將數據文件組及控制文件作為一個接口單元上傳至ftp服務器;
C:目標主機ETL任務調起shell腳本,檢測ftp服務器中接口單元控制文件是否存在,如存在則表明接口單元中數據文件已全部接收,將接收到的數據文件信息進行Md5加密,與控制文件中信息進行比對,避免網絡傳輸過程中丟包導致的文件缺失,保證接收文件的完整性,進而保證數據的完整性;
D:數據文件校驗通過后進行入庫操作,ETL任務依次將數據文件入庫,入庫完成后調用稽核腳本,進行業務數據質量稽核。
[0027]本發明為避免導出數據文件過大,不利于傳輸及管理,對單個文件最大數據條數進行限制,根據數據文件最大條數限制及實際表中數據量可生成多個數據文件。導出數據文件分卷的方式,更有利于網絡傳輸。可以并行傳輸,能夠充分的利用網絡帶寬,同時也減小了由于丟包導致的文件損壞需重傳文件的網絡負載。
[0028]本發明將導出文件個數,文件大小等信息按順序組合成字符串,并對其進行Md5加密,生成密文。將導出數據總記錄條數、密文信息生成控制文件,作為識別碼。數據文件及控制文件組成一個接口單元。
[0029]圖4是本發明數據源端數據文件生成流程圖。對應于圖3中的步驟A,步驟A進一步包括包括:
Al:數據源端數據開始傳輸;
A2:在接口單元生成數據文件,數據文件根據其大小形成分卷形式的數據文件;
A3:在接口單元生成控制文件,對控制文件進行MD5加密,給控制文件標記識別碼以保證數據文件的完整性,識別碼包括數據文件記錄的條數以及密文信息;
A4:采用FTP傳輸模式將生成的數據文件、控制文件進行上傳,傳輸過程中可以采用串行傳輸和并行傳輸;
A5:在傳輸的過程中接口單元向入庫模塊發送郵件通知;
A6:完成傳輸。
[0030]圖5是本發明目標數據庫入庫流程示意圖。對應于圖3中的步驟D:數據文件校驗通過后進行入庫操作,ETL任務依次將數據文件入庫,入庫完成后調用稽核腳本,進行業務數據質量稽核,其進一步包括:
Dl:入庫模塊開始接手數據文件入庫;
D2:入庫模塊檢驗控制文件是否存在,如果存在就進入下一步,如果不存在則繼續等待;
D3:在入庫模塊中對控制文件進行對比以檢驗文件是否符合要求,如果不符合要求就放棄入庫,如果符合要求就進入下一步;
D4:入庫模塊將數據文件入庫,并生成入庫日志;
D5:稽核數據文件腳本形成數據質量報告;
D6:向接口模塊發送郵件通知;
D7:完成數據入庫。
[0031]本發明通過ETL任務自動化觸發,將接口數據導出為數據文件,并根據數據文件信息生成控制文件,通過ftp傳輸到目標文件服務器,目標主機任務掃描文件,將接口組數據文件信息按照同樣的算法生成加密信息,并與控制文件中信息進行比對,避免網絡傳輸過程中丟包導致的文件缺失,保證接收文件的完整性,進而保證數據的完整性。數據文件校驗通過后調用入庫程序進行入庫,入庫后自動調用稽核腳本進行業務數據質量稽核,并生成數據質量報告。
[0032]綜上所述,以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照上述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對上述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
【權利要求】
1.一種基于數據倉庫自動化的數據遷移系統,其特征在于:包括觸發模塊、接口單元、入庫模塊、服務器模塊,其中觸發單元跟接口單元相互連接,接口單元跟入庫單元相互連接,觸發模塊、接口單元、入庫模塊均與服務器模塊相互連接。
2.根據權利要求1所述基于數據倉庫自動化的數據遷移系統,其特征在于:所述觸發模塊是通過£11定時任務自動化執行來觸發數據遷移。
3.根據權利要求1所述基于數據倉庫自動化的數據遷移系統,其特征在于:所述接口單元包括數據文件和控制文件。
4.根據權利要求1所述基于數據倉庫自動化的數據遷移系統,其特征在于:所述入庫模塊包括入庫日志和數據質量報告。
5.根據權利要求1所述基于數據倉庫自動化的數據遷移系統,其特征在于:所述服務器模塊包括接口服務器、目標服務器、冗?服務器。
6.根據權利要求3所述基于數據倉庫自動化的數據遷移系統,其特征在于:所述數據文件采用分卷傳輸,傳輸方式為冗?傳輸,傳輸模式包括并行傳輸和串行傳輸。
7.根據權利要求3所述基于數據倉庫自動化的數據遷移系統,其特征在于:所述控制文件通過傳輸方式傳輸,所述控制文件采用105加密,具有識別碼,所述識別碼包括記錄條數和密文信息。
8.一種基于數據倉庫自動化的數據遷移方法,其特征在于包括以下步驟: 八:數據源端2扎任務將接口表中數據生成數據文件,并將接口表生成數據文件信息進行1(15加密,生成控制文件; 8:將數據文件組及控制文件作為一個接口單元上傳至代?服務器; 0:目標主機£1任務調起也611腳本,檢測代?服務器中接口單元控制文件是否存在,如存在則表明接口單元中數據文件已全部接收,將接收到的數據文件信息進行1(15加密,與控制文件中信息進行比對,避免網絡傳輸過程中丟包導致的文件缺失,保證接收文件的完整性,進而保證數據的完整性; 0:數據文件校驗通過后進行入庫操作,£11任務依次將數據文件入庫,入庫完成后調用稽核腳本,進行業務數據質量稽核。
9.根據權利要求8所述基于數據倉庫自動化的數據遷移方法,其特征在于:所述數據源端£11任務將接口表中數據生成數據文件,并將接口表生成數據文件信息進行1(15加密,生成控制文件的步驟包括: 八1:數據源端數據開始傳輸; 八2:在接口單元生成數據文件,數據文件根據其大小形成分卷形式的數據文件; 八3:在接口單元生成控制文件,對控制文件進行105加密,給控制文件標記識別碼以保證數據文件的完整性,識別碼包括數據文件記錄的條數以及密文信息; 八4:采用傳輸模式將生成的數據文件、控制文件進行上傳,傳輸過程中可以采用串行傳輸和并行傳輸; 八5:在傳輸的過程中接口單元向入庫模塊發送郵件通知; 八6:完成傳輸。
10.根據權利要求8所述基于數據倉庫自動化的數據遷移方法,其特征在于:所述數據文件校驗通過后進行入庫操作,2X1任務依次將數據文件入庫,入庫完成后調用稽核腳本,進行業務數據質量稽核的步驟包括: 01:入庫模塊開始接手數據文件入庫;02:入庫模塊檢驗控制文件是否存在,如果存在就進入下一步,如果不存在則繼續等待; 03:在入庫模塊中對控制文件進行對比以檢驗文件是否符合要求,如果不符合要求就放棄入庫,如果符合要求就進入下一步; 04:入庫模塊將數據文件入庫,并生成入庫日志; 05:稽核數據文件腳本形成數據質量報告; 06:向接口模塊發送郵件通知; 07:完成數據入庫。
【文檔編號】G06F21/62GK104462562SQ201410832607
【公開日】2015年3月25日 申請日期:2014年12月29日 優先權日:2014年12月29日
【發明者】郭鳳, 楊培強, 王永軍 申請人:浪潮軟件集團有限公司