在編程魔術(shù)師-01里面,大致提及了數(shù)倉(cāng)的發(fā)展以及半結(jié)構(gòu)化實(shí)時(shí)計(jì)算引擎。
簡(jiǎn)單回顧以一下舀射,其中主要分為以下幾點(diǎn):
- 半結(jié)構(gòu)化引擎:
引入了SQL on lambda以及transducer流式復(fù)合技術(shù) - 存儲(chǔ)模式與計(jì)算分離:
通過(guò)[云存儲(chǔ)]保障數(shù)據(jù)的可用性以及快速恢復(fù)數(shù)據(jù)鄙信,通過(guò)[云計(jì)算平臺(tái)]進(jìn)行水平擴(kuò)展蹈丸,克服傳統(tǒng)數(shù)倉(cāng)數(shù)據(jù)量過(guò)大備份后快速恢復(fù)難題。 - 實(shí)時(shí)引擎:
非明細(xì)累積計(jì)算需要實(shí)時(shí)引擎
大量的批量引擎可以遷移到實(shí)時(shí)引擎 - 批量引擎:
SQL On lambda后續(xù)會(huì)成為引導(dǎo)半結(jié)構(gòu)化的先鋒驾锰。
批量引擎更加側(cè)重于多次迭代性的算法性功能卸留。
感覺(jué)還沒(méi)寫(xiě)過(guò)癮,今天給大家?guī)?lái)重磅殺器: 響應(yīng)式數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)椭豫!
半結(jié)構(gòu)化,實(shí)時(shí)旨指,響應(yīng)式赏酥?這是啥數(shù)據(jù)倉(cāng)庫(kù)?能不能講清楚點(diǎn)谆构?
半結(jié)構(gòu)化是數(shù)倉(cāng)的[數(shù)據(jù)模式]裸扶,實(shí)時(shí)半結(jié)構(gòu)化是數(shù)倉(cāng)的[計(jì)算引擎]。
也就是數(shù)據(jù)結(jié)構(gòu)+算法搬素。那響應(yīng)式呢?
響應(yīng)式是架構(gòu)呵晨!架構(gòu)涉及了一個(gè)生態(tài)的構(gòu)建。
我們簡(jiǎn)單介紹一下基礎(chǔ)知識(shí):
- 血緣分析系統(tǒng):
講血緣分析聽(tīng)起來(lái)很高級(jí)熬尺,其實(shí)是啥呢摸屠?就是依賴(lài)關(guān)系!
依賴(lài)個(gè)啥呢粱哼?
[調(diào)度系統(tǒng)-依賴(lài)] on [元數(shù)據(jù)管理系統(tǒng)-數(shù)據(jù)模式] - 元數(shù)據(jù)管理系統(tǒng)-catalog+SQL
數(shù)據(jù)模式catalog源自于設(shè)計(jì)季二,
一般過(guò)程是 主題層(業(yè)務(wù)需求)-> 邏輯層(度量維度矩陣)->物理層(catalog+SQL)
這個(gè)屬于技術(shù)外的話題,就不展開(kāi)討論揭措。
這里catalog是屬于物理層胯舷,也是我們需要關(guān)心的一層。
而sql呢绊含,則是catalog暴露給調(diào)度系統(tǒng)的作業(yè)接口桑嘶。 - 數(shù)據(jù)服務(wù)系統(tǒng)-catalog外部依賴(lài)
調(diào)度系統(tǒng)根據(jù)catalog的SQL作業(yè)依賴(lài)接口進(jìn)行調(diào)度。
catalog的上下游依賴(lài)又到哪里去了呢?
catalog的數(shù)據(jù)入口始入服務(wù)躬充,數(shù)據(jù)出口也終于服務(wù)逃顶。
常見(jiàn)的服務(wù)有DB, SFTP/FTP, HttpRest。麻裳。口蝠。 - 調(diào)度系統(tǒng)-依賴(lài)dependency
現(xiàn)在整 個(gè)過(guò)程大致上很清楚了。
[數(shù)據(jù)服務(wù)系統(tǒng)]提供系統(tǒng)源數(shù)據(jù)津坑,進(jìn)入[元數(shù)據(jù)管理系統(tǒng)(catalog + SQL)], 最終又輸出到[數(shù)據(jù)服務(wù)系統(tǒng)]妙蔗。而[調(diào)度系統(tǒng)]則是根據(jù)整個(gè)模式的依賴(lài)轉(zhuǎn)換調(diào)度SQL以及數(shù)據(jù)服務(wù)接口,最終完成了整 個(gè)數(shù)倉(cāng)的批量疆瑰。
SQL是一種數(shù)據(jù)模式的推導(dǎo)轉(zhuǎn)換眉反,將一種模式轉(zhuǎn)換為另一種數(shù)據(jù)模式 - 數(shù)據(jù)質(zhì)量監(jiān)控系統(tǒng)-驗(yàn)證:
調(diào)度系統(tǒng)進(jìn)行調(diào)度后昙啄,我們要進(jìn)行驗(yàn)證。所以這個(gè)屬于優(yōu)化階段任務(wù)寸五,很多系統(tǒng)前期發(fā)展會(huì)非常 不完善梳凛。但是越來(lái)后期,隨著系統(tǒng)擴(kuò)展以及各種維護(hù)性要求梳杏,其重要性不言而喻韧拒!
OK,這些東西太基礎(chǔ)了十性,都懂了叛溢,沒(méi)問(wèn)題!
現(xiàn)實(shí)生活中是怎么運(yùn)行的呢劲适?
x. 元數(shù)據(jù)管理系統(tǒng)由Excel充當(dāng)楷掉,生成catalog + SQL。
x. 數(shù)據(jù)服務(wù)系統(tǒng)由FTP文件擔(dān)當(dāng)霞势, 接入文件烹植,輸出文件
x. 調(diào)度系統(tǒng)動(dòng)態(tài)根據(jù)作業(yè)依賴(lài)掃描每個(gè)作業(yè),檢查是否滿足依賴(lài)后觸發(fā)
x. 數(shù)據(jù)質(zhì)量監(jiān)控系統(tǒng)根據(jù)條件運(yùn)行作業(yè)愕贡,發(fā)出報(bào)警
x. 血緣分析系統(tǒng)根據(jù)元數(shù)據(jù)管理系統(tǒng)以及依賴(lài)關(guān)系進(jìn)行信息的讀取診斷分析草雕。
沒(méi)有圖,不直觀颂鸿,好吧促绵,來(lái)個(gè)高級(jí)版本的后文介紹的架構(gòu)圖!
附上相關(guān)項(xiàng)目的github地址 :
- 血緣分析:
[haskell] oracle/mysql/postgresql解析: https://github.com/JakeWheat/simple-sql-parser
[haskell] hive/presto/vertica解析:https://github.com/uber/queryparser - 作業(yè)調(diào)度:
[python] airflow調(diào)度器: https://github.com/apache/incubator-airflow - 數(shù)據(jù)服務(wù)平臺(tái):
[cpp] 分布式存儲(chǔ)ceph: https://github.com/ceph/ceph
[go] 云計(jì)算k8s: https://github.com/kubernetes/kubernetes
[go] 函數(shù)即服務(wù)fnproject: https://github.com/fnproject/fn - 批量引擎:
[scala] spark: https://github.com/apache/spark
[c] postgres-XL: https://github.com/Postgres-XL/Postgres-XL - 實(shí)時(shí)引擎:
[java] ksql: https://github.com/confluentinc/ksql
好了嘴纺,相關(guān)的參考資放在這里了败晴。
那么我們要開(kāi)始今天的主題了!響應(yīng)式數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)
- 什么是響應(yīng)式數(shù)據(jù)倉(cāng)庫(kù)栽渴,有何好處?
- 響應(yīng)式數(shù)據(jù)倉(cāng)庫(kù)的挑戰(zhàn)
- 響應(yīng)式數(shù)據(jù)倉(cāng)庫(kù)解決方案!
1. 什么是響應(yīng)式數(shù)據(jù)倉(cāng)庫(kù)?
響應(yīng)式架構(gòu)目前用得越來(lái)越多尖坤,簡(jiǎn)單來(lái)說(shuō),響應(yīng)式就是按需執(zhí)行闲擦,事件驅(qū)動(dòng)慢味。
最終達(dá)到的效果就是,無(wú)狀態(tài)墅冷,狀態(tài)以事件進(jìn)行傳遞纯路。
順帶提一下多骨諾米牌,大家應(yīng)該會(huì)理解更容易一點(diǎn)寞忿。
a. 對(duì)于數(shù)據(jù)服務(wù)平臺(tái)服務(wù)入口來(lái)說(shuō):
當(dāng)外部文件到達(dá)時(shí)驰唬,它是不做任何處理的,僅僅作為一個(gè)存儲(chǔ)服務(wù), 數(shù)據(jù)倉(cāng)庫(kù)自己來(lái)取。
====> 而響應(yīng)式架構(gòu)則不一樣
當(dāng)外部文件到達(dá)時(shí)叫编,數(shù)據(jù)服務(wù)平臺(tái)發(fā)送watch/notify事件辖佣,下游系統(tǒng)可以訂閱,進(jìn)行按執(zhí)行搓逾!傳統(tǒng)的文件系統(tǒng)以及分布式ceph系統(tǒng)均支持notify接口卷谈。
b. 對(duì)于數(shù)據(jù)服務(wù)平臺(tái)服務(wù)出口來(lái)說(shuō):
當(dāng)接收外部的服務(wù)請(qǐng)求的時(shí)候,我們正常是啟動(dòng)服務(wù)進(jìn)程等待客戶端發(fā)起請(qǐng)求進(jìn)行處理霞篡。
====> 如果以響應(yīng)式架構(gòu)來(lái)說(shuō)
我們不應(yīng)該沒(méi)事去啟動(dòng)服務(wù)世蔗,而是當(dāng)客戶端真正請(qǐng)求的時(shí)候,我們才去加載函數(shù)進(jìn)行處理朗兵,達(dá)到無(wú)服務(wù)效果凸郑。也就是現(xiàn)在開(kāi)始流行的函數(shù)即服務(wù)架構(gòu)faas。
c. 對(duì)于元數(shù)據(jù)管理系統(tǒng)來(lái)說(shuō):
正常的元數(shù)據(jù)是用戶配置生成的矛市。一般來(lái)說(shuō)通過(guò)靜態(tài)配置元數(shù)據(jù)動(dòng)態(tài)生成catalog及sql是一種非常好的想法,畢竟是一種配置驅(qū)動(dòng)的方案诲祸。但是這種方案問(wèn)題很多浊吏,靜態(tài)元數(shù)據(jù)的靈活度太差,并不能完全統(tǒng)一性的表達(dá)業(yè)務(wù)邏輯救氯。所以代碼生產(chǎn)器沒(méi)有一個(gè)能成功占領(lǐng)市場(chǎng)的找田,比如informatica之類(lèi)的工作必然替代不了SQL! 當(dāng)靜態(tài)元數(shù)據(jù)生產(chǎn)模塊之后,模塊邏輯輯滿足不了必然要按需修改着憨,這樣生成的catalog+sql的信息度是遠(yuǎn)遠(yuǎn)高于業(yè)務(wù)靜態(tài)元數(shù)據(jù)的墩衙,元數(shù)據(jù)管理系統(tǒng)的效果也會(huì)大大折扣!
====> 那么對(duì)于響應(yīng)式架構(gòu)來(lái)說(shuō)甲抖,應(yīng)該怎么處理呢?
當(dāng)然應(yīng)該去追蹤變化漆改,真正的變化來(lái)自于哪里?那就是實(shí)際的catalog跟sql准谚,而不是用戶配置元數(shù)據(jù)挫剑!但是實(shí)時(shí)的catalog跟sql差異變化極大。所以現(xiàn)在大部分的現(xiàn)狀是構(gòu)建一套標(biāo)準(zhǔn)的接口去動(dòng)態(tài)獲得各種類(lèi)型柱衔,進(jìn)行定制化修改樊破,當(dāng)然這在響應(yīng)式是行不通的!響應(yīng)式則采取完全相同的行為唆铐,通過(guò)追蹤實(shí)際的catalog以及sql哲戚,進(jìn)一步生成標(biāo)準(zhǔn)化元數(shù)據(jù)管理接口。信息是從細(xì)粒度按需暴露出相關(guān)視角艾岂,可以自由定制顺少,自由 擴(kuò)展。通過(guò)追蹤低層的物理 層變化 澳盐,最終達(dá)到了:敵動(dòng)我動(dòng)的響應(yīng)式效果祈纯。
d. 對(duì)于調(diào)度系統(tǒng)來(lái)說(shuō):
傳統(tǒng)的調(diào)度系統(tǒng)就是周期性地掃描所有作業(yè)令宿,如果作業(yè)依賴(lài)全部滿足,則進(jìn)行觸發(fā)腕窥。模型非常簡(jiǎn)單粒没,但是隱患也非常大,如果里面的信息在周期掃描間發(fā)生了變更簇爆,多次掃描之間的副作用之間很有可能會(huì)有相互影響癞松,導(dǎo)致調(diào)試成本極高。那么響應(yīng)式架構(gòu)是如何的呢入蛆?調(diào)度分為兩塊响蓉,一塊是觸發(fā),一塊是依賴(lài)解析哨毁。觸發(fā)一般是時(shí)間觸發(fā)枫甲,如果是外部系統(tǒng)觸發(fā),則可以采用數(shù)據(jù)服務(wù)平臺(tái)的watch機(jī)制達(dá)到響應(yīng)式扼褪。對(duì)于時(shí)間觸發(fā)想幻,傳統(tǒng)的做法都是按間隔掃描。
====>響應(yīng)式如何做到呢话浇?
響應(yīng)式調(diào)度則是將事件順序排好序脏毯,需要調(diào)整的地方進(jìn)行事件調(diào)用完成。比如現(xiàn)在有1點(diǎn)幔崖,3點(diǎn)食店,5點(diǎn)三個(gè)觸發(fā)器,那么排好隊(duì)[1點(diǎn),3點(diǎn),5點(diǎn)], 調(diào)度器然后罷干sleep到1點(diǎn)再按需干活赏寇。突然間吉嫩,到了1點(diǎn)的時(shí)候,突然有個(gè)4點(diǎn)的觸發(fā)器到達(dá)了蹋订,這時(shí)調(diào)度器被事件喚醒重新排好隊(duì)[3點(diǎn), 4點(diǎn), 5點(diǎn)]率挣。觸發(fā)這塊已經(jīng)是響應(yīng)式了,那么依賴(lài)解析呢露戒?依賴(lài)解析也比較簡(jiǎn)單椒功,就是構(gòu)建一個(gè)依賴(lài)圖,一個(gè)作業(yè)完成后檢查觸發(fā)下一個(gè)作業(yè)智什。最終以觸發(fā)器作為源頭动漾,通過(guò)事件傳播依賴(lài)完成整個(gè)批量的運(yùn)行!
e. 對(duì)于數(shù)據(jù)質(zhì)量監(jiān)控系統(tǒng)來(lái)說(shuō):
傳統(tǒng)的數(shù)據(jù)質(zhì)量監(jiān)控系統(tǒng)僅僅是定時(shí)觸發(fā)荠锭。定時(shí)觸發(fā)就是整體上驗(yàn)證正確性旱眯,畢竟整體上正確了,各部分也大致是正確的,對(duì)于異常情況删豺,可以追加額外的驗(yàn)證共虑!
====> 響應(yīng)式架構(gòu)則不一樣
響應(yīng)式架構(gòu)有兩種觸發(fā)器,一種是時(shí)間 觸發(fā)器呀页,一種是作業(yè)觸發(fā)器妈拌,這些都是調(diào)度系統(tǒng)自帶的,所以對(duì)于響應(yīng)式模式來(lái)說(shuō)蓬蝶,數(shù)據(jù)質(zhì)量監(jiān)控僅僅是調(diào)度系統(tǒng)上的一個(gè)watch驗(yàn)證功能尘分。通過(guò)watch特定時(shí)間, watch特定任務(wù)進(jìn)行響應(yīng)式驗(yàn)證。當(dāng)然這是響應(yīng)式驗(yàn)證的基本功能丸氛,響應(yīng)式可以完成更加復(fù)雜的功能培愁,也就是故障追蹤。一旦發(fā)生故障缓窜,驗(yàn)證可以建立驗(yàn)證依賴(lài)樹(shù)定续,每個(gè)葉子watch任務(wù)。當(dāng)驗(yàn)證依賴(lài)樹(shù)發(fā)生失敗的時(shí)候禾锤,可以輕易獲取葉子節(jié)點(diǎn)的狀態(tài)進(jìn)行追蹤香罐!
講了這么多,響應(yīng)式數(shù)據(jù)倉(cāng)庫(kù)有啥 好處呢时肿?
好處得慢慢體會(huì),這里不太細(xì)說(shuō)港粱。螃成。。
a. 按需執(zhí)行查坪,節(jié)省資源寸宏,便于調(diào)試維護(hù)
b. 事件驅(qū)動(dòng),快速響應(yīng)偿曙,減少系統(tǒng)交互的延遲
c. 依賴(lài)觸發(fā)氮凝,方便統(tǒng)一進(jìn)行事件追蹤,方便進(jìn)行外部擴(kuò)展
2. 響應(yīng)式數(shù)據(jù)倉(cāng)庫(kù)挑戰(zhàn)! 請(qǐng)注意, 前方高能!
響應(yīng)式數(shù)據(jù)倉(cāng)庫(kù)似乎看起來(lái)挺簡(jiǎn)單的嘛? 是嗎?
呵呵望忆,來(lái)點(diǎn)刺激的? 好戲開(kāi)始上演罩阵。。启摄。
a. 血緣分析逆向解析問(wèn)題稿壁。
據(jù)前面所述,傳統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù)歉备,元數(shù)據(jù)管理系統(tǒng)為配置驅(qū)動(dòng)型開(kāi)發(fā)傅是,以靜態(tài)元數(shù)據(jù)生成 catalog以及sql后進(jìn)行定制,進(jìn)一步加入元數(shù)據(jù)依賴(lài)配置構(gòu)成配置型血緣關(guān)系。
由于靜態(tài)元數(shù)據(jù)的標(biāo)準(zhǔn)化形式喧笔,很容易推導(dǎo)出不同數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)catalog及sql方言帽驯。
但是在響應(yīng)式世界里面,我們是從sql跟catalog方言倒推標(biāo)準(zhǔn)形式书闸,自動(dòng)構(gòu)建元數(shù)據(jù)以及作業(yè)依賴(lài)物理視圖尼变。技術(shù)難度大大提升。
響應(yīng)式的好處自然就是無(wú)須人工干預(yù)梗劫,血緣分析系統(tǒng)追蹤物理層數(shù)據(jù)自動(dòng)生成作業(yè)依賴(lài)及元數(shù)據(jù)享甸。從而進(jìn)一步避免了需要手工配置作業(yè)依賴(lài)以及元數(shù)據(jù)邏輯層與物理層不兼容的情況。
b. 亂序執(zhí)行問(wèn)題梳侨。
傳統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù)一般是按天跑批蛉威,當(dāng)然進(jìn)一步發(fā)展可以按日期范圍跑批。
按日期范圍跑批也是極好的走哺,因?yàn)榭梢詫v史補(bǔ)批與單日跑批建立在統(tǒng)一的層次上蚯嫌。
如果是響應(yīng)式跑批,我們可以達(dá)到更大的靈活性丙躏,直接突破傳統(tǒng)模式择示。即我們可以任意時(shí)間跑批,任意順序跑批晒旅,甚至任意不同日期組合跑批栅盲!
當(dāng)然這個(gè)難度也是有所提升,不過(guò)可以面對(duì)日益復(fù)雜的環(huán)境废恋。
畢竟數(shù)據(jù)部分延遲導(dǎo)致整個(gè)批量[數(shù)據(jù)周期不同步]谈秫,[歷史日期數(shù)據(jù)缺失或損壞]多日后進(jìn)行數(shù)據(jù)修復(fù)及補(bǔ)批的現(xiàn)象隨著源系統(tǒng)的數(shù)量暴發(fā)而會(huì)日益普遍。
并且對(duì)于響應(yīng)式數(shù)據(jù)倉(cāng)庫(kù)來(lái)說(shuō)鱼鼓,調(diào)度系統(tǒng)與數(shù)據(jù)無(wú)關(guān)拟烫。調(diào)度系統(tǒng)按照日期及數(shù)據(jù)服務(wù)接口觸發(fā)進(jìn)行依賴(lài)關(guān)系檢查后進(jìn)行依賴(lài)游走執(zhí)行批量,與其相關(guān)的是系統(tǒng)日期迄本,而非批量日期硕淑!而對(duì)于調(diào)度[元數(shù)據(jù)系統(tǒng)數(shù)據(jù)模式推導(dǎo)關(guān)系SQL]來(lái)說(shuō),SQL僅關(guān)心數(shù)據(jù)日期及批量日期嘉赎,而不關(guān)心系統(tǒng)日期置媳。
傳統(tǒng)的調(diào)度系統(tǒng),將系統(tǒng)日期與數(shù)據(jù)日期混為一談公条,實(shí)則是技術(shù)水平不成熟的表現(xiàn)半开!
所以調(diào)度系統(tǒng)應(yīng)該沒(méi)有日期,系統(tǒng)日期只是作業(yè)的元數(shù)據(jù)而已赃份!
而響應(yīng)式數(shù)據(jù)倉(cāng)庫(kù)采用增量事件觸發(fā)進(jìn)行依賴(lài)游走寂拆,進(jìn)行完成數(shù)據(jù)的響應(yīng)式轉(zhuǎn)換奢米。
c. 依賴(lài)游走問(wèn)題。
既然現(xiàn)在調(diào)度沒(méi)有日期了纠永,并且數(shù)據(jù)方面會(huì)有亂序情況且周期不同步的情況產(chǎn)生鬓长。
這時(shí)候必然會(huì)產(chǎn)生依賴(lài)游走的計(jì)算規(guī)則。
依賴(lài)游走有二種增量傳播形式:一種是無(wú)序并行尝江,另一種是有序依賴(lài)
比如每天的交易量涉波,就是無(wú)序并行依賴(lài),也就是說(shuō)每個(gè)批量之間相互沒(méi)有影響炭序。啤覆,
比如快照,新的數(shù)據(jù)優(yōu)先級(jí)較低優(yōu)先級(jí)高惭聂,或者 新的數(shù)據(jù)一定依賴(lài)于先前的數(shù)據(jù)日期批量窗声,這種情況就是有序依賴(lài)。
依賴(lài)游走對(duì)于依賴(lài)關(guān)系綁定也有兩種形式: 一種是被動(dòng)觸發(fā)辜纲,一種是主動(dòng)觸發(fā)笨觅。
正常情況下是被動(dòng)觸發(fā),也就是由依賴(lài)游走自然進(jìn)行增量傳播耕腾。對(duì)于新加入的SQL见剩,或者有數(shù)據(jù)保護(hù)特征功能的可以開(kāi)啟主動(dòng)觸發(fā)。何為主動(dòng)觸發(fā)扫俺,是根據(jù)自身與依賴(lài)對(duì)象的距離進(jìn)行自我修復(fù)苍苞。比如依賴(lài)歷史數(shù)據(jù)已經(jīng)有了一年,對(duì)于第一次作業(yè)運(yùn)行狼纬,自然是0柒啤,跑批模式是按天去跑,被動(dòng)觸發(fā)是一天的增量畸颅,而主動(dòng)觸發(fā)則是0到依賴(lài)歷史數(shù)據(jù)距離一年的周期,所以可以輕松完成補(bǔ)批功能方援。而對(duì)于數(shù)據(jù)重跑没炒,主動(dòng)觸發(fā)計(jì)算距離的時(shí)候距離并不做改變,所以不做任務(wù)處理犯戏,從而完成了數(shù)據(jù)的保護(hù)性送火。當(dāng)觸發(fā)一個(gè)數(shù)據(jù)時(shí)間段修復(fù)事件的時(shí)間 ,主動(dòng)觸發(fā)根據(jù)新的距離重新拉取最新的準(zhǔn)確數(shù)據(jù)先匪。
d. 監(jiān)控自愈問(wèn)題种吸。
對(duì)于傳統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)質(zhì)量監(jiān)控報(bào)錯(cuò)之后是跟批量沒(méi)有半點(diǎn)關(guān)系的呀非,這時(shí)候需要人工干預(yù)坚俗。而對(duì)于響應(yīng)式數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)來(lái)說(shuō)镜盯,數(shù)據(jù)質(zhì)量監(jiān)控是調(diào)度系統(tǒng)的一個(gè)擴(kuò)展,可以有效地進(jìn)行故障追蹤猖败,以及批量自動(dòng)修復(fù)速缆。當(dāng)數(shù)據(jù)質(zhì)量監(jiān)控系統(tǒng)捕獲到異常后,數(shù)據(jù)質(zhì)量系統(tǒng)首先進(jìn)行多級(jí)別的故障追蹤恩闻,接著定位故障點(diǎn)艺糜,對(duì)于故障點(diǎn)進(jìn)行修復(fù)后,重提批量幢尚,完成自動(dòng)化修復(fù)破停。
故障點(diǎn)檢測(cè)技術(shù)也分為兩種模式,一種是阻塞模式尉剩,另一種是貪心回彈模式真慢。
阻塞模式相當(dāng)簡(jiǎn)單,就是監(jiān)測(cè)作業(yè)運(yùn)行開(kāi)始前或者運(yùn)行完成后边涕,進(jìn)行數(shù)據(jù)質(zhì)量檢測(cè)腳本的運(yùn)行晤碘,如果運(yùn)行失敗后就阻塞整個(gè)批量,等待數(shù)據(jù)修復(fù)事件的到來(lái)功蜓。而對(duì)于貪心回彈模式來(lái)說(shuō)园爷,數(shù)據(jù)運(yùn)行完成后,異步進(jìn)行數(shù)據(jù)質(zhì)量檢測(cè)式撼,防止阻塞批量童社,正常情況下批量正常運(yùn)行,數(shù)據(jù)質(zhì)量臨控可以慢悠悠地低優(yōu)先級(jí)完成 著隆。查是一旦發(fā)現(xiàn)異常情況點(diǎn)扰楼,數(shù)據(jù)質(zhì)量監(jiān)控回彈整個(gè)批量至故障點(diǎn),阻塞批量等待數(shù)據(jù)修復(fù)事件出現(xiàn)美浦。