メインコンテンツまでスキップ

エクスペクテーション

このページにはPythonLakeflow 宣言型パイプラインの期待値に関するリファレンス ドキュメントが含まれています。

期待値デコレーターは、マテリアライズドビュー、ストリーミングテーブル、または宣言型パイプラインで作成された一時ビューに対して Lakeflow データ品質制約を宣言します。

dpモジュールには、エクスペクテーションの動作を制御するための 6 つのデコレータが含まれています。次の表では、これらの順列が異なるディメンションについて説明します。

挙動

オプション

違反に対する措置

  • 行をターゲット データセットに含めます。有効なレコードと無効なレコードの数は、他のデータセット メトリクスと一緒に記録されます。
  • ターゲット データセットに書き込む前に行を削除します。ドロップされたレコードの数は、他のデータセット メトリクスと一緒に記録されます。
  • ただちに更新を停止してください。この予測により、単一のフローが失敗しますが、パイプライン内の他のフローが失敗することはありません。

エクスペクテーションの数

1 つまたは複数のエクスペクテーション。

データセットに複数のエクスペクテーションデコレーターを追加して、データ品質制約の厳密性に柔軟性を持たせることができます。

expect_allデコレーターを使用する場合、各エクスペクテーションには独自の説明があり、詳細なメトリクスが報告されます。

構文

期待デコレータは、次の例のように、 @dp.table()@dp.materialized_view 、または@dp.temporary_view()デコレータの後、データセット定義関数の前に配置されます。

Python
from pyspark import pipelines as dp

@dp.table()
@dp.expect(description, constraint)
@dp.expect_or_drop(description, constraint)
@dp.expect_or_fail(description, constraint)
@dp.expect_all({description: constraint, ...})
@dp.expect_all_or_drop({description: constraint, ...})
@dp.expect_all_or_fail({description: constraint, ...})
def <function-name>():
return (<query>)

問題

パラメーター

Type

説明

description

str

必須。制約を識別する説明。制約の説明はデータセットごとに一意である必要があります。

constraint

str

必須。制約句は、各レコードに対して true または false に評価する必要がある SQL 条件ステートメントです。制約には、検証対象の実際のロジックが含まれています。レコードがこの条件に満たない場合、エクスペクテーションがトリガーされます。

expect_allデコレータでは、説明と制約をキーと値のペアのdictとして渡す必要があります。