8.3. Debezium コネクターを実行するための SQL Server の設定

Debezium が SQL Server テーブルから変更イベントをキャプチャーするには、必要な権限を持つ SQL Server の管理者が最初にクエリーを実行してデータベースで CDC を有効にします。その後、管理者は Debezium がキャプチャーする各テーブルに対して、CDC を有効にする必要があります。

Debezium コネクターと使用するための SQL Server の設定に関する詳細は、以下を参照してください。

CDC の適用後、CDD が有効になっているテーブルにコミットされる INSERT、UPDATE、および DELETE 操作がすべてキャプチャーされます。その後、Debezium コネクターはこれらのイベントをキャプチャーして Kafka トピックに出力できます。

8.3.1. SQL Server データベースでの CDC の有効化

テーブルの CDC を有効にする前に、SQL Server データベースに対して CDC を有効にする必要があります。SQL Server 管理者は、システムストアドプロシージャーを実行して CDC を有効にします。システムストアドプロシージャーは、SQL Server Management Studio または Transact-SQL を使用すると実行できます。

前提条件

  • SQL Server の sysadmin 固定サーバーロールのメンバーである。
  • データベースの db_owner である。
  • SQL Server Agent が稼働している。
注記

SQL Server の CDC 機能は、ユーザーが作成したテーブルでのみ発生する変更を処理します。SQL Server マスター データベースで CDC を有効にすることはできません。

手順

  1. SQL Server Management Studio の View メニューから Template Explorer をクリックします。
  2. Template Browser で、SQL Server Templates を展開します。
  3. Change Data Capture > Configuration を展開した後、 Enable Database for CDC をクリックします。
  4. テンプレートで、USE ステートメントの データベース名を、CDC に対して有効にするデータベースの名前に置き換えます。
  5. ストアドプロシージャー sys.sp_cdc_enable_db を実行して、CDC に対してデータベースを有効にします。

    データベースが CDC に対して有効化されると、name cdc を持つスキーマと CDC ユーザー、メタデータテーブル、その他のシステムオブジェクトが作成されます。

    以下の例は、データベース MyDB に対して CDC を有効にする方法を示しています。

    例: CDC テンプレートに対する SQL Server データベースの有効化

    USE MyDB
    GO
    EXEC sys.sp_cdc_enable_db
    GO