Sentri — プロダクション対応データ品質検証フレームワーク

Library

概要

Sentriは、運用環境でのデータ品質検証を想定して設計されたPython製フレームワークです。YAMLベースの設定ファイルで検証ルールを記述でき、環境変数による上書きなどデプロイ時の柔軟性も確保されています。提供されるチェックは「完全性(Completeness)」「一意性(Uniqueness)」「レンジ(Range)」「入れ替わり/ターンオーバー(Turnover)」「値のスパイク(Value Spike)」「頻度(Frequency)」「相関(Correlation)」「統計的検定(Statistical)」「分布(Distribution)」「ドリフト(Drift)」の10種類。CSV、Oracle、Snowflakeなどのコネクタを通じてデータ取得が可能で、結果はJSONやHTML、CSV、DataFrame等で出力できます。拡張性が高く、独自コネクタや出力フォーマットの追加も想定されています。

GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 0
  • ウォッチャー数: 2
  • コミット数: 5
  • ファイル数: 12
  • メインの言語: Python

主な特徴

  • YAMLで記述する柔軟な検証設定と環境変数によるオーバーライド
  • 10種類の検証タイプを標準実装(完全性・一意性・レンジ・ドリフト等)
  • CSV/Oracle/Snowflakeなど複数コネクタをサポートし拡張可能
  • 結果の出力はJSON/HTML/CSV/DataFrameなど複数フォーマット

技術的なポイント

Sentriは「設定駆動(configuration-driven)」アプローチで設計されており、検証ロジックとデータ取得を分離しているのが大きな特徴です。YAMLで検証ジョブを定義すると、それを読み取って該当するコネクタからデータを引き出し、指定されたチェックを順次実行します。チェックタイプは統計的な手法(例えば分布比較や統計検定)から単純なメトリクス計算(欠損率、ユニーク比率、閾値チェック)まで幅広く実装されており、ドリフトやスパイク検出のような時系列的変化検知にも対応しています。

コネクタ設計は抽象化されており、CSVなどのファイルベースからリレーショナルDB(Oracle)、クラウドデータウェアハウス(Snowflake)まで同一インターフェースで扱えます。これにより、新しいデータソースの追加実装が容易です。出力部分もプラグイン可能で、結果をそのままパイプラインに渡すためのDataFrame出力や、人間向けのHTMLレポート、他システム向けのJSON/CSV形式が用意されています。設定ファイルには環境変数展開機能があり、CI/CDや異なるステージ(dev/stage/prod)での柔軟な運用が可能です。

コードベースを見ると、テストとカバレッジ関連のファイルが含まれており(.coverageなど)、品質面の配慮が伺えます。拡張点としては、追加のコネクタやカスタムのチェックロジック(例えばドメイン固有の異常検知)をプラグイン的に組み込むことで、より複雑なデータパイプラインでの自動バリデーションに適用できます。現状は比較的軽量で初期導入が容易なため、PoCから本番運用まで段階的に拡張できる設計です。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .DS_Store: file
  • .coverage: file
  • .github: dir
  • .gitignore: file
  • CONTRIBUTING.md: file

…他 7 ファイル

(リポジトリは小規模で、ドキュメント・設定例・コネクタ実装・検証ロジックの実装が主要部分です。拡張用のテンプレやテストが含まれている点が特徴です。)

まとめ

設定中心で拡張しやすく、データ品質の自動検証導入に適した軽量フレームワークです。(約50字)

リポジトリ情報:

READMEの抜粋:

Sentri

Sentri is a production-ready, configurable data quality validation framework with 10 check types, multiple data connectors, and flexible output formats.

Features

  • 10 Check Types: Completeness, Uniqueness, Range, Turnover, Value Spike, Frequency, Correlation, Statistical, Distribution, Drift
  • Multiple Connectors: CSV, Oracle, Snowflake (extensible)
  • Flexible Configuration: YAML with environment variable support
  • Multiple Output Formats: JSON, HTML, CSV, DataFram…