apply_changes
apply_changes()
関数は、DLT チェンジデータキャプチャ (CDC) 機能を使用して、チェンジデータフィード (CDF) からのソース データを処理します。
変更を適用するターゲット ストリーミングテーブルを宣言する必要があります。 オプションで、ターゲットテーブルのスキーマを指定できます。apply_changes()
ターゲットテーブルのスキーマを指定するときは、sequence_by
フィールドと同じデータ型の__START_AT
列と__END_AT
列を含める必要があります。
必要なターゲットテーブルを作成するには、DLT Pythonインターフェースの create_streaming_table() 関数を使用できます。
構文
import dlt
dlt.apply_changes(
target = "<target-table>",
source = "<data-source>",
keys = ["key1", "key2", "keyN"],
sequence_by = "<sequence-column>",
ignore_null_updates = False,
apply_as_deletes = None,
apply_as_truncates = None,
column_list = None,
except_column_list = None,
stored_as_scd_type = <type>,
track_history_column_list = None,
track_history_except_column_list = None
)
apply_changes
処理の場合、INSERT
イベントとUPDATE
イベントのデフォルトの動作は、ソースから CDC イベント を更新する ことです。指定したキーに一致するターゲットテーブルの行を更新するか、一致するレコードがターゲットテーブルに存在しない場合は新しい行を挿入します。DELETE
イベントの処理は、apply_as_deletes
パラメーターで指定できます。
変更フィードを使用したCDC処理の詳細については、「変更の適用APIs: DLTによるチェンジデータキャプチャの簡略化」を参照してください。apply_changes()
関数の使用例については、例: CDF ソース・データを使用した SCD タイプ 1 および SCD タイプ 2 の処理を参照してください。
パラメーター
パラメーター | タイプ | 説明 |
---|---|---|
|
| 必須。更新するテーブルの名前。create_streaming_table() 関数を使用して、 |
|
| 必須。 CDCレコードを含むデータソース。 |
|
| 必須。 ソースデータ内の行を一意に識別する列または列の組み合わせ。これは、どのCDCイベントがターゲットテーブル内の特定のレコードに適用されるかを識別するために使用されます。 次のいずれかを指定できます:
|
|
| 必須。ソース・データ内の CDC イベントの論理的な順序を指定する列名。DLT は、このシーケンスを使用して、順不同で到着した変更イベントを処理します。指定する列は、ソート可能なデータ型である必要があります。次のいずれかを指定できます。
|
|
| ターゲットカラムのサブセットを含む更新の取り込みを許可します。 CDC イベントが既存の行と一致し、 デフォルトは |
|
| CDCイベントをupsertではなく
順不同のデータを処理するために、削除された行は基になる Delta テーブルに廃棄石として一時的に保持され、これらの廃棄石を除外するビューがメタストアに作成されます。保持間隔は、 |
|
| CDCイベントを完全なテーブル
この句はターゲットテーブルの完全な切り捨てをトリガーするため、この機能を必要とする特定のユースケースにのみ使用してください。 |
|
| ターゲットテーブルに含める列のサブセット。
|
|
| レコードを SCD タイプ 1 として保管するか、SCD タイプ 2 として保管するか。SCD タイプ 1 の場合は |
|
| ターゲット・テーブル内のヒストリーについて追跡する出力列のサブセット。
|