本發明涉及數據處理,具體而言,涉及一種數據文件歸檔方法和系統。
背景技術:
1、隨著銀行業務不斷發展和數據庫系統持續運行,大量的歷史數據(包括文件、數據庫記錄、日志等)會不斷積累。其中,部分數據無需頻繁訪問,但仍然需要保存備用。然而,將歷史數據與新增數據保存在同一數據庫系統中會導致磁盤空間不足、性能下降以及數據備份困難等問題。因此,歷史數據歸檔技術應運而生。歷史數據歸檔技術的主要目標是將無需頻繁訪問的數據從主要存儲環境移動或復制到次要存儲環境(如磁帶、云存儲或較低速度的磁盤),從而釋放主要存儲資源,提高數據庫系統的性能和可擴展性。銀行為了保證數據安全和發揮數據效能,將系統數據及外部數據統一存儲到數據倉庫,使用數據時需要將待使用的數據歸檔到歸檔平臺進行存儲,以便加工使用。
2、傳統的歷史數據歸檔技術采用批量歸檔方式,定期或者等到歷史數據量達到一定規模后再進行歸檔,對于時效性要求較低。這種定期任務只能在預定時間執行歸檔程序,歸檔時間間隔期間產生的數據無法歸檔,導致該時間段內的數據無法利用;另外,歸檔時間間隔期間會堆積大量的歷史數據,在進行歸檔時需要耗費大量時間、占用大量系統資源(如i/o資源),影響系統性能。此外,傳統歷史數據歸檔即使采用t+1歷史數據歸檔方式,即當天晚上對白天產生的數據進行歸檔,這種數據歸檔方式不僅不能滿足業務場景對數據時效性的要求,并且容易出現人為操作失誤。
技術實現思路
1、本發明的目的在于提供一種自動化實時的歷史數據歸檔方法和系統,解決傳統的歷史數據歸檔技術存在數據利用滯后、歸檔耗時長、占用大量i/o資源和人為操作失誤率高的問題。
2、本發明通過下述技術方案實現:
3、一方面,提供一種數據文件歸檔方法,包括以下步驟:在數據中心或云平臺上建立流式數據處理平臺;為指定目錄下的每一個待歸檔數據文件配置歸檔信息;所述歸檔信息包括:歸檔目標類型、歸檔生命周期、歸檔條件、文件名和存儲介質;在所述流式數據處理平臺上執行以下步驟:掃描所述指定目錄下的所有待歸檔數據文件;將掃描到的每一個待歸檔數據文件映射成為對應的data文件、check文件和ddl文件,并在數據庫表中添加對應的待歸檔數據文件記錄;所述待歸檔數據文件記錄中包含data文件的路徑信息、check文件的路徑信息和ddl文件的路徑信息;實時地讀取所述數據庫表,當所述數據庫表中出現新的待歸檔數據文件記錄時,執行步驟s1和步驟s2;其中,步驟s1:讀取所述新的待歸檔數據文件記錄對應的歸檔信息;步驟s2:根據歸檔信息中的歸檔條件將所述歸檔信息中的文件名與所述新的待歸檔數據文件記錄對應的數據文件的文件名進行比較,若相同則將所述新的待歸檔數據文件記錄對應的數據文件進行歸檔存入所述存儲介質中;若不同則報錯,并將報錯記錄到日志中。
4、進一步的,實時地讀取所述數據庫表之前,還包括以下步驟:從數據源采集待歸檔數據文件;將采集的待歸檔數據文件緩存至消息隊列。
5、進一步的,所述步驟s1之后,還包括以下步驟:校驗check文件在歸檔前后是否一致,校驗data文件在歸檔前后是否一致,若check文件或data文件在歸檔前后不一致,則中斷歸檔流程,若check文件和data文件在歸檔前后均一致,則校驗ddl文件在歸檔前后是否一致,若新增字段在末尾,則繼續歸檔流程,若有新增字段不在末尾,則中斷歸檔流程;創建臨時表,并將data文件中的數據加載至所述臨時表中,將數據加載完成后的臨時表中的數據條數與check中的數據條數進行比對,將臨時表中的數據記載到所述數據庫表中;將執行記錄寫入歸檔系統的數據庫的日志操作表中,生成操作日志。
6、進一步的,數據文件歸檔過程中,還包括以下步驟:對數據文件的歸檔進度進行監控;所述歸檔進度包括:歸檔速度、歸檔數量、丟失的數據文件和重復歸檔的數據文件;對存儲介質狀態進行監控;所述存儲介質狀態包括:存儲容量、使用率、硬件故障和網絡故障;若數據文件歸檔過程中出現數據文件丟失,對丟失的數據文件進行重新歸檔或補充;生成歸檔報告;所述歸檔報告中包含歸檔進度監控結果、存儲介質監控結果和異常處理結果;所述異常處理結果包括:數據文件丟失處理結果、硬件故障處理結果和網絡故障處理結果。
7、進一步的,數據文件歸檔之后,還包括以下步驟:進行歸檔數據備份;所述歸檔數據備份包括:備份方式、備份周期、備份存儲介質、備份數據驗證和備份恢復;所述備份方式包括:全量備份、增量備份或選定字段備份;所述備份存儲介質包括:固態硬盤;所述備份數據驗證包括:可讀性驗證和一致性驗證;所述備份恢復包括:存儲數據損壞或數據文件不可用時提供數據恢復。
8、另一方面,提供一種數據文件歸檔系統,包括:
9、平臺建立模塊,用于在數據中心或云平臺上建立流式數據處理平臺;
10、信息配置模塊,用于為指定目錄下的每一個待歸檔數據文件配置歸檔信息;所述歸檔信息包括:歸檔目標類型、歸檔生命周期、歸檔條件、文件名和存儲介質;
11、文件掃描模塊,用于掃描所述指定目錄下的所有待歸檔數據文件;
12、文件映射模塊,用于將掃描到的每一個待歸檔數據文件映射成為對應的data文件、check文件和ddl文件,并在數據庫表中添加對應的待歸檔數據文件記錄;所述待歸檔數據文件記錄中包含data文件的路徑信息、check文件的路徑信息和ddl文件的路徑信息;
13、數據庫表讀取模塊,用于實時地讀取所述數據庫表,當所述數據庫表中出現新的待歸檔數據文件記錄時,控制文件歸檔模塊工作;
14、歸檔信息讀取模塊,用于讀取所述新的待歸檔數據文件記錄對應的歸檔信息;
15、數據分析模塊,用于根據歸檔信息中的歸檔條件將所述歸檔信息中的文件名與所述新的待歸檔數據文件記錄對應的數據文件的文件名進行比較,若相同則將所述新的待歸檔數據文件記錄對應的數據文件進行歸檔存入所述存儲介質中;若不同則報錯,并將報錯記錄到日志中;
16、數據采集模塊,用于從數據源采集待歸檔數據文件;
17、數據緩存模塊,用于將采集的待歸檔數據文件緩存至消息隊列。
18、第一校驗模塊,用于校驗check文件在歸檔前后是否一致,校驗data文件在歸檔前后是否一致,若check文件或data文件在歸檔前后不一致,則中斷歸檔流程,若check文件和data文件在歸檔前后均一致,則校驗ddl文件在歸檔前后是否一致,若新增字段在末尾,則繼續歸檔流程,若有新增字段不在末尾,則中斷歸檔流程;
19、第二校驗模塊,用于創建臨時表,并將data文件中的數據加載至所述臨時表中,將數據加載完成后的臨時表中的數據條數與check中的數據條數進行比對,將臨時表中的數據記載到所述數據庫表中;
20、日志生成模塊,用于將執行記錄寫入歸檔系統的數據庫的數據庫的日志操作表中,生成操作日志。
21、第一監控模塊,用于對數據文件的歸檔進度進行監控;所述歸檔進度包括:歸檔速度、歸檔數量、丟失的數據文件和重復歸檔的數據文件;
22、第二監控模塊,用于對存儲介質狀態進行監控;所述存儲介質狀態包括:存儲容量、使用率、硬件故障和網絡故障;
23、故障處理模塊,用于數據文件歸檔過程中出現數據文件丟失,對丟失的數據文件進行重新歸檔或補充;
24、報告生成模塊,用于生成歸檔報告;所述歸檔報告中包含歸檔進度監控結果、存儲介質監控結果和異常處理結果;所述異常處理結果包括:數據文件丟失處理結果、硬件故障處理結果和網絡故障處理結果。
25、數據備份模塊,用于進行歸檔數據備份;所述歸檔數據備份包括:備份方式、備份周期、備份存儲介質、備份數據驗證和備份恢復;所述備份方式包括:全量備份、增量備份或選定字段備份;所述備份存儲介質包括:固態硬盤;所述備份數據驗證包括:可讀性驗證和一致性驗證;所述備份恢復包括:存儲數據損壞或數據文件不可用時提供數據恢復。
26、本發明與現有技術相比,具有如下的優點和有益效果:
27、在企業或組織的數據中心或云平臺上建立流式數據處理平臺,利用流式數據處理技術實現歷史數據進入數據倉庫就實時歸檔——通過對流式數據處理平臺進行配置,設置自動化歸檔流程,根據自動化歸檔流程,將生產和業務數據實時歸檔到指定的歸檔存儲介質中,可實現實現歷史數據歸檔全流程自動化,避免人為操作干擾,提高數據歸檔的準確性和可靠性,以及避免數據大量堆積導致歸檔時間長和數據延遲問題,突破傳統批量數據處理的延遲性,能夠充分利用數據的時效性,深度挖掘和發揮數據的業務價值;此外,使用實時歸檔避免系統短時間內執行大量i/o操作,系統總體保持高效率運轉。