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

エクスペクテーション

このページには、DLT のエクスペクテーションに関する Python リファレンスドキュメントが含まれています。

エクスペクテーション デコレーターは、マテリアライズドビュー、ストリーミングテーブル、または DLTで作成された一時ビューに対してデータ品質制約を宣言します。

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

挙動

オプション

違反した場合の措置

  • ターゲット データセットに行を含めます。有効なレコードと無効なレコードの数は、他のデータセットメトリクスとともに記録されます。
  • ターゲットデータセットに書き込む前に行をドロップします。ドロップされたレコードの数は、他のデータセットメトリクスとともにログに記録されます。
  • すぐに更新を停止します。この予想により、1 つのフローが失敗し、パイプライン内の他のフローが失敗することはありません。

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

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

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

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

構文

エクスペクテーションデコレーターは、次の例のように、 @dlt.table() または @dlt.view() デコレーターの後、データセット定義関数の前に配置されます。

Python
import dlt

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

パラメーター

パラメーター

タイプ

説明

description

str

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

constraint

str

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

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