SQL Server で変更の追跡を有効にする

プレビュー

LakeFlow Connect はゲート パブリック プレビュー段階です。 プレビューに参加するには、Databricks アカウント チームにお問い合わせください。

この記事では、SQL Serverで変更追跡を有効にする方法について説明します。 Databricks へのインジェストには、変更追跡または CDC が必要です。 選択するオプションのガイダンスについては、「 変更の追跡とチェンジデータキャプチャ」を参照してください。

データベースでの変更追跡の有効化

以下を実行し、 <database-name> を変更追跡を有効にするデータベースの名前に置き換えます。 CHANGE_RETENTION を、ゲートウェイがダウンする可能性がある最大時間に設定します。この時間が経過すると、ゲートウェイを再開するには完全な更新が必要になります。

ALTER DATABASE <database-name> SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 3 DAYS, AUTO_CLEANUP = ON)

テーブルで変更の追跡を有効にする

以下を実行し、 <schema-name>.<table-name> を変更追跡を有効にするスキーマとテーブルの名前に置き換えます。

ALTER TABLE <schema-name>.<table-name> ENABLE CHANGE_TRACKING

取り込まれたテーブルに対する VIEW CHANGE TRACKING の付与

ソース設定で説明されている権限に加えて、データベース・ユーザーには、取り込まれたテーブルまたは追跡対象のテーブルを含むスキーマに対するVIEW CHANGE TRACKING権限が必要です。

スキーマレベルの権限を付与するには、次のコマンドを実行します。

GRANT VIEW CHANGE TRACKING ON SCHEMA::<schema-name> TO <cdc-username>;

テーブルレベルのパーミッションを付与するには、次のコマンドを実行します。

GRANT VIEW CHANGE TRACKING ON OBJECT::<schema-name>.<table-name> TO <cdc-username>;

DDL キャプチャとスキーマの進化を設定する

SQL Server コネクタは、取り込まれたデータベース オブジェクトのデータ定義言語 (DDL) を追跡し、関連するテーブル スキーマの変更を宛先テーブルに適用したり、完全なスキーマ レプリケーションの場合は新しいテーブルを追加したりできます。

DDL キャプチャを実行するには、追加のデータベース オブジェクトのセットアップが必要です (内部テーブル、ストアド プロシージャ、トリガーなど)。 このセクションで説明する T-SQL スクリプトは、既存の DDL サポート オブジェクトを削除し、データベースで発生する DDL の変更をキャプチャするために必要な DDL サポート オブジェクトを作成します。

DDL キャプチャとスキーマ進化を設定するには、次の操作を行います。

  1. 次の T-SQL スクリプトをダウンロードします。

    ddl_support_objects.sql

  2. スクリプトを変更して、 mode 値を設定します。

    • BOTH: CT オブジェクトと CDC オブジェクトの両方を初期化します (デフォルト)

    • CT: CT オブジェクトを初期化します

    • CDC: CDC オブジェクトを初期化します

    • NONE: 既存の CT オブジェクトと CDC オブジェクトをすべて削除します

  3. レプリケートするテーブルを含む各データベースでスクリプトを実行します。

レプリケーションに必要な権限を付与する

データベース・ユーザに次の権限を付与します。

GRANT VIEW CHANGE TRACKING ON OBJECT::dbo.replicate_io_audit_ddl_1 TO <database-user>;
GRANT VIEW DEFINITION ON DATABASE::<database-name> TO <database-user>;