0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

APPLY CHANGES INTO

Posted at

APPLY CHANGES INTODatabricks SQL(特に Delta Live Tables)で使われる構文で、
変更データキャプチャ(CDC: Change Data Capture)を簡単にターゲットテーブルへ反映するためのコマンドです。


目的

通常、CDC データ(INSERT、UPDATE、DELETE を含む変更ログ)をテーブルに適用するには、
複雑な MERGE INTO を書いてキーや処理順序を考慮する必要があります。

APPLY CHANGES INTO を使うと、
主キーと変更の種類を指定するだけで、自動的にマージ処理をしてくれるため、
シンプルに CDC 対応のストリームパイプラインが作れます。


基本構文

APPLY CHANGES INTO target_table
FROM source_stream
KEYS (id)
SEQUENCE BY updated_at
COLUMNS * EXCEPT (op)
STORED AS SCD TYPE 1;

主な句の意味

役割
APPLY CHANGES INTO target_table CDC を適用する対象テーブル
FROM source_stream CDC データのストリーム(INSERT/UPDATE/DELETE を含む)
KEYS (id) 一意に行を識別する主キー
SEQUENCE BY updated_at 変更適用の順序を決めるカラム(タイムスタンプやバージョン番号)
COLUMNS * EXCEPT (op) 適用するカラムの指定(ここでは op カラムを除外)
STORED AS SCD TYPE 1 保存方法。SCD TYPE 1 は履歴を保持せず上書き更新

処理の流れ

  1. source_stream に CDC データ(例:Debezium や Kafka 経由で取得)が入ってくる

  2. APPLY CHANGES INTOop(操作種別)を見て

    • INSERT → 新規行追加
    • UPDATE → 主キー一致の行を上書き
    • DELETE → 主キー一致の行を削除
  3. 指定の順序 (SEQUENCE BY) に従って適用


メリット

  • 手動で MERGE INTO を書かなくてもよい
  • CDC の適用が簡潔になり、エラーが減る
  • Delta Live Tables と組み合わせることでストリーム処理が自動化される

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?