最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種基于FlinkCDC模式演進(jìn)的元數(shù)據(jù)變更捕獲方法及系統(tǒng)與流程

文檔序號:41955439發(fā)布日期:2025-05-16 14:22閱讀:7來源:國知局
本發(fā)明涉及數(shù)據(jù)處理,具體地說是一種基于flink?cdc模式演進(jìn)的元數(shù)據(jù)變更捕獲方法及系統(tǒng)。
背景技術(shù)
::1、flink?cdc旨在為用戶提供一套功能更加全面的編程接口、它是一個基于流的數(shù)據(jù)集成工具。該工具使得用戶能夠以yaml配置文件的形式,優(yōu)雅地定義其etl流程,并協(xié)助用戶自動化生成定制化的flink算子并且提交flink作業(yè)。2、如附圖1所示的flink?cdc主要由數(shù)據(jù)源算子、轉(zhuǎn)換算子(transformer)、路由算子(router)、數(shù)據(jù)目標(biāo)算子組成。數(shù)據(jù)源算子讀取上游mysql、postgresql、kaiwudb、sqlserver等關(guān)系數(shù)據(jù)庫的數(shù)據(jù)變更日志生成元數(shù)據(jù)變更事件和數(shù)據(jù)變更事件,可選的將時間發(fā)送至轉(zhuǎn)換、路由算子中,最終將事件傳遞到數(shù)據(jù)目標(biāo)算子中,數(shù)據(jù)目標(biāo)算子根據(jù)事件類型將元數(shù)據(jù)和數(shù)據(jù)下沉到數(shù)據(jù)倉庫中;flink?cdc模式演進(jìn)特性保證并行執(zhí)行作業(yè)時,模式注冊中心保存的模式與業(yè)務(wù)數(shù)據(jù)保持一致,確保下游算子可準(zhǔn)確執(zhí)行,最終完成數(shù)據(jù)集成任務(wù)。3、在實際數(shù)據(jù)集成任務(wù)中,由于上游業(yè)務(wù)數(shù)據(jù)庫版本、業(yè)務(wù)系統(tǒng)安全等方面原因無法開啟數(shù)據(jù)庫變更日志捕獲特性,因此通過jdbc通用接口讀取到數(shù)據(jù)和元數(shù)據(jù)的方案成為該場景下的較優(yōu)方案。為了支撐在實際數(shù)據(jù)集成任務(wù)中,上游業(yè)務(wù)數(shù)據(jù)庫不能開啟數(shù)據(jù)庫變更日志捕獲特性的場景中,使用jdbc通用接口讀取到數(shù)據(jù)和元數(shù)據(jù)的方案。需要設(shè)計實現(xiàn)一種讀取kafka集群中消息、生成數(shù)據(jù)變更和元數(shù)據(jù)變更事件并將其發(fā)送到flink作業(yè)的下游算子的元數(shù)據(jù)變更捕獲方法。技術(shù)實現(xiàn)思路1、本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種基于flink?cdc模式演進(jìn)的元數(shù)據(jù)變更捕獲方法及系統(tǒng),能夠降低業(yè)務(wù)數(shù)據(jù)集成到數(shù)據(jù)倉庫的實施難度,提高實施效率。2、本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:3、一種基于flink?cdc模式演進(jìn)的元數(shù)據(jù)變更捕獲方法,該方法的實現(xiàn)包括kafka數(shù)據(jù)源組件、kafka?connect?jdbc記錄反序列化器、內(nèi)存事件存儲器以及zookeeper事件存儲器,4、kafka數(shù)據(jù)源工廠根據(jù)數(shù)據(jù)源選項參數(shù)列表中定義的參數(shù)及它們的值創(chuàng)建獲得kafka數(shù)據(jù)源組件;kafka數(shù)據(jù)源組件負(fù)責(zé)與kafka集群指定的主題交互,根據(jù)選項參數(shù)指定的分區(qū)起始偏移量讀取kafka消息記錄、維護消費者組及偏移量,保證至少一次或精確一次的語義;負(fù)責(zé)創(chuàng)建kafka?connect?jdbc記錄反序列化組件并將kafka消息記錄傳遞給它;根據(jù)選項參數(shù)指定的事件存儲器類型創(chuàng)建內(nèi)存事件存儲器或zookeeper事件存儲器。5、進(jìn)一步的,所述kafka?connect?jdbc記錄反序列化器,根據(jù)選項參數(shù)指定的tableid解析方式解析主題名稱或kafka消息記錄中的header信息生成tableid;6、將接收到的kafka記錄反序列化為業(yè)務(wù)數(shù)據(jù)和元數(shù)據(jù)schema;將元數(shù)據(jù)schema傳遞到事件存儲器中進(jìn)一步處理;7、根據(jù)業(yè)務(wù)數(shù)據(jù)生成數(shù)據(jù)變更(插入)事件同時將其傳遞到下游算子(轉(zhuǎn)換算子、路由算子或數(shù)據(jù)目標(biāo)算子)中。8、進(jìn)一步的,所述tableid包括數(shù)據(jù)庫名稱、模式名稱、數(shù)據(jù)表名稱。9、進(jìn)一步的,所述內(nèi)存事件存儲器,保存元數(shù)據(jù)schema,同時將新接收到的schema與保存的schema進(jìn)行比較,根據(jù)差異情況生成元數(shù)據(jù)變更事件,如建表事件、列增加事件、列刪除事件、列類型變更事件,同時將其傳遞到schemaoperator算子中。10、內(nèi)存事件存儲器即將元數(shù)據(jù)schema保存在內(nèi)存中,不會在flink作業(yè)的節(jié)點中共享,因此僅在測試時使用。11、進(jìn)一步的,所述zookeeper事件存儲器啟動后,將創(chuàng)建參數(shù)列表中指定的flinkcdc作業(yè)名稱作為根znode臨時節(jié)點(/{flink_cdc_job_name});tableid(數(shù)據(jù)庫名稱、模式名稱、數(shù)據(jù)表名稱)連接后作為znode臨時節(jié)點名稱(/{flink_cdc_job_name}/{table_id}),將其對應(yīng)的元數(shù)據(jù)schema反序列化為二進(jìn)制數(shù)據(jù)作為值保存在該znode中;同時支持讀取該znode節(jié)點二進(jìn)制數(shù)據(jù)并反序列化為元數(shù)據(jù)schema的方法;將znode臨時節(jié)點名稱lock(/{flink_cdc_job_name}/{table_id}/lock)作為表級分布式鎖。12、進(jìn)一步的,建表事件的程序流程如下:13、首先判斷該表schema是否已經(jīng)保存在zookeeper的“/{flink_cdc_job_name}/{table_id}”znode臨時節(jié)點中,如果已經(jīng)存在,在內(nèi)存中記錄該建表事件已經(jīng)發(fā)送;否則獲取該表分布式鎖后生成該建表事件并發(fā)送建表事件到下游schemaoperator算子中;14、若獲取該表分布式鎖超時即有其他flink?task?slot獲得該分布式鎖,重新判斷該表schema是否已經(jīng)持久化;15、最后釋放該表分布式鎖。16、進(jìn)一步的,其他元數(shù)據(jù)變更事件的程序流程如下:17、首先該表的schema發(fā)生改變的前提下,獲取該表分布式鎖后遍歷元數(shù)據(jù)生成schema變更事件并發(fā)送變更事件后持久化該表新的schema;18、若獲取該表分布式鎖超時,即有其他flink?task?slot獲得該分布式鎖,重新讀取zookeeper中的schema并重新判斷是否發(fā)生schema變更;19、最后釋放該表分布式鎖;20、其中,所述schema變更事件包括建表事件、列增加事件、列刪除事件、列類型變更事件。21、本發(fā)明還要求保護一種基于flink?cdc模式演進(jìn)的元數(shù)據(jù)變更捕獲系統(tǒng),包括kafka數(shù)據(jù)源組件、kafka?connect?jdbc記錄反序列化器、內(nèi)存事件存儲器以及zookeeper事件存儲器;22、kafka數(shù)據(jù)源組件負(fù)責(zé)創(chuàng)建kafka?connect?jdbc記錄反序列化組件并將kafka消息記錄傳遞給它;根據(jù)選項參數(shù)指定的事件存儲器類型創(chuàng)建內(nèi)存事件存儲器或zookeeper事件存儲器;23、該系統(tǒng)具體通過上述的方法實現(xiàn)基于flink?cdc模式演進(jìn)的元數(shù)據(jù)變更捕獲。24、本發(fā)明還要求保護一種基于flink?cdc模式演進(jìn)的元數(shù)據(jù)變更捕獲裝置,包括:至少一個存儲器和至少一個處理器;25、所述至少一個存儲器,用于存儲機器可讀程序;26、所述至少一個處理器,用于調(diào)用所述機器可讀程序,實現(xiàn)上述的方法。27、本發(fā)明還要求保護一種計算機可讀介質(zhì),所述計算機可讀介質(zhì)上存儲有計算機指令,所述計算機指令在被處理器執(zhí)行時,能夠?qū)崿F(xiàn)上述的方法。28、本發(fā)明的一種基于flink?cdc模式演進(jìn)的元數(shù)據(jù)變更捕獲方法及系統(tǒng)與現(xiàn)有技術(shù)相比,具有以下有益效果:29、本發(fā)明設(shè)計實現(xiàn)的元數(shù)據(jù)變更捕獲方法在上游業(yè)務(wù)數(shù)據(jù)庫不能開啟數(shù)據(jù)庫變更日志捕獲特性的場景中,將通過jdbc通用接口讀取到業(yè)務(wù)數(shù)據(jù)和元數(shù)據(jù)生成數(shù)據(jù)變更和元數(shù)據(jù)變更事件發(fā)送到flink?cdc作業(yè)下游相應(yīng)的算子中,以便最終完成數(shù)據(jù)集成任務(wù),該裝置可以降低業(yè)務(wù)數(shù)據(jù)集成到數(shù)據(jù)倉庫的實施難度,提高實施效率。當(dāng)前第1頁12當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1