本發(fā)明涉及一種自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法、裝置和介質(zhì),屬于計(jì)算機(jī)信息處理。
背景技術(shù):
1、在當(dāng)前數(shù)據(jù)接入過(guò)程中,尤其是在分布式系統(tǒng)中進(jìn)行數(shù)據(jù)同步時(shí),數(shù)據(jù)一致性是一個(gè)至關(guān)重要的問(wèn)題。然而,由于網(wǎng)絡(luò)延遲、并發(fā)寫入等多種原因,數(shù)據(jù)不一致現(xiàn)象時(shí)有發(fā)生。傳統(tǒng)的對(duì)賬方法,如通過(guò)主鍵比對(duì)、事務(wù)日志追蹤等手段,雖然在一定程度上能夠解決數(shù)據(jù)不一致的問(wèn)題,但在面對(duì)海量高并發(fā)數(shù)據(jù)場(chǎng)景時(shí),卻顯得力不從心。
2、具體來(lái)說(shuō),傳統(tǒng)的對(duì)賬方法存在以下主要缺陷:
3、對(duì)賬效率低:傳統(tǒng)方法在大規(guī)模數(shù)據(jù)集上的對(duì)賬過(guò)程耗時(shí)長(zhǎng),無(wú)法滿足實(shí)時(shí)性需求。在數(shù)據(jù)量龐大的情況下,對(duì)賬過(guò)程可能需要花費(fèi)數(shù)小時(shí)甚至數(shù)天的時(shí)間,嚴(yán)重影響了業(yè)務(wù)運(yùn)營(yíng)效率。
4、數(shù)據(jù)完整性難以保障:在網(wǎng)絡(luò)傳輸不穩(wěn)定或數(shù)據(jù)更新頻繁的情況下,單純依賴數(shù)據(jù)庫(kù)本身的事務(wù)機(jī)制難以確保數(shù)據(jù)的一致性和完整性。數(shù)據(jù)丟失、重復(fù)或錯(cuò)誤更新等問(wèn)題時(shí)有發(fā)生,給業(yè)務(wù)運(yùn)營(yíng)帶來(lái)了極大的風(fēng)險(xiǎn)。
5、資源消耗大:隨著數(shù)據(jù)量的指數(shù)級(jí)增長(zhǎng),傳統(tǒng)對(duì)賬方法需要大量數(shù)據(jù)的重復(fù)計(jì)算和存儲(chǔ),導(dǎo)致了嚴(yán)重的資源浪費(fèi)。這不僅增加了硬件資源的消耗,還提高了運(yùn)營(yíng)成本。
6、因此,針對(duì)傳統(tǒng)對(duì)賬方法存在的上述問(wèn)題,業(yè)界迫切需要一種高效、準(zhǔn)確且自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法,以適應(yīng)不斷增長(zhǎng)的數(shù)據(jù)量和并發(fā)訪問(wèn)需求,確保數(shù)據(jù)一致性和業(yè)務(wù)運(yùn)營(yíng)效率。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明目的是提供了一種自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法、裝置和介質(zhì),以解決上述問(wèn)題,提供高效、準(zhǔn)確且自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法。
2、本發(fā)明為實(shí)現(xiàn)上述目的,通過(guò)以下技術(shù)方案實(shí)現(xiàn):
3、一種自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法,包括以下步驟:
4、選定對(duì)賬的源數(shù)據(jù)庫(kù)及源數(shù)據(jù)表、目標(biāo)數(shù)據(jù)庫(kù)及目標(biāo)數(shù)據(jù)表,選擇源數(shù)據(jù)表和目標(biāo)數(shù)據(jù)表的主鍵作為數(shù)據(jù)比對(duì)的基礎(chǔ),并設(shè)定初始對(duì)賬頻率;
5、通過(guò)spark?sql讀取源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)的數(shù)據(jù),并對(duì)源數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行分布式預(yù)處理;
6、通過(guò)md5算法為源數(shù)據(jù)表和目標(biāo)數(shù)據(jù)表中的每一行數(shù)據(jù)生成md5摘要,將生成的md5摘要作為新列添加至數(shù)據(jù)表;
7、根據(jù)主鍵對(duì)比查找md5摘要,確定差異數(shù)據(jù)行,根據(jù)差異數(shù)據(jù)行查找問(wèn)題數(shù)據(jù),并記錄對(duì)賬結(jié)果;
8、通過(guò)q-learning算法根據(jù)當(dāng)前數(shù)據(jù)對(duì)賬結(jié)果調(diào)整對(duì)賬頻率。
9、優(yōu)選的,所述根據(jù)主鍵對(duì)比查找md5摘要不一致數(shù)據(jù)行,具體方式如下:
10、創(chuàng)建spark的彈性分布式數(shù)據(jù)集,基于主鍵字段將源數(shù)據(jù)表與目標(biāo)數(shù)據(jù)表進(jìn)行內(nèi)連接,對(duì)比源數(shù)據(jù)表與目標(biāo)數(shù)據(jù)表中的md5摘要列,定位md5摘要不一致的數(shù)據(jù)行作為差異數(shù)據(jù)行。
11、優(yōu)選的,所述根據(jù)差異數(shù)據(jù)行查找問(wèn)題數(shù)據(jù),具體方式如下:
12、針對(duì)差異數(shù)據(jù)行,逐列生成md5摘要,比較源數(shù)據(jù)表與目標(biāo)數(shù)據(jù)表中對(duì)應(yīng)列的md5摘要,標(biāo)記出md5摘要不一致的列作為有問(wèn)題列;
13、對(duì)每一個(gè)有問(wèn)題的數(shù)據(jù)行,比對(duì)有問(wèn)題列,找到每行數(shù)據(jù)的具體問(wèn)題列,計(jì)算字段內(nèi)容的正確率,并記錄異常數(shù)據(jù)列表,包括源數(shù)據(jù)和目標(biāo)數(shù)據(jù)。
14、優(yōu)選的,記錄對(duì)賬結(jié)果包括執(zhí)行時(shí)間、正確率、數(shù)據(jù)條數(shù)、yarn隊(duì)列負(fù)載。
15、優(yōu)選的,所述q-learning?算法根據(jù)當(dāng)前數(shù)據(jù)對(duì)賬結(jié)果通過(guò)調(diào)整定時(shí)執(zhí)行的?cron表達(dá)式調(diào)整對(duì)賬頻率;
16、所述q-learning算法狀態(tài)空間包括正確率、執(zhí)行時(shí)間和yarn隊(duì)列負(fù)載;
17、所述q-learning算法獎(jiǎng)勵(lì)函數(shù)如下:
18、,
19、,
20、,
21、,
22、其中,表示獎(jiǎng)勵(lì)值,表示當(dāng)前正確率,表示單位數(shù)據(jù)量偏差帶來(lái)的獎(jiǎng)勵(lì)變化率,表示當(dāng)前數(shù)據(jù)條數(shù),表示設(shè)置的期望每次對(duì)賬數(shù)據(jù)條數(shù),表示yarn隊(duì)列負(fù)載。
23、優(yōu)選的,單位數(shù)據(jù)量偏差帶來(lái)的獎(jiǎng)勵(lì)變化率計(jì)算公式如下:
24、。
25、優(yōu)選的,所述分布式預(yù)處理包括數(shù)據(jù)清洗、轉(zhuǎn)換、聚合。
26、一種自適應(yīng)的數(shù)據(jù)接入對(duì)賬裝置,包括處理器和存儲(chǔ)有程序指令的存儲(chǔ)器,所述處理器被配置為在運(yùn)行所述程序指令時(shí),執(zhí)行所述的自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法。
27、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)所述的自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法。
28、本發(fā)明的優(yōu)點(diǎn)在于:借助spark平臺(tái)的分布式計(jì)算能力和md5算法的高效性,本發(fā)明極大地提升了對(duì)賬速度和準(zhǔn)確性。通過(guò)對(duì)行與列的兩次md5摘要比對(duì),優(yōu)化了計(jì)算過(guò)程,進(jìn)一步提高了效率。
29、本發(fā)明的方法能夠靈活應(yīng)對(duì)不斷增長(zhǎng)的數(shù)據(jù)量和并發(fā)訪問(wèn)需求。支持大規(guī)模分布式部署和橫向擴(kuò)展,滿足未來(lái)業(yè)務(wù)發(fā)展的需求。
30、根據(jù)環(huán)境的變化自動(dòng)調(diào)整策略,如數(shù)據(jù)量的增長(zhǎng)、系統(tǒng)性能的波動(dòng)等。通過(guò)q-learning算法自動(dòng)調(diào)整對(duì)賬頻率,避免了人工不斷調(diào)整參數(shù)或策略的繁瑣過(guò)程。
31、引入基于時(shí)間戳的數(shù)據(jù)變化感知機(jī)制,僅對(duì)新增或更新的數(shù)據(jù)項(xiàng)進(jìn)行對(duì)賬,減少了不必要的數(shù)據(jù)處理與計(jì)算開銷。自動(dòng)調(diào)整對(duì)賬頻率,避免了無(wú)謂的數(shù)據(jù)比對(duì),可以更高效地利用計(jì)算資源,減少了硬件資源消耗。
1.一種自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法,其特征在于,所述根據(jù)主鍵對(duì)比查找md5摘要不一致數(shù)據(jù)行,具體方式如下:
3.根據(jù)權(quán)利要求2所述的自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法,其特征在于,所述根據(jù)差異數(shù)據(jù)行查找問(wèn)題數(shù)據(jù),具體方式如下:
4.根據(jù)權(quán)利要求1所述的自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法,其特征在于,記錄對(duì)賬結(jié)果包括執(zhí)行時(shí)間、正確率、數(shù)據(jù)條數(shù)、yarn隊(duì)列負(fù)載。
5.根據(jù)權(quán)利要求4所述的自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法,其特征在于,所述q-learning算法根據(jù)當(dāng)前數(shù)據(jù)對(duì)賬結(jié)果通過(guò)調(diào)整定時(shí)執(zhí)行的?cron?表達(dá)式調(diào)整對(duì)賬頻率;
6.根據(jù)權(quán)利要求5所述的自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法,其特征在于,單位數(shù)據(jù)量偏差帶來(lái)的獎(jiǎng)勵(lì)變化率計(jì)算公式如下:
7.根據(jù)權(quán)利要求1所述的自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法,其特征在于,所述分布式預(yù)處理包括數(shù)據(jù)清洗、轉(zhuǎn)換、聚合。
8.根據(jù)權(quán)利要求1所述的自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法,其特征在于,依據(jù)數(shù)據(jù)的插入和更新時(shí)間戳來(lái)篩選增量數(shù)據(jù),僅對(duì)自上次對(duì)賬后的變動(dòng)數(shù)據(jù)進(jìn)行比對(duì)。
9.一種自適應(yīng)的數(shù)據(jù)接入對(duì)賬裝置,包括處理器和存儲(chǔ)有程序指令的存儲(chǔ)器,其特征在于,所述處理器被配置為在運(yùn)行所述程序指令時(shí),執(zhí)行如權(quán)利要求1-8任一所述的自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述權(quán)利要求1-8任一所述的自適應(yīng)的數(shù)據(jù)接入對(duì)賬方法。