本發(fā)明涉及計算機,尤其涉及一種多數(shù)據(jù)源臨期數(shù)據(jù)歸檔的方法。
背景技術(shù):
1、現(xiàn)有業(yè)務場景下,mysql和tdengine是兩種較為常見的數(shù)據(jù)庫,均存儲超過億級別的數(shù)據(jù)量,這兩種數(shù)據(jù)庫在處理大規(guī)模數(shù)據(jù)時有各自的優(yōu)勢,mysql通常用于傳統(tǒng)的關(guān)系型數(shù)據(jù)存儲和查詢;而tdengine更適用于高速度的時間序列數(shù)據(jù)存儲和分析;但對于數(shù)據(jù)存儲都存在查詢效率和成本的問題,當數(shù)據(jù)過大時會導致數(shù)據(jù)的查詢效率下降;同時對于活躍度低的數(shù)據(jù),維持其在高性能存儲中可能會帶來不必要的成本,此時從技術(shù)及成本考慮,需要將部分活躍度低的數(shù)據(jù)遷移到靜態(tài)的存儲服務。
2、目前現(xiàn)有的數(shù)據(jù)歸檔工具有很多,但是沒有一個統(tǒng)一的規(guī)整方案,不能同時兼容增量歸檔和全量歸檔;且需要手動執(zhí)行,效率低下。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中存在的缺點,而提出的一種多數(shù)據(jù)源臨期數(shù)據(jù)歸檔的方法。
2、為實現(xiàn)上述目的,本發(fā)明采用了如下技術(shù)方案:
3、一種多數(shù)據(jù)源臨期數(shù)據(jù)歸檔的方法,包括以下步驟:
4、s1:啟動data-archive-tool數(shù)據(jù)歸檔工具服務;
5、在服務器上啟動data-archive-tool數(shù)據(jù)歸檔工具服務,并部署中間件;
6、具體地,通過啟動腳本、容器化技術(shù)或系統(tǒng)服務管理工具啟動data-archive-tool數(shù)據(jù)歸檔工具服務;
7、所述中間件包括pt-archive、datax中間件;其中,pt-archive用于從關(guān)系型數(shù)據(jù)庫如mysql中進行數(shù)據(jù)歸檔;datax中間件用于在不同數(shù)據(jù)源之間進行數(shù)據(jù)移動和轉(zhuǎn)換。
8、s2:添加歸檔任務的配置信息;
9、所述歸檔任務的配置信息包括數(shù)據(jù)源、導出形式、導出周期、查詢條件等;
10、包括如下子步驟:
11、s21:指定數(shù)據(jù)源;
12、事先收集具體的數(shù)據(jù)庫類型、數(shù)據(jù)表、連接信息等;
13、所述數(shù)據(jù)庫類型包括mysql和tdengine;
14、所述連接信息包括主機名、端口號、數(shù)據(jù)庫用戶名、密碼等;
15、用戶指定歸檔的數(shù)據(jù)庫類型并提供對應的連接信息;
16、s22:配置導出形式和導出周期;
17、在配置請求中指定導出形式;
18、所述導出形式包括導出到目標數(shù)據(jù)庫中和導出為csv文件;
19、進一步地,如果導出到另一個數(shù)據(jù)庫中需要提供目標數(shù)據(jù)庫的連接信息、目標數(shù)據(jù)表信息;
20、s23:配置導出周期;
21、通過cron表達式指定歸檔任務的執(zhí)行周期,包括執(zhí)行時間和執(zhí)行頻率;
22、進一步地,根據(jù)具體的需求設(shè)置查詢條件,如果為增量歸檔,則查詢條件中限定歸檔的數(shù)據(jù)范圍;如果為全量歸檔,則查詢條件為歸檔數(shù)據(jù)源中的所有數(shù)據(jù);
23、調(diào)用data-archive-tool數(shù)據(jù)歸檔工具服務的rest接口傳遞上述配置信息,添加歸檔任務。
24、s3:定時根據(jù)歸檔配置生成相應的歸檔任務執(zhí)行腳本;
25、包括如下子步驟:
26、s31:判斷配置信息是否滿足執(zhí)行條件;
27、事先設(shè)定好各項配置信息的執(zhí)行條件、歸檔任務生成器的定時周期;
28、歸檔任務生成器拉取所有的配置信息,對于每項配置信息,歸檔任務生成器根據(jù)定時周期定期通過cron表達式判斷所述配置信息是否滿足執(zhí)行條件;如果不滿足,則提示異常,工程師修改所述配置信息直至滿足執(zhí)行條件;如果滿足,則進入步驟s32;
29、進一步地,歸檔任務執(zhí)行腳本中的導出周期為空,則需要手動執(zhí)行,data-archive-tool數(shù)據(jù)歸檔工具服務對外提供了手動執(zhí)行接口,用戶通過手動執(zhí)行接口人為執(zhí)行歸檔任務執(zhí)行腳本,此方法主要用于處理全量歸檔的情況;
30、s32:生成歸檔任務執(zhí)行腳本;
31、當配置信息都滿足執(zhí)行條件時,提取歸檔信息中的數(shù)據(jù)庫、數(shù)據(jù)表、查詢條件、導出文件等信息;
32、創(chuàng)建velocity模板文件,所述velocity模板文件中包含歸檔任務的腳本模板;
33、通過apache?velocity組件將具體的配置信息動態(tài)填充到歸檔任務的腳本模板中,生成歸檔任務執(zhí)行腳本。
34、s4:定時執(zhí)行歸檔任務并記錄執(zhí)行結(jié)果;
35、歸檔任務執(zhí)行器根據(jù)事先設(shè)定的定時周期定期從data-archive-tool數(shù)據(jù)歸檔工具服務中獲取待執(zhí)行的歸檔任務執(zhí)行腳本,歸檔任務執(zhí)行器根據(jù)歸檔任務執(zhí)行腳本生成腳本語句命令,data-archive-tool數(shù)據(jù)歸檔工具服務將生成的腳本語句命令寫入到shell文件中,通過java程序執(zhí)行shell文件,在執(zhí)行shell文件的過程中調(diào)用pt-archive、datax中間件執(zhí)行數(shù)據(jù)歸檔操作;
36、執(zhí)行完成后,pt-archive、datax中間件返回執(zhí)行結(jié)果,所述執(zhí)行結(jié)果包括執(zhí)行成功與否、執(zhí)行時間等信息;java程序?qū)?zhí)行結(jié)果更新到對應的數(shù)據(jù)庫中;
37、數(shù)據(jù)歸檔操作完成后,將歸檔后的數(shù)據(jù)打包為歸檔文件;
38、進一步地,所有的任務執(zhí)行是在后臺異步完成,data-archive-tool對外提供任務執(zhí)行查詢的接口,用戶通過接口查詢執(zhí)行結(jié)果。
39、s5:將歸檔文件手動遷移到文件服務器中存儲;
40、將歸檔文件手動遷移到文件服務器上存儲,并對遷移完成的數(shù)據(jù)進行數(shù)據(jù)清洗。
41、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為:
42、本發(fā)明提出的一種多數(shù)據(jù)源臨期數(shù)據(jù)歸檔的方法,通過啟動data-archive-tool數(shù)據(jù)歸檔工具服務,添加歸檔任務的配置信息,生成歸檔任務,執(zhí)行數(shù)據(jù)歸檔操作,數(shù)據(jù)歸檔完成后返回執(zhí)行結(jié)果、生成歸檔文件,并將歸檔文件遷移到文件服務器中存儲;消除了手動處理數(shù)據(jù)歸檔的需求,節(jié)省了時間和人力成本;根據(jù)配置任務的查詢條件決定是執(zhí)行增量歸檔還是全量歸檔,解決現(xiàn)有技術(shù)中沒有統(tǒng)一方案能兼容增量歸檔和全量歸檔的問題,可以應用于整個公司業(yè)務線所有的數(shù)據(jù)源歸檔。
1.一種多數(shù)據(jù)源臨期數(shù)據(jù)歸檔的方法,其特征在于:包括以下步驟:
2.如權(quán)利要求1所述的多數(shù)據(jù)源臨期數(shù)據(jù)歸檔的方法,其特征在于:
3.如權(quán)利要求1所述的多數(shù)據(jù)源臨期數(shù)據(jù)歸檔的方法,其特征在于:
4.如權(quán)利要求3所述的多數(shù)據(jù)源臨期數(shù)據(jù)歸檔的方法,其特征在于:
5.如權(quán)利要求1所述的多數(shù)據(jù)源臨期數(shù)據(jù)歸檔的方法,其特征在于: