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

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

備考

プレビュー

Microsoft SQL Server コネクタは パブリック プレビュー段階です。

このページでは、Microsoft SQL Server で変更の追跡を有効にする手順について説明します。コネクタを使用するには、変更の追跡またはチェンジデータキャプチャ ()CDC SQL Serverを有効にする必要があります。Databricks では、ソース データベースの負荷を最小限に抑えるために、主キーを持つすべてのテーブルに対して変更追跡を使用することをお勧めします。変更の追跡と CDC の両方が有効になっている場合、コネクタは変更の追跡を使用します。選択するオプションのガイダンスについては、「 変更の追跡とチェンジデータキャプチャ」を参照してください。

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

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

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

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

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

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

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

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

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

SQL
GRANT VIEW CHANGE TRACKING ON SCHEMA::<schema-name> TO <database-user>;

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

SQL
GRANT VIEW CHANGE TRACKING ON OBJECT::<schema-name>.<table-name> TO <database-user>;

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

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

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

  1. ddl_support_objects.sqlスクリプトをダウンロードします。

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

    • BOTH: CT オブジェクトと CDC オブジェクトの両方を初期化します (デフォルト)
    • CT: CT オブジェクトを初期化します
    • CDC: CDC オブジェクトを初期化します
    • NONE: 既存の CT オブジェクトと CDC オブジェクトをすべて削除します
  3. (推奨)必要に応じて、スクリプトを変更して、 replicationUser 変数を SQL Server データベース ユーザーに設定します。

    replicationUser が定義されている場合、スクリプトは DDL サポート オブジェクトを操作するために必要なすべての特権をユーザーに付与します。それ以外の場合は、各権限を手動で付与する必要があります。

  4. 取り込む各データベースでスクリプトを実行します。

important

master データベースでスクリプトを実行しないでください。

サードパーティ製のツールでスクリプトを実行する場合は、スクリプト全体を選択してから実行してください。

変更追跡の権限要件

スクリプトで replicationUser 変数を設定すると、スクリプトは DDL サポートオブジェクトに対する必要な権限をデータベースユーザーに付与します。必要な権限は次のとおりです。

  • VIEW CHANGE TRACKING lakeflowDdlAudit_1_1オブジェクト
  • VIEW DEFINITION 取り込むデータベース上

スクリプトで replicationUser が設定されていない場合は、変更追跡に必要な権限を手動で付与する必要があります。これを行うには、次の T-SQL コマンドを <database-user>コマンドに置き換えて実行します。

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

次のステップ

インジェスト パイプラインを作成する