Skip to content
Latchkey

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を失敗させるようにします。

Running a GX checkpoint in CI
steps:
  - run: pip install great_expectations
  - run: great_expectations checkpoint run my_checkpoint

Latchkeyノート

GXはPythonで実行され、毎回サンプルdatasetを読み込みます。Latchkeyでは、Python環境とサンプルデータをcacheすることで検証ステップが高速に保たれ、auto-retryが一時的なデータソースのタイムアウトを本当のexpectationの失敗と区別します。

重要なポイント

  • Great Expectationsは、データ品質のexpectationを宣言、実行、文書化するためのPythonフレームワークである。
  • expectationはスイートにグループ化され、checkpointがスイートをデータやアクションとまとめてpipeline用にする。
  • CIでcheckpointを実行すると、データ品質が変更ごとのpass/failゲートになる。

関連ガイド