System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及大數據的數據處理,特別涉及一種基于多路復用器的數據整庫同步方法、裝置、設備及介質。
技術介紹
1、企業經過多年運營和資產沉淀,已積累成千上萬的數據資產,現階段數字化轉型,首要進行數據集成,將業務庫數據同步導入到數據平臺。從業務庫到數據平臺進行存量數據同步,目前,傳導數據的工具有sqoop、datax等,它們在將單表同步到hive場景應用方面已趨于成熟。
2、隨著數據湖技術如hudi的興起,越來越多的企業將業務表數據按數據湖表格式寫入,以實現大規模表的upsert語義、準時寫、增量讀等特性。單表入湖是指利用jdbc技術從業務庫表抽取數據,經過分區分桶、排序、批量寫入等步驟寫入hudi表。在企業批流一體實踐過程中,一般使用flink分布式計算引擎建立同步鏈路,即數據流向為:從業務庫到flink,再到hudi。整庫入湖是指僅通過一個flink任務就能同步業務庫的多張表甚至整庫的表到hudi。相比單表入湖,整庫入湖技術能減少用戶的重復操作,節省對接時間,從而加速數據落地和應用。
3、然而,整庫入湖過程通常存在以下問題:
4、存量大表數據同步問題。使用哈希取模方法處理字符串主鍵表會導致全表掃描,對數據庫造成較大壓力。
5、多個源表數據同步問題。一個存量同步任務拉取一張表需要數個連接,多張表則需要成倍或更多連接,分區表情況下則需要更多,而數據庫連接資源十分寶貴;一個增量同步任務通過消費kafkatopic處理增量數據,當不同表數據在不同topic時需要使用多個同步任務消費不同的k
6、數據處理階段問題。flink引擎使用slot資源對數據進行處理,通常一個slot僅處理指定表任務,多個源表場景使用過多slot造成計算資源浪費。
技術實現思路
1、本申請實施例的目的在于提出一種基于多路復用器的數據整庫同步方法、裝置、設備及介質,以解決大表數據及多個源表數據同步的問題。
2、為了解決上述技術問題,本申請實施例提供一種多路復用器數據整庫同步方法,采用了如下所述的技術方案,包括:
3、對整庫中的每個源表配置輸入結構,在flink分布式計算框架內配置多路復用器,并將每個源表對應的所述輸入結構添加到所述多路復用器中;
4、利用所述多路復用器生成分片集合,并根據所述分片集合構造分片分配器,所述分片集合包括多個源表的全部分片;
5、根據所述多路復用器構造源數據算子,利用所述源數據算子獲取執行任務圖,并將所述執行任務圖傳輸到管理節點;
6、在計算節點向所述管理節點請求分片時,所述管理節點根據所述執行任務圖向所述計算節點請求分配資源槽,并利用所述分片分配器將分片分配到所述計算節點中的多個資源槽進行計算,將多個源表同步到數據湖。
7、進一步的,所述對整庫中的每個源表配置輸入結構,在flink分布式計算框架內配置多路復用器,并將每個源表對應的所述輸入結構添加到多路復用器中,包括:
8、讀取整庫配置信息;
9、通過目錄表識別獲取整庫的源表信息;
10、將所述多路復用器配置在所述flink分布式計算框架的輸入前端;
11、利用所述多路復用器對輸入到述flink分布式計算框架的多個源表進行集中分片。
12、進一步的,所述利用所述多路復用器生成分片集合,并根據所述分片集合構造分片分配器,包括:
13、利用所述多路復用器對輸入的單個源表進行分片,生成子分片集合;
14、對所述子分片集合進行打寬處理,得到大片集合;
15、匯總所有源表的大片集合,得到所述分片集合;
16、利用所述分片集合構造所述分片分配器。
17、進一步的,所述利用所述源數據算子獲取執行任務圖,包括:
18、所述源數據算子從所述分片集合中獲取多個源表對應的子分片,利用所述多個源表對應的子分片獲取子任務;
19、利用獲取的多個所述子任務構建執行任務圖。
20、進一步的,所述利用所述分片分配器將分片分配到所述計算節點中的多個資源槽進行計算,將多個源表同步到數據湖,包括:
21、所述資源槽依次與所述子任務中的子分片對應源表的數據庫建立連接;
22、對所述源表進行sql查詢,獲取所述子分片的數據信息;
23、將所述子分片的數據信息轉換為所述flink分布式計算框架內部的行數據結構,輸出子表;
24、根據源表的字段名,將子分片數據寫入對應的數據流,將多個源表同步到數據湖。
25、進一步的,所述利用所述分片分配器將分片分配到所述計算節點中的多個資源槽進行計算,將多個源表同步到數據湖,包括:
26、所述資源槽同時并行與所述子任務中的子分片對應源表的數據庫建立連接;
27、并行分別對所述源表進行sql查詢,獲取對應的子分片的數據信息;
28、將各子分片的數據信息轉換為所述flink分布式計算框架內部的行數據結構,分別輸出子表;
29、根據源表的字段名,將子分片數據寫入對應的數據流,將多個源表同步到數據湖。
30、為了解決上述問題,本申請實施例還提出了一種基于多路復用器的數據整庫同步裝置,采用所述的多路復用器數據整庫同步方法,包括:
31、配置模塊,用于對整庫中的每個源表配置輸入結構,在flink分布式計算框架內配置多路復用器,并將每個源表對應的所述輸入結構添加到所述多路復用器中;
32、生成模塊,用于利用所述多路復用器生成分片集合,所述分片集合包括多個源表的全部分片,并根據所述分片集合構造分片分配器;
33、獲取模塊,用于根據所述多路復用器構造源數據算子,利用所述源數據算子獲取執行任務圖,并將所述執行任務圖傳輸到管理節點;
34、同步模塊,用于在計算節點向所述管理節點請求分片時,所述管理節點根據所述執行任務圖向所述計算節點請求分配資源槽,并利用所述分片分配器將分片分配到所述計算節點中的多個資源槽進行計算,將多個源表同步到數據湖。
35、進一步的,所述同步模塊包括:
36、連接單元,用于所述資源槽依次與所述子任務中的子分片對應源表的數據庫建立連接;
37、查詢單元,用于對所述源表進行sql查詢,獲取所述子分片的數據信息;
38、轉換單元,用于將所述子分片的數據信息轉換為所述flink分布式計算框架內部的行數據結構,輸出子表;
39、同步單元,用于根據源表的字段名,將子分片數據寫入對應的數據流,將多個源表同步到數據湖。
40、為了解決上述問題,本申請實施例還提出了一種計算機設備,包括存儲器和處理器,所述存儲器中存儲有計算本文檔來自技高網...
【技術保護點】
1.一種基于多路復用器的數據整庫同步方法,特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述對整庫中的每個源表配置輸入結構,在Flink分布式計算框架內配置多路復用器,并將每個源表對應的所述輸入結構添加到所述多路復用器中,包括:
3.根據權利要求1所述的方法,其特征在于,所述利用所述多路復用器生成分片集合,并根據所述分片集合構造分片分配器,包括:
4.根據權利要求3所述的方法,其特征在于,所述利用所述源數據算子獲取執行任務圖,包括:
5.根據權利要求4所述的方法,其特征在于,所述利用所述分片分配器將分片分配到所述計算節點中的多個資源槽進行計算,將多個源表同步到數據湖,包括:
6.根據權利要求4所述的方法,其特征在于,所述利用所述分片分配器將分片分配到所述計算節點中的多個資源槽進行計算,將多個源表同步到數據湖,包括:
7.一種基于多路復用器的數據整庫同步裝置,采用權利要求1-6任一項所述的基于多路復用器的數據整庫同步方法,其特征在于,包括:
8.根據權利要求7所述的基于多路復用器的數據
9.一種計算機設備,其特征在于,包括存儲器和處理器,所述存儲器中存儲有計算機可讀指令,所述處理器執行如權利要求1至6中任一項所述的基于多路復用器的數據整庫同步方法的步驟。
10.一種計算機可讀存儲介質,所述計算機可讀存儲介質上存儲有計算機可讀指令,其特征在于,所述計算機可讀指令被處理器執行時實現如權利要求1至6中任一項所述的基于多路復用器的數據整庫同步方法的步驟。
...【技術特征摘要】
1.一種基于多路復用器的數據整庫同步方法,特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述對整庫中的每個源表配置輸入結構,在flink分布式計算框架內配置多路復用器,并將每個源表對應的所述輸入結構添加到所述多路復用器中,包括:
3.根據權利要求1所述的方法,其特征在于,所述利用所述多路復用器生成分片集合,并根據所述分片集合構造分片分配器,包括:
4.根據權利要求3所述的方法,其特征在于,所述利用所述源數據算子獲取執行任務圖,包括:
5.根據權利要求4所述的方法,其特征在于,所述利用所述分片分配器將分片分配到所述計算節點中的多個資源槽進行計算,將多個源表同步到數據湖,包括:
6.根據權利要求4所述的方法,其特征在于,所述利用所述分片分...
【專利技術屬性】
技術研發人員:沈琦,萬書武,劉希,蔣英明,曹成,李小卓,
申請(專利權)人:平安科技深圳有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。