本發(fā)明涉及數(shù)據(jù)存儲(chǔ),尤其是涉及一種分布式數(shù)據(jù)回傳方法及裝置、介質(zhì)、設(shè)備。
背景技術(shù):
1、各個(gè)分布式云中心所產(chǎn)生的模型數(shù)據(jù)需要進(jìn)行集中存儲(chǔ),便于利用所有分布式云中心的模型數(shù)據(jù)進(jìn)行相關(guān)分析。因此有必要針對(duì)這一需求,提供一種將分布式模型數(shù)據(jù)進(jìn)行回傳的方案。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)以上至少一個(gè)技術(shù)問題,本發(fā)明實(shí)施例提供一種分布式數(shù)據(jù)回傳方法及裝置、介質(zhì)、設(shè)備。
2、根據(jù)第一方面,本發(fā)明實(shí)施例提供的一種分布式數(shù)據(jù)回傳方法包括:
3、通過數(shù)據(jù)采集服務(wù)采集大模型產(chǎn)生的模型數(shù)據(jù),并將所述模型數(shù)據(jù)保存到與所述數(shù)據(jù)采集服務(wù)連接的數(shù)據(jù)庫(kù)中;其中,所述數(shù)據(jù)庫(kù)為分布式云中心的本地?cái)?shù)據(jù)庫(kù);
4、通過數(shù)據(jù)推送服務(wù)根據(jù)預(yù)先配置的定時(shí)任務(wù)執(zhí)行信息,生成數(shù)據(jù)推送任務(wù),將所述數(shù)據(jù)推送任務(wù)添加到線程池的線程隊(duì)列中,將所述模型數(shù)據(jù)在所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)表信息添加到阻塞隊(duì)列中;通過所述線程池中的至少一個(gè)線程并行執(zhí)行所述線程隊(duì)列中的至少一個(gè)數(shù)據(jù)推送任務(wù),每一個(gè)線程負(fù)責(zé)將所述阻塞隊(duì)列中對(duì)應(yīng)的數(shù)據(jù)表信息取出;
5、通過所述數(shù)據(jù)推送服務(wù)建立與所述數(shù)據(jù)庫(kù)之間的連接通道,根據(jù)每一個(gè)線程取出的數(shù)據(jù)表信息,通過該連接通道獲取所述數(shù)據(jù)庫(kù)中對(duì)應(yīng)的數(shù)據(jù)表,并關(guān)閉所述連接通道;
6、通過所述數(shù)據(jù)推送服務(wù)確定所述數(shù)據(jù)表中的增量數(shù)據(jù),將所述增量數(shù)據(jù)進(jìn)行封裝,得到推送消息,并將所述推送消息發(fā)送至kafka集群中;
7、通過訂閱相應(yīng)主題的數(shù)據(jù)接收服務(wù)從所述kafka集群中拉取所述推送消息,將拉取到的所述推送消息中的增量數(shù)據(jù)保存到數(shù)據(jù)湖中,并向所述kafka集群提交自己的拉取偏移量。
8、在一個(gè)實(shí)施例中,所述通過數(shù)據(jù)采集服務(wù)采集大模型產(chǎn)生的模型數(shù)據(jù)之前,所述方法還包括:
9、在所述數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表,且在所述數(shù)據(jù)庫(kù)中創(chuàng)建的數(shù)據(jù)表的表名稱與所述數(shù)據(jù)湖中對(duì)應(yīng)數(shù)據(jù)表的表名稱相同,在所述數(shù)據(jù)庫(kù)中創(chuàng)建的數(shù)據(jù)表的結(jié)構(gòu)化表字段與所述數(shù)據(jù)湖中對(duì)應(yīng)數(shù)據(jù)表的結(jié)構(gòu)化表字段相同。
10、在一個(gè)實(shí)施例中,所述通過數(shù)據(jù)推送服務(wù)根據(jù)預(yù)先配置的定時(shí)任務(wù)執(zhí)行信息,生成數(shù)據(jù)推送任務(wù)之前,所述方法還包括:
11、配置所述數(shù)據(jù)推動(dòng)服務(wù)對(duì)應(yīng)的第一相關(guān)信息;其中,所述第一相關(guān)信息中包括在所述數(shù)據(jù)庫(kù)中創(chuàng)建的數(shù)據(jù)表的信息、需要推送到的kafka集群的信息、發(fā)布的主題信息、線程池中線程數(shù)量和定時(shí)任務(wù)執(zhí)行信息;
12、啟動(dòng)所述數(shù)據(jù)推動(dòng)服務(wù);
13、調(diào)用初始化方法,以使所述初始化方法創(chuàng)建所述阻塞隊(duì)列,依據(jù)所述第一相關(guān)信息中的線程數(shù)量創(chuàng)建線程池,在所述線程池中創(chuàng)建所述線程隊(duì)列,并發(fā)布所述第一相關(guān)信息中的主題信息;其中,所述線程隊(duì)列用于存儲(chǔ)所述數(shù)據(jù)推送任務(wù)。
14、在一個(gè)實(shí)施例中,所述方法還包括:
15、配置所述數(shù)據(jù)接收服務(wù)對(duì)應(yīng)的第二相關(guān)信息;其中,所述第二相關(guān)信息中包括所述數(shù)據(jù)湖的信息、需要消費(fèi)的kafka集群的信息和訂閱的主題信息;
16、啟動(dòng)所述數(shù)據(jù)接收服務(wù),并訂閱所述第二相關(guān)信息中的主題信息。
17、在一個(gè)實(shí)施例中,所述通過所述數(shù)據(jù)推送服務(wù)確定所述數(shù)據(jù)表中的增量數(shù)據(jù),包括:
18、通過所述數(shù)據(jù)推送服務(wù)獲取上一次推送信息中的時(shí)間戳;根據(jù)所述時(shí)間戳,將所述數(shù)據(jù)表中在上一次推送操作之后產(chǎn)生的數(shù)據(jù)作為所述增量數(shù)據(jù),并將本次推送操作的時(shí)間戳記錄到本次推送信息中。
19、在一個(gè)實(shí)施例中,通過訂閱相應(yīng)主題的數(shù)據(jù)接收服務(wù)將拉取到的所述推送消息中的增量數(shù)據(jù)保存到數(shù)據(jù)湖中的過程包括:
20、通過所述數(shù)據(jù)接收服務(wù)對(duì)所述推送消息進(jìn)行結(jié)構(gòu)化解析;若解析正常,則通過事務(wù)控制模式將解析得到的增量數(shù)據(jù)批量寫入到所述數(shù)據(jù)湖中的對(duì)應(yīng)數(shù)據(jù)表中。
21、在一個(gè)實(shí)施例中,所述方法還包括:
22、若通過所述數(shù)據(jù)接收服務(wù)將所述kafka集群中存儲(chǔ)的推送消息全部拉取并保存到數(shù)據(jù)湖中,則關(guān)閉所述數(shù)據(jù)接收服務(wù),釋放使用到的資源。
23、根據(jù)第二方面,本發(fā)明實(shí)施例提供的分布式數(shù)據(jù)回傳裝置包括:
24、數(shù)據(jù)采集模塊,用于通過數(shù)據(jù)采集服務(wù)采集大模型產(chǎn)生的模型數(shù)據(jù),并將所述模型數(shù)據(jù)保存到與所述數(shù)據(jù)采集服務(wù)連接的數(shù)據(jù)庫(kù)中;其中,所述數(shù)據(jù)庫(kù)為分布式云中心的本地?cái)?shù)據(jù)庫(kù);
25、數(shù)據(jù)推送模塊,用于通過數(shù)據(jù)推送服務(wù)根據(jù)預(yù)先配置的定時(shí)任務(wù)執(zhí)行信息,生成數(shù)據(jù)推送任務(wù),將所述數(shù)據(jù)推送任務(wù)添加到線程池的線程隊(duì)列中,將所述模型數(shù)據(jù)在所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)表信息添加到阻塞隊(duì)列中;通過所述線程池中的至少一個(gè)線程并行執(zhí)行所述線程隊(duì)列中的至少一個(gè)數(shù)據(jù)推送任務(wù),每一個(gè)線程負(fù)責(zé)將所述阻塞隊(duì)列中對(duì)應(yīng)的數(shù)據(jù)表信息取出;通過所述數(shù)據(jù)推送服務(wù)建立與所述數(shù)據(jù)庫(kù)之間的連接通道,根據(jù)每一個(gè)線程取出的數(shù)據(jù)表信息,通過該連接通道獲取所述數(shù)據(jù)庫(kù)中對(duì)應(yīng)的數(shù)據(jù)表,并關(guān)閉所述連接通道;通過所述數(shù)據(jù)推送服務(wù)確定所述數(shù)據(jù)表中的增量數(shù)據(jù),將所述增量數(shù)據(jù)進(jìn)行封裝,得到推送消息,并將所述推送消息發(fā)送至kafka集群中;
26、數(shù)據(jù)接收模塊,用于通過訂閱相應(yīng)主題的數(shù)據(jù)接收服務(wù)從所述kafka集群中拉取所述推送消息,將拉取到的所述推送消息中的增量數(shù)據(jù)保存到數(shù)據(jù)湖中,并向所述kafka集群提交自己的拉取偏移量。
27、根據(jù)第三方面,本發(fā)明實(shí)施例提供計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序在計(jì)算機(jī)中執(zhí)行時(shí),令計(jì)算機(jī)執(zhí)行實(shí)現(xiàn)第一方面提供的方法。
28、根據(jù)第四方面,本發(fā)明實(shí)施例提供的計(jì)算設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器中存儲(chǔ)有可執(zhí)行代碼,所述處理器執(zhí)行所述可執(zhí)行代碼時(shí),實(shí)現(xiàn)第一方面提供的方法。
29、本發(fā)明實(shí)施例提供的分布式數(shù)據(jù)回傳方法及裝置、介質(zhì)、設(shè)備,數(shù)據(jù)采集服務(wù)將模型數(shù)據(jù)采集后進(jìn)行持久化存儲(chǔ)到云中心的本地?cái)?shù)據(jù)庫(kù),再由數(shù)據(jù)推送服務(wù)啟動(dòng)多線程后對(duì)讀取本地?cái)?shù)據(jù)庫(kù),數(shù)據(jù)推送服務(wù)讀取數(shù)據(jù)完畢后作為消息生產(chǎn)者將模型數(shù)據(jù)通過已打通的網(wǎng)絡(luò)鏈路發(fā)送到kafka集群中,數(shù)據(jù)接收服務(wù)作為消費(fèi)者從kafka集群中讀取消息,讀取消息完成后將模型數(shù)據(jù)進(jìn)行持久化操作到數(shù)據(jù)湖中??梢?,本發(fā)明實(shí)施例通過使用kafka和多線程技術(shù),能夠并行處理大量數(shù)據(jù),顯著提高了數(shù)據(jù)采集和推送的速度,降低了數(shù)據(jù)延遲。利用kafka集群的高可用性和容錯(cuò)能力,提高了數(shù)據(jù)傳輸?shù)目煽啃?。通過將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)湖中,本發(fā)明使得數(shù)據(jù)分析和處理變得更加方便,同時(shí)也便于數(shù)據(jù)的長(zhǎng)期保存和歸檔,實(shí)現(xiàn)數(shù)據(jù)的集中存儲(chǔ)和管理??偟膩碚f,本發(fā)明實(shí)施例提供了一種高效、可靠、安全的大模型數(shù)據(jù)采集和推送解決方案,為大數(shù)據(jù)分析和人工智能應(yīng)用提供了強(qiáng)有力的支持,具有顯著的技術(shù)優(yōu)勢(shì)和實(shí)用價(jià)值。
1.一種分布式數(shù)據(jù)回傳方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過數(shù)據(jù)采集服務(wù)采集大模型產(chǎn)生的模型數(shù)據(jù)之前,所述方法還包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過數(shù)據(jù)推送服務(wù)根據(jù)預(yù)先配置的定時(shí)任務(wù)執(zhí)行信息,生成數(shù)據(jù)推送任務(wù)之前,所述方法還包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過所述數(shù)據(jù)推送服務(wù)確定所述數(shù)據(jù)表中的增量數(shù)據(jù),包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,通過訂閱相應(yīng)主題的數(shù)據(jù)接收服務(wù)將拉取到的所述推送消息中的增量數(shù)據(jù)保存到數(shù)據(jù)湖中的過程包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:
8.一種分布式數(shù)據(jù)回傳裝置,其特征在于,包括:
9.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,其上存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序在計(jì)算機(jī)中執(zhí)行時(shí),令計(jì)算機(jī)執(zhí)行實(shí)現(xiàn)權(quán)利要求1~7中的任一項(xiàng)所述的方法。
10.一種計(jì)算設(shè)備,其特征在于,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器中存儲(chǔ)有可執(zhí)行代碼,所述處理器執(zhí)行所述可執(zhí)行代碼時(shí),實(shí)現(xiàn)權(quán)利要求1~7中的任一項(xiàng)所述的方法。