整體架構
Datavines [github] 是一個數據可觀測性系統,旨在幫助企業減少“數據宕機時間”,幫助企業能夠在數據錯誤導致損失之前及時發現數據錯誤,它具有數據目錄管理、數據質量監控和SLAs等功能。下面是它的架構設計圖:
DatavinesServer 服務采用無中心化設計,支持水平無限擴容。主要負責對外提供API、調度各種數據監控任務并執行。
組件詳解
CatalogManager
主要功能
- Api 服務
- 數據源管理
- 數據源的元數據管理
- 數據質量管理
- 數據質量檢查作業調度和執行
- 檢查規則管理
- 質量檢查管理
- SLAs 管理
- 錯誤數據管理
高可用設計
- DatavinesServer采用無中心化設計,支持動態增容擴展。集群中所有節點都能對外提供服務,節點之間通過競爭分布式鎖獲取Job來進行調度和執行
MetaDataServer
MetaDataServer是元數據管理中心,主要負責數據目錄,元數據模型、元數據存儲、查詢等元數據相關的功能。
MetaDataCrawler
MetaDataCrawler 主要負責定時去抓取指定數據源的元數據信息,然后更新到元數據存儲引擎中
NotificationServer
NotificationServer主要負責告警,用戶在平臺上配置告警規則,一旦數據監控任務觸發告警,那么NotificationServer就會將報錯信息發送到指定的平臺上,例如郵箱,企業微信等
核心設計
插件化設計
Connector插件化設計
- Connector模塊中定義了包括不僅限于連接參數相關、元數據信息獲取相關、數據源執行腳本相關等接口,用于實現連接數據源、獲取元數據信息以及執行相應腳本等功能。
- 插件化設計允許用戶實現Connector模塊的相應接口來實現添加自定義數據源
Metric插件化設計
- Metric是平臺中非常重要的組成部分,主要用在各種數據監控任務中,Metric的豐富性使得平臺的監控和檢查手段更加豐富。本平臺會內置多種Metric讓用戶可以開箱即用,同時也支持用戶實現Metric相關接口來新增用戶個性化的Metric。
Engine插件化設計
- Engine是平臺核心組成部分,是定義數據監控任務在計算引擎中的執行邏輯,不同的Engine對應不同的執行引擎,例如Spark、Flink、Presto等。執行邏輯主要由Sources、Transformers和Sinks組成,由Source來執行數據源的連接和數據讀取,由Transformer來執行各種聚合統計處理,由Sink來執行執行結果的輸出。不同的計算引擎實現方式有所不同,但是核心的流程就是讀取數據,執行統計和輸出數據。插件化設計允許用戶自定義Engine來增加新的計算引擎。
流程設計
任務執行流程
數據監控參數生成流程
未完待續。。。
加入我們
Datavines 的目標是成為更好的數據可觀測性領域的開源項目,為更多的用戶去解決元數據管理和數據質量管理中遇到的問題。在此我們真誠歡迎更多的貢獻者參與到社區建設中來,和我們一起成長,攜手共建更好的社區。
- 項目地址: https://github.com/datavane/datavines
- 問題和建議: https://github.com/datavane/datavines/issues
- 貢獻代碼: https://github.com/datavane/datavines/pulls
關于Datavane
Datavane
是一個專注于大數據領域的開源組織(社區),由一群大數據領域優秀的開源項目作者共同創建,旨在幫助開源項目作者更好的建設項目、為大眾提供高質量的開源軟件,宗旨是:只為做一個好軟件。目前已經聚集了一批優質的開源項目,涉及到數據集成、大數據組件管理、數據質量等。
在 Datavane
社區中,所有的項目都是開源開放的,代碼質量和架構設計優質的潛力項目。社區保持開放中立、協作創造、堅持精品,鼓勵所有的開發者、用戶和貢獻者積極參與我們的社區、共同合作,創新創造,建設一個更加強大的開源社區。
Github: https://github.com/datavane