Great Expectationsとは?データ検証フレームワークを解説
Great Expectationsは、データ品質のexpectationを宣言し、それに対してデータを検証し、結果を文書化するためのオープンソースPythonフレームワークです。
Great Expectations(しばしばGXと略される)は、データ検証で最も広く使われているツールの1つです。良いデータがどのようなものかをexpectationのスイートとして表現し、そのスイートを任意のデータbatchに対して実行して、豊富なドキュメントとともに明確なpassまたはfailを得られます。
Great Expectationsとは何か
Great Expectationsは、データ検証のためのPythonライブラリおよびフレームワークです。「値がnullでない」や「値が0から100の間」といったアサーションであるexpectationを定義してExpectation Suiteにグループ化し、そのスイートに対してdatasetを検証します。
expectationとcheckpoint
expectationは単一のルール、スイートはその集まり、checkpointは検証するデータと結果に対して取るアクションをスイートとまとめたものです。checkpointの実行が、pipelineやCIに組み込む検証の単位となります。
Data Docs
Great Expectationsは検証結果から人間が読めるData Docsを生成します - どのexpectationがパスして失敗したかを示すレポートです。これにより、検証の出力が、エンジニアだけでなくチーム全体が読んで信頼できるものになります。
CIでのGreat Expectations
CIでcheckpointをサンプルデータに対して実行し、データ品質を壊す変更がpull requestを失敗させるようにします。
steps:
- run: pip install great_expectations
- run: great_expectations checkpoint run my_checkpointLatchkeyノート
GXはPythonで実行され、毎回サンプルdatasetを読み込みます。Latchkeyでは、Python環境とサンプルデータをcacheすることで検証ステップが高速に保たれ、auto-retryが一時的なデータソースのタイムアウトを本当のexpectationの失敗と区別します。
重要なポイント
- Great Expectationsは、データ品質のexpectationを宣言、実行、文書化するためのPythonフレームワークである。
- expectationはスイートにグループ化され、checkpointがスイートをデータやアクションとまとめてpipeline用にする。
- CIでcheckpointを実行すると、データ品質が変更ごとのpass/failゲートになる。