本發(fā)明涉及數(shù)據(jù)處理,尤其涉及一種異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)。
背景技術(shù):
1、在數(shù)據(jù)中臺架構(gòu)中,實(shí)時(shí)數(shù)據(jù)采集是保證數(shù)據(jù)時(shí)效性和一致性的關(guān)鍵環(huán)節(jié)。flinkcdc(change?data?capture)作為一種主流的實(shí)時(shí)數(shù)據(jù)采集技術(shù),被廣泛應(yīng)用于從關(guān)系型數(shù)據(jù)庫中捕獲和提取變更數(shù)據(jù)。其工作原理是通過監(jiān)測數(shù)據(jù)庫的事務(wù)日志,按照日志記錄的順序?qū)崟r(shí)讀取數(shù)據(jù)變更。flinkcdc技術(shù)目前支持多種主流關(guān)系型數(shù)據(jù)庫,包括但不限于mysql、oracle、postgresql、sql?server和db2。這種基于日志的變更捕獲方法能夠?qū)崿F(xiàn)低延遲、高一致性的數(shù)據(jù)同步,為數(shù)據(jù)集成和實(shí)時(shí)分析提供了強(qiáng)有力的支持。
2、在現(xiàn)有技術(shù)中,flinkcdc的運(yùn)行嚴(yán)重依賴于數(shù)據(jù)庫日志的開啟,日志記錄過程可能對數(shù)據(jù)庫性能產(chǎn)生顯著影響,當(dāng)數(shù)據(jù)管理員不愿開啟或限制數(shù)據(jù)庫日志功能時(shí),會(huì)直接影響flinkcdc的實(shí)施可能性,且隨著數(shù)據(jù)庫國產(chǎn)化趨勢的加強(qiáng),flinkcdc對這些新興數(shù)據(jù)庫的支持有限,無法滿足多樣化的數(shù)據(jù)源需求。
3、因此,尋找一種既能不依賴數(shù)據(jù)庫日志進(jìn)行數(shù)據(jù)采集,又能夠快速實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)采集的方法,是本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明提出了一種異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),其能夠處理大規(guī)模數(shù)據(jù)流,還能保證數(shù)據(jù)的一致性和完整性,同時(shí)提供了靈活的配置管理和監(jiān)控能力,極大地提高了數(shù)據(jù)集成的效率和質(zhì)量。
2、本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:本發(fā)明提供了一種異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),包括:
3、數(shù)據(jù)中臺,其配置為與來源數(shù)據(jù)庫和去向數(shù)據(jù)庫進(jìn)行元數(shù)據(jù)交互,并創(chuàng)建數(shù)據(jù)采集任務(wù);
4、分布式流處理引擎,其配置為與數(shù)據(jù)中臺進(jìn)行任務(wù)和狀態(tài)交互,接收數(shù)據(jù)中臺提交的數(shù)據(jù)采集任務(wù),執(zhí)行數(shù)據(jù)采集任務(wù),并對采集的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理和傳輸。
5、在以上技術(shù)方案的基礎(chǔ)上,優(yōu)選的,所述數(shù)據(jù)中臺包括數(shù)據(jù)安全管理模塊、數(shù)據(jù)質(zhì)量管理模塊、數(shù)據(jù)標(biāo)準(zhǔn)管理模塊、主數(shù)據(jù)管理模塊、數(shù)據(jù)采集管理模塊和元數(shù)據(jù)管理模塊。
6、在以上技術(shù)方案的基礎(chǔ)上,優(yōu)選的,所述創(chuàng)建數(shù)據(jù)采集任務(wù),具體包括:
7、步驟一、從來源數(shù)據(jù)庫和去向數(shù)據(jù)庫中采集元數(shù)據(jù),并將元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)中臺;
8、步驟二、在數(shù)據(jù)中臺確定來源數(shù)據(jù)源和來源表,并確定待同步字段和來源表的主鍵;
9、步驟三、在數(shù)據(jù)中臺確定去向數(shù)據(jù)源和目標(biāo)表,并確定待接收同步數(shù)據(jù)的字段和目標(biāo)表的主鍵;
10、步驟四、根據(jù)來源表的主鍵和目標(biāo)表的主鍵建立來源表和目標(biāo)表的映射關(guān)系;
11、步驟五、根據(jù)元數(shù)據(jù)在來源數(shù)據(jù)庫的操作類型創(chuàng)建日志表,日志表包括修改前所有字段、修改后所有字段、操作類型和操作時(shí)間;操作類型包括新增操作、修改操作和刪除操作;
12、步驟六、在來源數(shù)據(jù)庫中來源表上創(chuàng)建觸發(fā)器,觸發(fā)器記錄日志表中因操作引起的數(shù)據(jù)變化;
13、步驟七、構(gòu)建分布式流處理引擎的source配置和sink配置。
14、在以上技術(shù)方案的基礎(chǔ)上,優(yōu)選的,所述元數(shù)據(jù)包括表中文名、表英文名、字段中文名、字段英文名、數(shù)據(jù)類型、是否為空、長度和主鍵。
15、在以上技術(shù)方案的基礎(chǔ)上,優(yōu)選的,步驟四具體包括:
16、根據(jù)來源表的主鍵對來源數(shù)據(jù)庫進(jìn)行元數(shù)據(jù)篩選,確定待同步字段,并對待同步字段進(jìn)行排序;
17、根據(jù)目標(biāo)表的主鍵對來源表的待同步字段進(jìn)行匹配,確定與目標(biāo)表中與待同步字段對應(yīng)的目標(biāo)字段;
18、根據(jù)排序后的待同步字段和目標(biāo)字段構(gòu)建來源表和目標(biāo)表的映射關(guān)系。
19、在以上技術(shù)方案的基礎(chǔ)上,優(yōu)選的,步驟六具體包括:
20、在來源數(shù)據(jù)庫中來源表上創(chuàng)建觸發(fā)器;
21、使用觸發(fā)器對日志表進(jìn)行掃描,提取日志表中的日志數(shù)據(jù)并對日志數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,得到日志數(shù)據(jù)隊(duì)列;
22、采用生產(chǎn)者-消費(fèi)者模式從日志數(shù)據(jù)隊(duì)列中讀取數(shù)據(jù);
23、使用分布式流處理引擎將讀取的數(shù)據(jù)實(shí)時(shí)寫入去向數(shù)據(jù)庫。
24、在以上技術(shù)方案的基礎(chǔ)上,優(yōu)選的,所述提取日志數(shù)據(jù)并進(jìn)行格式轉(zhuǎn)換,具體包括:
25、觸發(fā)器檢測到日志表中未處理的日志條目時(shí),讀取未處理數(shù)據(jù);
26、將操作發(fā)生變化的日志數(shù)據(jù)轉(zhuǎn)換為標(biāo)準(zhǔn)化的rowdata格式;
27、建立初始化隊(duì)列,將rowdata格式的日志數(shù)據(jù)寫入初始化隊(duì)列中,得到日志數(shù)據(jù)隊(duì)列。
28、在以上技術(shù)方案的基礎(chǔ)上,優(yōu)選的,所述采用生產(chǎn)者-消費(fèi)者模式從日志數(shù)據(jù)隊(duì)列中讀取數(shù)據(jù),具體包括:
29、在分布式流處理引擎上創(chuàng)建inputformat接口;
30、配置inputformat的消費(fèi)者客戶端參數(shù);
31、使用nextrecord方法讀取日志數(shù)據(jù)隊(duì)列,并使用消費(fèi)者客戶端獲取讀取數(shù)據(jù)。
32、更進(jìn)一步優(yōu)選的,所述分布式流處理引擎包括作業(yè)管理器、任務(wù)管理器、資源管理器和分發(fā)器。
33、在以上技術(shù)方案的基礎(chǔ)上,優(yōu)選的,所述執(zhí)行實(shí)時(shí)數(shù)據(jù)采集任務(wù)具體包括:
34、步驟一、分發(fā)器將實(shí)時(shí)采集任務(wù)移交給作業(yè)管理器;
35、步驟二、作業(yè)管理器向資源管理器申請?zhí)幚碣Y源單元,并將實(shí)時(shí)采集任務(wù)分發(fā)給任務(wù)管理器,資源管理器分配資源給任務(wù)管理器;
36、步驟三、任務(wù)管理器向作業(yè)管理器注冊資源,并開始執(zhí)行數(shù)據(jù)采集任務(wù)。
37、本發(fā)明的異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)相對于現(xiàn)有技術(shù)具有以下有益效果:
38、(1)通過結(jié)合數(shù)據(jù)中臺和分布式流處理引擎,實(shí)現(xiàn)了異構(gòu)數(shù)據(jù)源之間的高效、可靠、實(shí)時(shí)數(shù)據(jù)同步,不僅能夠處理大規(guī)模數(shù)據(jù)流,還能保證數(shù)據(jù)的一致性和完整性,同時(shí)提供了靈活的配置管理和監(jiān)控能力,極大地提高了數(shù)據(jù)集成的效率和質(zhì)量;
39、(2)通過自動(dòng)采集和管理元數(shù)據(jù),并基于元數(shù)據(jù)建立源表和目標(biāo)表之間的精確映射關(guān)系,不僅減少了人為錯(cuò)誤,還提高了數(shù)據(jù)同步的準(zhǔn)確性和效率,更好地適應(yīng)復(fù)雜的異構(gòu)數(shù)據(jù)環(huán)境,并能快速響應(yīng)數(shù)據(jù)結(jié)構(gòu)的變化;
40、(3)通過在源數(shù)據(jù)庫中創(chuàng)建觸發(fā)器和日志表,能夠?qū)崟r(shí)捕獲數(shù)據(jù)的變更,并將這些變更轉(zhuǎn)換為標(biāo)準(zhǔn)化的格式,確保了數(shù)據(jù)變更的完整性和順序性,為實(shí)時(shí)數(shù)據(jù)同步提供了可靠的基礎(chǔ),能夠及時(shí)反映源數(shù)據(jù)的最新狀態(tài);
41、(4)利用分布式流處理引擎的分布式特性和組件化設(shè)計(jì),能夠高效地管理和調(diào)度數(shù)據(jù)采集任務(wù),動(dòng)態(tài)分配計(jì)算資源,實(shí)現(xiàn)了數(shù)據(jù)處理的高吞吐量和低延遲,不僅提高了可擴(kuò)展性和容錯(cuò)能力,還能夠根據(jù)實(shí)際負(fù)載情況自動(dòng)調(diào)整資源分配,確保了在大規(guī)模數(shù)據(jù)處理場景下的穩(wěn)定性和效率。
1.一種異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),其特征在于,包括:
2.如權(quán)利要求1所述的一種異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),其特征在于,所述數(shù)據(jù)中臺包括數(shù)據(jù)安全管理模塊、數(shù)據(jù)質(zhì)量管理模塊、數(shù)據(jù)標(biāo)準(zhǔn)管理模塊、主數(shù)據(jù)管理模塊、數(shù)據(jù)采集管理模塊和元數(shù)據(jù)管理模塊。
3.如權(quán)利要求1所述的一種異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),其特征在于,所述創(chuàng)建數(shù)據(jù)采集任務(wù),具體包括:
4.如權(quán)利要求3所述的一種異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),其特征在于,所述元數(shù)據(jù)包括表中文名、表英文名、字段中文名、字段英文名、數(shù)據(jù)類型、是否為空、長度和主鍵。
5.如權(quán)利要求4所述的一種異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),其特征在于,步驟四具體包括:
6.如權(quán)利要求5所述的一種異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),其特征在于,步驟六具體包括:
7.如權(quán)利要求6所述的一種異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),其特征在于,所述提取日志數(shù)據(jù)并進(jìn)行格式轉(zhuǎn)換,具體包括:
8.如權(quán)利要求7所述的一種異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),其特征在于,所述采用生產(chǎn)者-消費(fèi)者模式從日志數(shù)據(jù)隊(duì)列中讀取數(shù)據(jù),具體包括:
9.如權(quán)利要求1所述的一種異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),其特征在于,所述分布式流處理引擎包括作業(yè)管理器、任務(wù)管理器、資源管理器和分發(fā)器。
10.如權(quán)利要求9所述的一種異構(gòu)數(shù)據(jù)源實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),其特征在于,所述執(zhí)行實(shí)時(shí)數(shù)據(jù)采集任務(wù)具體包括: