本發(fā)明涉及大數(shù)據(jù)采集,特別涉及一種基于data?x的hudi數(shù)據(jù)同步的方法。
背景技術(shù):
1、大數(shù)據(jù)背景下,數(shù)據(jù)類型繁多,內(nèi)容繁雜、巨大,且處理速度比較快,這是傳統(tǒng)信息化數(shù)據(jù)所不具備的特征。特別是隨著互聯(lián)網(wǎng)等信息技術(shù)的發(fā)展,大數(shù)據(jù)已經(jīng)在各行各業(yè)中得到了廣泛的應(yīng)用,并充分發(fā)揮著自己的優(yōu)勢。然而,隨著數(shù)據(jù)價值的深入挖掘,數(shù)據(jù)中的隱私敏感信息也面臨著被泄露和濫用的風(fēng)險,所以加強對敏感數(shù)據(jù)的識別和保護已經(jīng)成為數(shù)據(jù)安全領(lǐng)域刻不容緩要解決的問題。
2、據(jù)監(jiān)測,全球數(shù)據(jù)量大約每兩年翻一番。大數(shù)據(jù)的到來,引領(lǐng)了一場技術(shù)革命,促使大數(shù)據(jù)、云服務(wù)技術(shù)的迅猛發(fā)展。面對海量的數(shù)據(jù)在存儲、挖掘、分析等方面的應(yīng)用,用戶對大數(shù)據(jù)安全性的需求也愈發(fā)強烈,數(shù)據(jù)安全扮演著愈來愈重要的角色。如何更安全、及時的保護數(shù)據(jù)隱私和敏感數(shù)據(jù)成為業(yè)界越來越關(guān)注的挑戰(zhàn)點。
3、data?x是阿里云開源的數(shù)據(jù)同步工具,默認支持多種數(shù)據(jù)源之間的數(shù)據(jù)同步,但是目前還不支持實時數(shù)倉(如hudi)和其他數(shù)據(jù)源之間的數(shù)據(jù)同步。
4、為了在data?x中實現(xiàn)實時數(shù)倉hudi和關(guān)系數(shù)據(jù)庫之間的數(shù)據(jù)同步,本發(fā)明提出了一種基于data?x的hudi數(shù)據(jù)同步的方法。
技術(shù)實現(xiàn)思路
1、本發(fā)明為了彌補現(xiàn)有技術(shù)的缺陷,提供了一種簡單高效的基于data?x的hudi數(shù)據(jù)同步的方法。
2、本發(fā)明是通過如下技術(shù)方案實現(xiàn)的:
3、一種基于data?x的hudi數(shù)據(jù)同步的方法,其特征在于:包括以下步驟:
4、步驟s1、編寫package.xml文件;package.xml文件是data?x工具的framework框架掃描識別插件plugin的配置文件;
5、所述package.xml文件根據(jù)writer-plugin包的路徑和plugin.json文件的路徑進行配置;
6、步驟s2、編寫plugin.json文件,在plugin.json文件中填寫插件plugin的名稱name、class路徑、描述description與開發(fā)者developer信息,用以向framework框架說明插件plugin的基本信息;
7、步驟s3、基于java語言編寫hudiwriter.java腳本,用以準備用于寫入數(shù)據(jù)的對象或數(shù)據(jù)流,開始寫操作,并刷新緩存;
8、步驟s4、編寫輔助支撐類hudiwritererrorcode.java文件,用以捕捉數(shù)據(jù)傳輸過程中產(chǎn)生的異常,進行報錯信息統(tǒng)一處理后輸出到日志中;
9、步驟s5、data?x工具的framework框架通過對應(yīng)的預(yù)留接口讀取package.xml文件、plugin.json文件,hudiwriter.java腳本和hudiwritererrorcode.java文件,進而實現(xiàn)數(shù)據(jù)源之間的數(shù)據(jù)抽取、轉(zhuǎn)換、加載與異常報錯。
10、所述步驟s3中,hudiwriter.java腳本的實現(xiàn)邏輯如下:
11、1)writer初始化,準備用于寫入數(shù)據(jù)的對象或數(shù)據(jù)流(writer),所有二次開發(fā)插件plugin均繼承datax工具的寫入數(shù)據(jù)的對象或數(shù)據(jù)流(writer);
12、2)開始寫操作startwriter,開始處理數(shù)據(jù),進行數(shù)據(jù)格式的轉(zhuǎn)換,拼裝寫入數(shù)據(jù)源的基本信息,并將處理后的數(shù)據(jù)寫入hudi數(shù)據(jù)源;
13、所述數(shù)據(jù)源的基本信息包括數(shù)據(jù)源類型、數(shù)據(jù)表與字段。
14、3)刷新緩存freshcache,數(shù)據(jù)在framework框架中以數(shù)據(jù)流的形式進行傳遞,根據(jù)數(shù)據(jù)傳輸?shù)男枨?新增數(shù)據(jù)、更新數(shù)據(jù))將數(shù)據(jù)流按照新增或更新的方式寫入到hudi數(shù)據(jù)源中。
15、一種基于data?x的hudi數(shù)據(jù)同步的系統(tǒng),包括:
16、package.xml文件編寫模塊,用于編寫package.xml文件,對data?x工具的framework框架掃描識別插件plugin進行配置;
17、所述package.xml文件根據(jù)writer-plugin包的路徑和plugin.json文件的路徑進行配置;
18、plugin.json文件編寫模塊,用于編寫plugin.json文件,在plugin.json文件中填寫插件plugin的名稱name、class路徑、描述description與開發(fā)者developer信息,用以向framework框架說明插件plugin的基本信息;
19、java腳本編寫模塊,用于基于java語言編寫hudiwriter.java腳本,準備用于寫入數(shù)據(jù)的對象或數(shù)據(jù)流,開始寫操作,并刷新緩存;
20、輔助支撐類文件編寫模塊,用于編寫輔助支撐類hudiwritererrorcode.java文件,捕捉數(shù)據(jù)傳輸過程中產(chǎn)生的異常,進行報錯信息統(tǒng)一處理后輸出到日志中;
21、data?x工具的framework框架接口,用于讀取package.xml文件、plugin.json文件,hudiwriter.java腳本和hudiwritererrorcode.java文件,進而實現(xiàn)數(shù)據(jù)源之間的數(shù)據(jù)抽取、轉(zhuǎn)換、加載與異常報錯。
22、所述hudiwriter.java腳本的實現(xiàn)邏輯如下:
23、1)writer初始化,準備用于寫入數(shù)據(jù)的對象或數(shù)據(jù)流(writer),所有二次開發(fā)插件plugin均繼承datax工具的寫入數(shù)據(jù)的對象或數(shù)據(jù)流(writer);
24、2)開始寫操作startwriter,開始處理數(shù)據(jù),進行數(shù)據(jù)格式的轉(zhuǎn)換,拼裝寫入數(shù)據(jù)源的基本信息,并將處理后的數(shù)據(jù)寫入hudi數(shù)據(jù)源;
25、所述數(shù)據(jù)源的基本信息包括數(shù)據(jù)源類型、數(shù)據(jù)表與字段。
26、3)刷新緩存freshcache,數(shù)據(jù)在framework框架中以數(shù)據(jù)流的形式進行傳遞,根據(jù)數(shù)據(jù)傳輸?shù)男枨?新增數(shù)據(jù)、更新數(shù)據(jù))將數(shù)據(jù)流按照新增或更新的方式寫入到hudi數(shù)據(jù)源中。
27、一種基于data?x的hudi數(shù)據(jù)同步的設(shè)備,其特征在于:包括存儲器和處理器;所述存儲器用于存儲計算機程序,所述處理器用于執(zhí)行所述計算機程序時實現(xiàn)上述的方法步驟。
28、一種可讀存儲介質(zhì),其特征在于:所述可讀存儲介質(zhì)上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述的方法步驟。
29、本發(fā)明的有益效果是:該基于data?x的hudi數(shù)據(jù)同步的方法,通過對data?x工具進行插件二次開發(fā),實現(xiàn)了hudi和關(guān)系庫之間的數(shù)據(jù)同步,縱向延伸了data?x工具在大數(shù)據(jù)集成領(lǐng)域的應(yīng)用范圍。
1.一種基于data?x的hudi數(shù)據(jù)同步的方法,其特征在于:包括以下步驟:
2.根據(jù)權(quán)利要求1所述的基于data?x的hudi數(shù)據(jù)同步的方法,其特征在于:所述步驟s3中,hudiwriter.java腳本的實現(xiàn)邏輯如下:
3.根據(jù)權(quán)利要求2所述的基于data?x的hudi數(shù)據(jù)同步的方法,其特征在于:所述數(shù)據(jù)源的基本信息包括數(shù)據(jù)源類型、數(shù)據(jù)表與字段。
4.一種基于data?x的hudi數(shù)據(jù)同步的系統(tǒng),其特征在于:包括:
5.根據(jù)權(quán)利要求4所述的基于data?x的hudi數(shù)據(jù)同步的系統(tǒng),其特征在于:所述hudiwriter.java腳本的實現(xiàn)邏輯如下:
6.根據(jù)權(quán)利要求5所述的基于data?x的hudi數(shù)據(jù)同步的系統(tǒng),其特征在于:所述數(shù)據(jù)源的基本信息包括數(shù)據(jù)源類型、數(shù)據(jù)表與字段。
7.一種基于data?x的hudi數(shù)據(jù)同步的設(shè)備,其特征在于:包括存儲器和處理器;所述存儲器用于存儲計算機程序,所述處理器用于執(zhí)行所述計算機程序時實現(xiàn)如權(quán)利要求1至3任意一項所述的方法。
8.一種可讀存儲介質(zhì),其特征在于:所述可讀存儲介質(zhì)上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至3任意一項所述的方法。