六個2023年熱門開源數據質量管理工具
城市管理、智慧社區、工業智能化、智慧金融、智慧醫療等社會千行百業的數字化和智能化發展,離不開以大數據和AI為基礎的技術體系。我們的社會(或者我們關注的領域)每天都在產生大量的數據,這些數據有的是生產數據,有的是行為數據,如何利用好這些數據,讓數據產生價值就需要對數據的產生、收集、管理、應用等方面進行數據治理。數據質量是大數據領域的一個重要特征,低質量的數據不僅浪費資源,更影響數據計算結果,數據質量的高低對大數據應用價值有著很大影響。因此,數據質量管理是數據治理的一個重要模塊。
數據質量管理旨在評估和改善數據質量,提供了識別、測量、監控和提高數據資產整體質量的功能。然而,大數據平臺建設初期,數據質量往往是一個容易被忽視的領域,隨著數據架構的不斷成熟以及開源數據質量工具的發展,數據質量管理逐步得到重視和改善。
目前,開源社區出現了許多數據質量工具,可選擇的項目越來越多,下面是2023年比較熱門的6個開源數據質量管理工具。
1.Deequ
GITHUB:https://github.com/awslabs/deequ
隨著Spark的應用越來越多,Deequ是一款非常適合用于Spark的質量檢測工具,非常適合測試大批量數據,Spark DataFrame的任何東西都可以使用Deequ進行測試。并將結果輸出到任何關系數據庫、CSV文件或者日志等。Spark的作業主要使用Scala或Python語言編寫,對于原生Scala,Deequ可以直接使用,但對于Python,就需要一個名為PyDeequ的包裝器。
pip install pydeequ
相關文檔可以參考:https://pydeequ.readthedocs.io/en/latest/README.html
2.dbt Core
GITHUB:https://github.com/dbt-labs/dbt-core
dbt是一個數據管道開發平臺,支持動態SQL、模板和建模等功能。dbt的一個重要特性是自動化測試,用戶可以使用dbt執行全面數據測試、數據質量檢查和數據驗證。可以在數據管道、數據源和目標數據之上使用dbt執行的質量檢測模型,例如:數據范式(3NF及以上)模型、維度模型和數據倉庫模型。
dbt除了提供數據測試和數據質量功能,在應用生態上,許多公司還為dbt擴展數據質量功能。例如:Elementary,它能夠總結dbt中的所有內容,提供數據質量監控指標、數據新鮮度、數據異常信息和異常數據分析的功能。
3.MobyDQ
GITHUB:https://github.com/ubisoft
DEMO:https://ubisoft.github.io/mobydq/pages/demo/
MobyDQ是數據工程團隊的一個工具,可以自動對數據管道進行數據質量檢查,捕獲數據質量問題并在異常情況下觸發警報,無論他們使用的數據源是什么。
數據質量檢測工具MobyDQ可以獨立運行于開發環境和測試環境。而在生產環境中,MobyDQ也支持使用Docker或Kubernetes容器運行。 MobyDQ的數據質量框架主要側重四大質量指標:完整性、新鮮度、響應時間和有效性。MobyDQ支持豐富的數據源,例如:MySQL、PostgreSQL、Teradata、Hive、Snowflake和MariaDB等。 MobyDQ允許用戶使用其GraphQL API運行測試,支持將此API與Python 或 JavaScript之類的編程語言一起使用,另外,MobyDQ在結構化數據測試方面,它還提供了基于Hive,PostgreSQL,MySQL等數據源的Demo。
4.Great Expectations
https://github.com/great-expectations/great_expectations
Great Expectations(GX)可以數據工程師進行質量檢測、創建分析文檔來提高團隊成員對數據的理解。
Great Expectations(GX)是最受歡迎的數據質量管理工具之一。創建Great Expectations的核心思想是:“instead of just testing code, and we should be testing data. After all, that’s where the complexity lives.”
意思是:“不僅僅是測試代碼,更應該測試數據。畢竟,數據才是復雜性所在。”
GX期望通過連接到數據源運行事先定義好的集成模板來檢測數據。在官方指南中,可以找到更多關于GX與Databasericks、Flyte、Prefect和EMR等工具和平臺集成的信息。目前Great Expectation維護非常積極,并且已被Vimeo、Calm、ING、Glovo、Avito、DeliveryHero、Atlan和Heineken等公司使用。
GX規范了“數據的預期狀態”。GX與數據源的集成意味著所有的數據質量檢查都在適當的位置完成,并且沒有數據被移出數據源。GX還可通過自動化數據質量檢測、實時監測結果記錄以及運行摘要來支持數據質量管理。GX還可以直接與Airflow , Meltano等工具集成。支持將質量檢測結果保存到各種數據庫或者文件系統中。
5.Soda Core
https://github.com/sodadata
Soda Core是一個Python開發的開源數據質量工具,旨在確保數據平臺中的數據可靠性。它附帶了命令行工具。支持SodaCL(Soda Checks Language),SodaCL是一種兼容YAML,可靠的,用于特定領域的語言。Soda Core可以連接到數據源和工作流,確保數據不論在管道內還是管道外都能夠被檢測。Soda Core支持廣泛的數據源、連接器和測試類型,它是目前開源項目中對數據連接器覆蓋最全面的數據質量工具,如Dask、DuckDB、Dremio等。
Soda Core Python庫的主要目標之一是能夠對運行檢查數據源來查找數據源中的數據質量問題。Soda Core支持使用命令行執行SodaCL檢查文件以完成預定義規則的掃描任務,命令行任務的方式和使用Soda Core運行查詢來執行質量檢測一樣。
6.Cucumber
https://github.com/cucumber/
Cucumber框架其實并非一個真正意義上的數據質量檢測工具。但它卻能夠與pytest-bdd測試庫集成,以支持基于行為驅動的開發和測試。
Cucumber的核心特性在于不需要考慮開發人員、數據工程師或安全工程師的需求,而是以最終用戶為中心編寫測試要求,因此在Cucumber中只需要使用簡單的英語說明填充預定義的測試模板,便可完成新的測試要求。
Cucumber的目標是讓你編寫任何人都能理解的測試要求,大大減輕工作難度。可以將Cucumber與任何編排和工作流引擎集成在一起,比如 Jenkins、 Airflow等等,實現測試用例的編寫和執行。
以上六種比較熱門的開源數據質量檢測工具,您可以將這些工具與現代數據管理系統一起使用,以測試和監控數據質量,并設置警報,實現數據質量可視化和可分析,以便更深入地了解數據平臺的整體狀態。