CDC 用に Azure SQL データベースを構成する

このページでは、Azure SQL データベースから サポートされている宛先(BigQuery や Cloud Storage など)にデータをストリーミングするように変更データ キャプチャ(CDC)を構成する方法について説明します。

Azure SQL データベースを構成する手順は次のとおりです。

  1. 移行元 Azure SQL データベースの変更データ キャプチャ(CDC)を有効にします。これを行うには、Azure Data Studio または SQL Server Management Studio を使用してデータベースに接続し、次のコマンドを実行します。

    EXEC sys.sp_cdc_enable_db;
    GO
    
  2. 変更を取得する必要があるテーブルで CDC を有効にします。

    EXEC sys.sp_cdc_enable_table
    @source_schema = N'SCHEMA_NAME',
    @source_name = N'TABLE_NAME',
    @role_name = NULL
    GO
    

    以下を置き換えます。

    • SCHEMA_NAME: テーブルが属するスキーマの名前
    • TABLE_NAME: CDC を有効にするテーブルの名前
  3. スナップショット分離を有効にします。

    SQL Server データベースからデータをバックフィルする際は、整合性のあるスナップショットを確保することが重要です。このセクションで説明している設定を適用しない場合、バックフィル プロセス中にデータベースに加えた変更により、特に主キーのないテーブルでは、重複や誤った結果が生じる可能性があります。

    スナップショット分離を有効にすると、バックフィル プロセスの開始時にデータベースの一時ビューが作成されます。これにより、他のユーザーが同時にライブテーブルに変更を加えた場合でも、コピーされるデータの整合性が確実に維持されます。スナップショット分離を有効にすると、パフォーマンスにわずかな影響を与える可能性がありますが、信頼性の高いデータ抽出には不可欠です。

    スナップショット分離を有効にするには:

    1. SQL Server クライアントを使用してデータベースに接続します。
    2. 次のコマンドを実行します。
    ALTER DATABASE DATABASE_NAME SET ALLOW_SNAPSHOT_ISOLATION ON;
    

    DATABASE_NAME は、データベースの名前に置き換えます。

  4. Datastream ユーザーを作成する:

    1. master データベースに接続して、ログインを作成します。

      USE master;
      CREATE LOGIN YOUR_LOGIN WITH PASSWORD = 'PASSWORD';
      
    2. ソース データベースに接続して、ログイン用のユーザーを作成します。

      USE DATABASE_NAME
      CREATE USER USER_NAME FOR LOGIN YOUR_LOGIN;
      
    3. ユーザーに db_owner ロールと db_denydatawriter ロールを割り当てます。

      EXEC sp_addrolemember 'db_owner', 'USER_NAME';
      EXEC sp_addrolemember 'db_denydatawriter', 'USER_NAME';
      
    4. ユーザーに VIEW DATABASE STATE 権限を付与します。

      GRANT VIEW DATABASE STATE TO USER_NAME;
      

次のステップ