整體架構(gòu)
Datavines [github] 是一個(gè)數(shù)據(jù)可觀測(cè)性系統(tǒng)赃额,旨在幫助企業(yè)減少“數(shù)據(jù)宕機(jī)時(shí)間”,幫助企業(yè)能夠在數(shù)據(jù)錯(cuò)誤導(dǎo)致?lián)p失之前及時(shí)發(fā)現(xiàn)數(shù)據(jù)錯(cuò)誤咪橙,它具有數(shù)據(jù)目錄管理耳胎、數(shù)據(jù)質(zhì)量監(jiān)控和SLAs等功能悼粮。下面是它的架構(gòu)設(shè)計(jì)圖:
DatavinesServer 服務(wù)采用無中心化設(shè)計(jì)掀淘,支持水平無限擴(kuò)容竖席。主要負(fù)責(zé)對(duì)外提供API定铜、調(diào)度各種數(shù)據(jù)監(jiān)控任務(wù)并執(zhí)行。
組件詳解
CatalogManager
主要功能
- Api 服務(wù)
- 數(shù)據(jù)源管理
- 數(shù)據(jù)源的元數(shù)據(jù)管理
- 數(shù)據(jù)質(zhì)量管理
- 數(shù)據(jù)質(zhì)量檢查作業(yè)調(diào)度和執(zhí)行
- 檢查規(guī)則管理
- 質(zhì)量檢查管理
- SLAs 管理
- 錯(cuò)誤數(shù)據(jù)管理
高可用設(shè)計(jì)
- DatavinesServer采用無中心化設(shè)計(jì)怕敬,支持動(dòng)態(tài)增容擴(kuò)展揣炕。集群中所有節(jié)點(diǎn)都能對(duì)外提供服務(wù),節(jié)點(diǎn)之間通過競(jìng)爭(zhēng)分布式鎖獲取Job來進(jìn)行調(diào)度和執(zhí)行
MetaDataServer
MetaDataServer是元數(shù)據(jù)管理中心东跪,主要負(fù)責(zé)數(shù)據(jù)目錄畸陡,元數(shù)據(jù)模型、元數(shù)據(jù)存儲(chǔ)虽填、查詢等元數(shù)據(jù)相關(guān)的功能丁恭。
MetaDataCrawler
MetaDataCrawler 主要負(fù)責(zé)定時(shí)去抓取指定數(shù)據(jù)源的元數(shù)據(jù)信息,然后更新到元數(shù)據(jù)存儲(chǔ)引擎中
NotificationServer
NotificationServer主要負(fù)責(zé)告警斋日,用戶在平臺(tái)上配置告警規(guī)則牲览,一旦數(shù)據(jù)監(jiān)控任務(wù)觸發(fā)告警,那么NotificationServer就會(huì)將報(bào)錯(cuò)信息發(fā)送到指定的平臺(tái)上恶守,例如郵箱第献,企業(yè)微信等
核心設(shè)計(jì)
插件化設(shè)計(jì)
Connector插件化設(shè)計(jì)
- Connector模塊中定義了包括不僅限于連接參數(shù)相關(guān)、元數(shù)據(jù)信息獲取相關(guān)兔港、數(shù)據(jù)源執(zhí)行腳本相關(guān)等接口庸毫,用于實(shí)現(xiàn)連接數(shù)據(jù)源、獲取元數(shù)據(jù)信息以及執(zhí)行相應(yīng)腳本等功能衫樊。
- 插件化設(shè)計(jì)允許用戶實(shí)現(xiàn)Connector模塊的相應(yīng)接口來實(shí)現(xiàn)添加自定義數(shù)據(jù)源
Metric插件化設(shè)計(jì)
- Metric是平臺(tái)中非常重要的組成部分飒赃,主要用在各種數(shù)據(jù)監(jiān)控任務(wù)中,Metric的豐富性使得平臺(tái)的監(jiān)控和檢查手段更加豐富科侈。本平臺(tái)會(huì)內(nèi)置多種Metric讓用戶可以開箱即用载佳,同時(shí)也支持用戶實(shí)現(xiàn)Metric相關(guān)接口來新增用戶個(gè)性化的Metric。
Engine插件化設(shè)計(jì)
- Engine是平臺(tái)核心組成部分臀栈,是定義數(shù)據(jù)監(jiān)控任務(wù)在計(jì)算引擎中的執(zhí)行邏輯蔫慧,不同的Engine對(duì)應(yīng)不同的執(zhí)行引擎,例如Spark挂脑、Flink藕漱、Presto等欲侮。執(zhí)行邏輯主要由Sources、Transformers和Sinks組成肋联,由Source來執(zhí)行數(shù)據(jù)源的連接和數(shù)據(jù)讀取威蕉,由Transformer來執(zhí)行各種聚合統(tǒng)計(jì)處理,由Sink來執(zhí)行執(zhí)行結(jié)果的輸出橄仍。不同的計(jì)算引擎實(shí)現(xiàn)方式有所不同韧涨,但是核心的流程就是讀取數(shù)據(jù),執(zhí)行統(tǒng)計(jì)和輸出數(shù)據(jù)侮繁。插件化設(shè)計(jì)允許用戶自定義Engine來增加新的計(jì)算引擎虑粥。
流程設(shè)計(jì)
任務(wù)執(zhí)行流程
數(shù)據(jù)監(jiān)控參數(shù)生成流程
未完待續(xù)。宪哩。娩贷。
加入我們
Datavines 的目標(biāo)是成為更好的數(shù)據(jù)可觀測(cè)性領(lǐng)域的開源項(xiàng)目,為更多的用戶去解決元數(shù)據(jù)管理和數(shù)據(jù)質(zhì)量管理中遇到的問題锁孟。在此我們真誠歡迎更多的貢獻(xiàn)者參與到社區(qū)建設(shè)中來彬祖,和我們一起成長,攜手共建更好的社區(qū)品抽。
- 項(xiàng)目地址: https://github.com/datavane/datavines
- 問題和建議: https://github.com/datavane/datavines/issues
- 貢獻(xiàn)代碼: https://github.com/datavane/datavines/pulls
關(guān)于Datavane
Datavane
是一個(gè)專注于大數(shù)據(jù)領(lǐng)域的開源組織(社區(qū))储笑,由一群大數(shù)據(jù)領(lǐng)域優(yōu)秀的開源項(xiàng)目作者共同創(chuàng)建,旨在幫助開源項(xiàng)目作者更好的建設(shè)項(xiàng)目圆恤、為大眾提供高質(zhì)量的開源軟件突倍,宗旨是:只為做一個(gè)好軟件。目前已經(jīng)聚集了一批優(yōu)質(zhì)的開源項(xiàng)目盆昙,涉及到數(shù)據(jù)集成羽历、大數(shù)據(jù)組件管理、數(shù)據(jù)質(zhì)量等弱左。
在 Datavane
社區(qū)中窄陡,所有的項(xiàng)目都是開源開放的炕淮,代碼質(zhì)量和架構(gòu)設(shè)計(jì)優(yōu)質(zhì)的潛力項(xiàng)目拆火。社區(qū)保持開放中立、協(xié)作創(chuàng)造涂圆、堅(jiān)持精品们镜,鼓勵(lì)所有的開發(fā)者、用戶和貢獻(xiàn)者積極參與我們的社區(qū)润歉、共同合作模狭,創(chuàng)新創(chuàng)造,建設(shè)一個(gè)更加強(qiáng)大的開源社區(qū)踩衩。
Github: https://github.com/datavane