本申請(qǐng)涉及數(shù)據(jù)處理,具體涉及一種數(shù)據(jù)處理方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著數(shù)據(jù)的更新迭代,大數(shù)據(jù)中心的構(gòu)建形式必然向集中、開(kāi)放、賦能的企業(yè)級(jí)數(shù)據(jù)中臺(tái)架構(gòu)演進(jìn)。移動(dòng)體系內(nèi)大數(shù)據(jù)平臺(tái)的核心引擎,如:采集、清洗、轉(zhuǎn)換(extract,transform,load,etl)裝置等的構(gòu)建方法以及質(zhì)量將經(jīng)受更嚴(yán)苛的使用挑戰(zhàn)。
2、現(xiàn)有的etl裝置在數(shù)據(jù)同步的過(guò)程中存在如下問(wèn)題:(1)傳統(tǒng)etl的采集任務(wù)調(diào)度機(jī)制往往基于時(shí)間進(jìn)行。該機(jī)制較為簡(jiǎn)單直接,但是容易造成系統(tǒng)負(fù)載過(guò)高問(wèn)題,定時(shí)任務(wù)重疊問(wèn)題以及系統(tǒng)時(shí)鐘偏差問(wèn)題。(2)分布式架構(gòu)負(fù)載均衡問(wèn)題,針對(duì)單點(diǎn)瓶頸問(wèn)題,etl分布式架構(gòu)通常采用(master/slave)主從模式。集群中各節(jié)點(diǎn)服務(wù)嚴(yán)格按角色分工,單點(diǎn)master節(jié)點(diǎn)負(fù)責(zé)分發(fā)任務(wù),slave負(fù)責(zé)執(zhí)行任務(wù)。中心化分布式容易導(dǎo)致master單點(diǎn)故障問(wèn)題和slave熱點(diǎn)問(wèn)題,單master宕機(jī)會(huì)導(dǎo)致整個(gè)集群工作異常,如果slave節(jié)點(diǎn)上的任務(wù)分配無(wú)法動(dòng)態(tài)規(guī)劃,遇到并發(fā)量過(guò)大、業(yè)務(wù)邏輯過(guò)于復(fù)雜,會(huì)導(dǎo)致系統(tǒng)性能瓶頸集中在某個(gè)slave節(jié)點(diǎn)上,影響這個(gè)集群處理效率。(3)低代碼etl系統(tǒng)會(huì)限制etl系統(tǒng)的靈活度,在簡(jiǎn)化開(kāi)發(fā)流程的過(guò)程中,如果配置抽象不當(dāng)或者考慮不清晰,會(huì)限制功能的靈活性,無(wú)法處理復(fù)雜的etl場(chǎng)景,同時(shí)隱藏底層設(shè)計(jì)細(xì)節(jié),會(huì)導(dǎo)致etl系統(tǒng)的程序處理性能受限。
3、綜上可知,現(xiàn)有的etl系統(tǒng)的數(shù)據(jù)處理方法效率低。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)實(shí)施例提供一種數(shù)據(jù)處理方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì),用以解決現(xiàn)有的etl系統(tǒng)的數(shù)據(jù)處理方法效率低的技術(shù)問(wèn)題。
2、第一方面,本申請(qǐng)實(shí)施例提供一種數(shù)據(jù)處理方法,包括:
3、接收到數(shù)據(jù)同步請(qǐng)求后,基于管理節(jié)點(diǎn)生成至少一條數(shù)據(jù)同步消息,并基于所述管理節(jié)點(diǎn)將所述數(shù)據(jù)同步消息分配給后端節(jié)點(diǎn);
4、基于所述后端節(jié)點(diǎn),為每條所述數(shù)據(jù)同步消息配置采集插件、寫(xiě)插件和配置信息;
5、基于所述配置信息,將待同步數(shù)據(jù)同步至目標(biāo)數(shù)據(jù)庫(kù),所述待同步數(shù)據(jù)是基于所述采集插件獲取的;
6、基于所述寫(xiě)插件,將所述待同步數(shù)據(jù)寫(xiě)入所述目標(biāo)數(shù)據(jù)庫(kù)。
7、在一個(gè)實(shí)施例中,基于所述采集插件,獲取所述待同步數(shù)據(jù),包括:
8、從所述數(shù)據(jù)同步消息中,獲取所述采集插件的采集參數(shù),所述采集參數(shù)包括文件服務(wù)器的協(xié)議、地址、端口以及路徑信息;
9、基于所述采集參數(shù),控制所述采集插件從所述文件服務(wù)器中讀取數(shù)據(jù)文件的字段列表以及分隔符,得到所述待同步數(shù)據(jù)。
10、在一個(gè)實(shí)施例中,所述基于所述寫(xiě)插件,將所述待同步數(shù)據(jù)寫(xiě)入所述目標(biāo)數(shù)據(jù)庫(kù),包括:
11、獲取所述寫(xiě)插件的寫(xiě)入?yún)?shù),所述寫(xiě)入?yún)?shù)包括文件壓縮類(lèi)型、目錄信息、字段列表、分隔符以及更新方式;
12、基于所述寫(xiě)入?yún)?shù),控制所述寫(xiě)插件將所述待同步數(shù)據(jù)寫(xiě)入所述目標(biāo)數(shù)據(jù)庫(kù)。
13、在一個(gè)實(shí)施例中,所述基于所述配置信息,將待同步數(shù)據(jù)同步至目標(biāo)數(shù)據(jù)庫(kù),包括:
14、基于所述配置信息,確定所述待同步數(shù)據(jù)的同步參數(shù),所述同步參數(shù)包括傳輸速度、并發(fā)數(shù)、臟數(shù)據(jù)最大記錄閾值、臟數(shù)據(jù)占比閾值;
15、基于所述同步參數(shù),將所述待同步數(shù)據(jù)同步至所述目標(biāo)數(shù)據(jù)庫(kù)。
16、在一個(gè)實(shí)施例中,所述基于所述寫(xiě)插件,將所述待同步數(shù)據(jù)寫(xiě)入所述目標(biāo)數(shù)據(jù)庫(kù)之后,還包括:
17、確定所述數(shù)據(jù)同步消息的返回結(jié)果,所述返回結(jié)果至少包括讀取數(shù)據(jù)條數(shù)、寫(xiě)入成功/失敗條數(shù)、數(shù)據(jù)轉(zhuǎn)換成功/失敗條數(shù)、轉(zhuǎn)換過(guò)程耗時(shí)以及全過(guò)程總耗時(shí);
18、基于所述返回結(jié)果,確定所述數(shù)據(jù)同步消息的處理情況;
19、將分布式鎖的位移標(biāo)識(shí)符提交至所述數(shù)據(jù)同步消息對(duì)應(yīng)的分區(qū),以釋放所述分布式鎖,同時(shí)記錄所述處理情況;其中,所述分布式鎖是基于所述數(shù)據(jù)同步消息的主題及其分區(qū)、所述位移標(biāo)識(shí)符創(chuàng)建的。
20、在一個(gè)實(shí)施例中,基于所述管理節(jié)點(diǎn)將所述數(shù)據(jù)同步消息分配給后端節(jié)點(diǎn),包括:
21、確定所述后端節(jié)點(diǎn)的cpu負(fù)荷平均值和可用物理內(nèi)存;
22、當(dāng)?shù)谝荒繕?biāo)后端節(jié)點(diǎn)的所述cpu負(fù)荷平均值和可用物理內(nèi)存滿(mǎn)足所述數(shù)據(jù)同步消息的配置門(mén)限時(shí),將所述數(shù)據(jù)同步消息分配至所述第一目標(biāo)后端節(jié)點(diǎn)對(duì)應(yīng)的分區(qū);其中,所述第一目標(biāo)后端節(jié)點(diǎn)從所述分區(qū)獲取所述數(shù)據(jù)同步消息。
23、在一個(gè)實(shí)施例中,基于所述管理節(jié)點(diǎn)將所述數(shù)據(jù)同步消息分配給后端節(jié)點(diǎn),包括:
24、基于所述管理節(jié)點(diǎn),對(duì)每個(gè)所述后端節(jié)點(diǎn)的預(yù)設(shè)權(quán)重和動(dòng)態(tài)權(quán)重求和,得到所述后端節(jié)點(diǎn)的目標(biāo)權(quán)重;
25、將所述數(shù)據(jù)同步消息分配給所述目標(biāo)權(quán)重最大的第二目標(biāo)后端節(jié)點(diǎn)對(duì)應(yīng)的分區(qū),并更新所述第二目標(biāo)后端節(jié)點(diǎn)的目標(biāo)動(dòng)態(tài)權(quán)重;其中,更新后的所述目標(biāo)動(dòng)態(tài)權(quán)重是由所述目標(biāo)動(dòng)態(tài)權(quán)重和所有所述預(yù)設(shè)權(quán)重的差值得到的,所述第二目標(biāo)后端節(jié)點(diǎn)從所述分區(qū)獲取所述數(shù)據(jù)同步消息。
26、第二方面,本申請(qǐng)實(shí)施例提供一種數(shù)據(jù)處理裝置,包括:
27、分配模塊,用于接收到數(shù)據(jù)同步請(qǐng)求后,基于管理節(jié)點(diǎn)生成至少一條數(shù)據(jù)同步消息,并基于所述管理節(jié)點(diǎn)將所述數(shù)據(jù)同步消息分配給后端節(jié)點(diǎn);
28、配置模塊,用于為每條所述數(shù)據(jù)同步消息配置所述后端節(jié)點(diǎn)的采集插件、寫(xiě)插件和配置信息;
29、同步模塊,用于基于所述配置信息,將待同步數(shù)據(jù)同步至目標(biāo)數(shù)據(jù)庫(kù),所述待同步數(shù)據(jù)是基于所述采集插件獲取的;
30、寫(xiě)入模塊,用于基于所述寫(xiě)插件,將所述待同步數(shù)據(jù)寫(xiě)入所述目標(biāo)數(shù)據(jù)庫(kù)。
31、第三方面,本申請(qǐng)實(shí)施例提供一種電子設(shè)備,包括處理器和存儲(chǔ)有計(jì)算機(jī)程序的存儲(chǔ)器,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)第一方面所述的數(shù)據(jù)處理方法的步驟。
32、第四方面,本申請(qǐng)實(shí)施例提供一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面所述的數(shù)據(jù)處理方法的步驟。
33、本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì),通過(guò)。本申請(qǐng)實(shí)施例通過(guò)接收到數(shù)據(jù)同步請(qǐng)求后,基于管理節(jié)點(diǎn)生成至少一條數(shù)據(jù)同步消息,并基于所述管理節(jié)點(diǎn)將所述數(shù)據(jù)同步消息分配給后端節(jié)點(diǎn);基于后端節(jié)點(diǎn),為每條所述數(shù)據(jù)同步消息配置采集插件、寫(xiě)插件和配置信息;基于所述配置信息,將待同步數(shù)據(jù)同步至目標(biāo)數(shù)據(jù)庫(kù),所述待同步數(shù)據(jù)是基于所述采集插件獲取的;基于所述寫(xiě)插件,將所述待同步數(shù)據(jù)寫(xiě)入所述目標(biāo)數(shù)據(jù)庫(kù)。本申請(qǐng)實(shí)施例通過(guò)為每條數(shù)據(jù)同步消息配置采集插件、寫(xiě)插件和配置信息,實(shí)現(xiàn)了對(duì)數(shù)據(jù)同步消息的多進(jìn)程和/或多線(xiàn)程處理,提高了對(duì)數(shù)據(jù)同步消息處理的效率。通過(guò)將采集操作和寫(xiě)入操作插件化,提高了對(duì)數(shù)據(jù)同步消息處理的準(zhǔn)確性。
1.一種數(shù)據(jù)處理方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,基于所述采集插件,獲取所述待同步數(shù)據(jù),包括:
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,所述基于所述寫(xiě)插件,將所述待同步數(shù)據(jù)寫(xiě)入所述目標(biāo)數(shù)據(jù)庫(kù),包括:
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,所述基于所述配置信息,將待同步數(shù)據(jù)同步至目標(biāo)數(shù)據(jù)庫(kù),包括:
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,所述基于所述寫(xiě)插件,將所述待同步數(shù)據(jù)寫(xiě)入所述目標(biāo)數(shù)據(jù)庫(kù)之后,還包括:
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,基于所述管理節(jié)點(diǎn)將所述數(shù)據(jù)同步消息分配給后端節(jié)點(diǎn),包括:
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,基于所述管理節(jié)點(diǎn)將所述數(shù)據(jù)同步消息分配給后端節(jié)點(diǎn),包括:
8.一種數(shù)據(jù)處理裝置,其特征在于,包括:
9.一種電子設(shè)備,包括處理器和存儲(chǔ)有計(jì)算機(jī)程序的存儲(chǔ)器,其特征在于,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)權(quán)利要求1至7任一項(xiàng)所述的數(shù)據(jù)處理方法的步驟。
10.一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至7任一項(xiàng)所述的數(shù)據(jù)處理方法的步驟。