DUICUO

2023年に人気のオープンソースデータ品質管理ツール6選

都市管理、スマートコミュニティ、産業インテリジェンス、スマートファイナンス、スマートヘルスケアなど、社会の様々な分野におけるデジタル化とインテリジェント化は、ビッグデータとAIを基盤とした技術システムと不可分です。私たちの社会(あるいは私たちが注力する分野)は、生産データや行動データなど、膨大な量のデータを日々生成しています。これらのデータを効果的に活用し、価値を創造するには、データの生成、収集、管理、応用といった分野におけるデータガバナンスが不可欠です。データ品質はビッグデータ分野において極めて重要な特性です。低品質のデータはリソースを浪費するだけでなく、計算結果にも影響を与え、ビッグデータアプリケーションの価値に重大な影響を与えます。そのため、データ品質管理はデータガバナンスの重要なモジュールです。

データ品質管理は、データ品質を評価・改善することを目的としており、データ資産全体の品質を特定、測定、監視し、向上させるための機能を提供します。しかし、ビッグデータプラットフォーム構築の初期段階では、データ品質は見落とされやすい領域です。データアーキテクチャの継続的な成熟とオープンソースのデータ品質ツールの開発に伴い、データ品質管理は徐々に注目を集め、改善されてきました。

現在、オープンソースコミュニティでは多くのデータ品質ツールが登場しており、選択肢もますます増えています。以下は、2023年に特に人気の高いオープンソースのデータ品質管理ツール6つです。

1.ディーク

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コア

GITHUB: https://github.com/dbt-labs/dbt-core

dbtは、動的SQL、テンプレート、モデリングをサポートするデータパイプライン開発プラットフォームです。dbtの主要機能は自動テストであり、包括的なデータテスト、データ品質チェック、データ検証を実行できます。dbtによって実行される品質検査モデルは、データパイプライン、データソース、ターゲットデータ(データパラダイム(3NF以上)モデル、ディメンショナルモデル、データウェアハウスモデルなど)上で使用できます。

データテストとデータ品質機能の提供に加えて、アプリケーションエコシステムの多くの企業は、dbtにデータ品質機能を拡張しています。例えば、Elementaryはdbt内のすべてのコンテンツを要約し、データ品質監視メトリクス、データ鮮度、データ異常情報、異常データ分析機能を提供します。

3. モビーDQ

GITHUB: https://github.com/ubisoft

デモ: https://ubisoft.github.io/mobydq/pages/demo/

MobyDQ は、データ エンジニアリング チーム向けのツールであり、使用しているデータ ソースに関係なく、データ パイプラインでデータ品質チェックを自動的に実行し、データ品質の問題をキャプチャし、異常な状況でアラートをトリガーすることができます。

データ品質テストツールであるMobyDQは、開発環境とテスト環境で独立して実行できます。本番環境では、DockerまたはKubernetesコンテナを使用した実行もサポートしています。MobyDQのデータ品質フレームワークは、完全性、鮮度、応答時間、妥当性という4つの主要な品質指標に重点を置いています。MobyDQは、MySQL、PostgreSQL、Teradata、Hive、Snowflake、MariaDBなど、幅広いデータソースをサポートしています。ユーザーは、PythonやJavaScriptなどのプログラミング言語で使用できるGraphQL APIを使用してテストを実行できます。さらに、MobyDQは、Hive、PostgreSQL、MySQLなどのデータソースに基づく構造化データテストのデモも提供しています。

4. 大いなる遺産

https://github.com/great-expectations/great_expectations

Great Expectations (GX) を使用すると、データ エンジニアは品質チェックを実行し、分析ドキュメントを作成して、チーム メンバーのデータ理解を向上させることができます。

Great Expectations (GX) は、最も人気のあるデータ品質管理ツールの一つです。Great Expectations の根底にある考え方は、「コードをテストするだけでなく、データをテストするべきです。結局のところ、複雑さはデータの中にこそ存在するのですから。」というものです。

つまり、「コードをテストするだけでなく、データもテストする必要があります。結局のところ、複雑なのはデータなのです。」

GXは、データソースに接続し、定義済みの統合テンプレートを実行することでデータを検査します。Databasericks、Flyte、Perfect、EMRなどのツールやプラットフォームとのGXの統合に関する詳細は、公式ガイドをご覧ください。Great Expectationは現在積極的にメンテナンスされており、Vimeo、Calm、ING、Glovo、Avito、DeliveryHero、Atlan、Heinekenなどの企業で使用されています。

GXは「データの期待される状態」を定義します。GXとデータソースの統合により、すべてのデータ品質チェックが適切に実行され、データソースからデータが削除されることはありません。GXは、自動データ品質チェック、リアルタイム監視結果のログ記録、ランタイムサマリーなどを通じて、データ品質管理をサポートします。GXは、AirflowやMeltanoなどのツールと直接統合することもできます。また、品質チェック結果を様々なデータベースやファイルシステムに保存できます。

5. ソーダコア

https://github.com/sodadata

Soda Coreは、Pythonで開発されたオープンソースのデータ品質ツールで、データプラットフォーム内のデータの信頼性を確保するために設計されています。コマンドラインツールが付属し、YAMLと互換性のある信頼性の高いドメイン固有言語であるSodaCL(Soda Checks Language)をサポートしています。Soda Coreはデータソースやワークフローに接続できるため、パイプラインの内外を問わずデータの検査が可能です。Soda Coreは幅広いデータソース、コネクタ、テストタイプをサポートしており、Dask、DuckDB、Dremioなどのオープンソースプロジェクトの中で、データコネクタの対応範囲において最も包括的なデータ品質ツールとなっています。

Soda Core Pythonライブラリの主な目標の一つは、データソースのチェックを実行し、データ品質の問題を発見できるようにすることです。Soda Coreは、Soda Coreでクエリを実行して品質チェックを行うのと同様に、コマンドラインからSodaCLチェックファイルを実行し、事前定義されたルールに基づいてスキャンタスクを完了することをサポートしています。

6. キュウリ

https://github.com/cucumber/

Cucumberフレームワークは、実際には真のデータ品質検査ツールではありません。しかし、pytest-bddテストライブラリと統合することで、振る舞い駆動開発とテストをサポートできます。

Cucumberのコア機能は、開発者、データエンジニア、セキュリティエンジニアのニーズを考慮する必要がないことです。エンドユーザーの視点からテスト要件を記述することに重点を置いています。そのため、Cucumberでは、簡単な英語の指示が書かれた定義済みのテストテンプレートに入力するだけで、新しいテスト要件を作成できます。

Cucumberの目標は、誰もが理解できるテスト要件を記述できるようにし、作業負荷を大幅に軽減することです。Cucumberは、Jenkins、Airflowなどのあらゆるオーケストレーションエンジンやワークフローエンジンと統合して、テストケースの作成と実行が可能です。

上記の 6 つの一般的なオープンソースのデータ品質テスト ツールを最新のデータ管理システムと組み合わせて使用​​することで、データ品質のテストと監視、アラートの設定、データ品質の視覚化と分析が可能になり、データ プラットフォームの全体的な状態をより深く理解できます。