整體架構(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ù)采用無(wú)中心化設(shè)計(jì),支持水平無(wú)限擴(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采用無(wú)中心化設(shè)計(jì),支持動(dòng)態(tài)增容擴(kuò)展。集群中所有節(jié)點(diǎn)都能對(duì)外提供服務(wù),節(jié)點(diǎn)之間通過(guò)競(jìng)爭(zhēng)分布式鎖獲取Job來(lái)進(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)接口來(lái)實(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讓用戶可以開(kāi)箱即用,同時(shí)也支持用戶實(shí)現(xiàn)Metric相關(guān)接口來(lái)新增用戶個(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來(lái)執(zhí)行數(shù)據(jù)源的連接和數(shù)據(jù)讀取,由Transformer來(lái)執(zhí)行各種聚合統(tǒng)計(jì)處理,由Sink來(lái)執(zhí)行執(zhí)行結(jié)果的輸出。不同的計(jì)算引擎實(shí)現(xiàn)方式有所不同,但是核心的流程就是讀取數(shù)據(jù),執(zhí)行統(tǒng)計(jì)和輸出數(shù)據(jù)。插件化設(shè)計(jì)允許用戶自定義Engine來(lái)增加新的計(jì)算引擎。
流程設(shè)計(jì)
任務(wù)執(zhí)行流程

數(shù)據(jù)監(jiān)控參數(shù)生成流程

未完待續(xù)。。。
加入我們
Datavines 的目標(biāo)是成為更好的數(shù)據(jù)可觀測(cè)性領(lǐng)域的開(kāi)源項(xiàng)目,為更多的用戶去解決元數(shù)據(jù)管理和數(shù)據(jù)質(zhì)量管理中遇到的問(wèn)題。在此我們真誠(chéng)歡迎更多的貢獻(xiàn)者參與到社區(qū)建設(shè)中來(lái),和我們一起成長(zhǎng),攜手共建更好的社區(qū)。
- 項(xiàng)目地址: https://github.com/datavane/datavines
- 問(wèn)題和建議: https://github.com/datavane/datavines/issues
- 貢獻(xiàn)代碼: https://github.com/datavane/datavines/pulls
關(guān)于Datavane
Datavane是一個(gè)專注于大數(shù)據(jù)領(lǐng)域的開(kāi)源組織(社區(qū)),由一群大數(shù)據(jù)領(lǐng)域優(yōu)秀的開(kāi)源項(xiàng)目作者共同創(chuàng)建,旨在幫助開(kāi)源項(xiàng)目作者更好的建設(shè)項(xiàng)目、為大眾提供高質(zhì)量的開(kāi)源軟件,宗旨是:只為做一個(gè)好軟件。目前已經(jīng)聚集了一批優(yōu)質(zhì)的開(kāi)源項(xiàng)目,涉及到數(shù)據(jù)集成、大數(shù)據(jù)組件管理、數(shù)據(jù)質(zhì)量等。
在 Datavane 社區(qū)中,所有的項(xiàng)目都是開(kāi)源開(kāi)放的,代碼質(zhì)量和架構(gòu)設(shè)計(jì)優(yōu)質(zhì)的潛力項(xiàng)目。社區(qū)保持開(kāi)放中立、協(xié)作創(chuàng)造、堅(jiān)持精品,鼓勵(lì)所有的開(kāi)發(fā)者、用戶和貢獻(xiàn)者積極參與我們的社區(qū)、共同合作,創(chuàng)新創(chuàng)造,建設(shè)一個(gè)更加強(qiáng)大的開(kāi)源社區(qū)。
Github: https://github.com/datavane