awslabs/deequ

Deequ is a library built on top of Apache Spark for defining "unit tests for data", which measure data quality in large datasets.

何を解決するか

Deequは、大規模なデータセットを「ユニットテスト」する方法を提供し、誤ったデータや破損したデータがコンシューマーシステムや機械学習アルゴリズムに到達するのを早期に防ぎます。開発者はデータに関する仮定(たとえば、特定の列にnull値がないこと)を明示的に記述し、スケールに応じて検証できます。

動作方法

Apache Sparkの上に構築されたDeequは、テーブル形式のデータ(CSV、データベーステーブル、ログなど)を処理し、定義された制約をSparkジョブの連続として変換してメトリクスを計算します。Scala/Java APIまたは宣言型言語であるDQDL(Data Quality Definition Language)を用いて、完全性、一意性、範囲チェックなどのルールを定義できます。また、行レベルでの評価もサポートしており、特定のルールに違反したレコードを正確に特定できます。

対象ユーザー

大規模なデータセット(数十億行)を分散ファイルシステムやデータウェアハウスで扱い、データ品質と一貫性を確保する必要があるデータエンジニアやML実践者。

主な特徴

  • スケーラブルな検証: Apache Sparkを活用して数十億行のデータに対して設計されています。
  • 宣言型ルール: 読みやすくシンプルなルール定義を可能にするDQDLをサポート。
  • コードによる制約: 量子化、URLパターン、サイズ制約など、複雑なチェックを定義するための柔軟なAPI。
  • 高度な分析: データプロファイリング、時間経過に伴うメトリクスの異常検出、自動制約提案機能を含む。
  • 行レベルの追跡: 品質チェックに失敗した特定の行を特定できる機能。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト