2.2. Debezium コネクター設定の計画
Debezium コネクターをデプロイする前に、コネクターの設定方法を決定してください。設定は、コネクターの動作を指定する情報を提供し、Debezium がソースデータベースに接続することを可能にします。
コネクター設定を JSON として指定し、コネクターを登録する準備ができたら、curl
を使用して設定を Kafka Connect API エンドポイントに送信します。
前提条件
- ソースデータベースがデプロイされ、Debezium コネクターがデータベースにアクセスできる。
コネクターがソースデータベースにアクセスするために必要な以下の情報を把握している。
- データベースホストの名前または IP アドレス
- データベースに接続するためのポート番号
- コネクターがデータベースへのサインインに使用できるアカウントの名前
- データベースユーザーアカウントのパスワード
- データベースの名前
- コネクターの情報の取得元であるテーブルの名前
- コネクターの変更イベントの出力先である Kafka ブローカーの名前
- コネクターのデータベース履歴情報の送信先である Kafka トピックの名前
手順
Debezium コネクターに適用する設定を JSON 形式で指定します。
次の例は、Debezium MySQL コネクターの簡単な設定を示しています。
{ "name": "inventory-connector", 1 "config": { "connector.class": "io.debezium.connector.mysql.MySqlConnector", 2 "tasks.max": "1", 3 "database.hostname": "mysql", 4 "database.port": "3306", 5 "database.user": "debezium", 6 "database.password": "dbz", 7 "database.server.id": "184054", 8 "topic.prefix": "dbserver1", 9 "table.include.list": "public.inventory", 10 "schema.history.internal.kafka.bootstrap.servers": "kafka:9092", 11 "schema.history.internal.kafka.topic": "dbhistory.inventory" 12 } }
- 1
- Kafka Connect クラスターに登録するコネクターの名前。
- 2
- コネクタークラスの名前。
- 3
- 同時に動作できるタスクの数。一度に操作できるタスクは 1 つだけです。
- 4
- ホストデータベースインスタンスのホスト名または IP アドレス
- 5
- データベースインスタンスのポート番号。
- 6
- Debezium がデータベースに接続するユーザーアカウントの名前。
- 7
- データベースユーザーアカウントのパスワード
- 8
- コネクターの一意の数値 ID。
このプロパティーは MySQL コネクターにのみ使用されます。 - 9
- コネクターが変更をキャプチャーするサーバーのデータベースサーバーまたはクラスターの論理識別子として機能する文字列。指定された文字列は名前空間を指定します。Avro コンバーターが使用されている場合、Debezium は、コネクターが書き込む各 Kafka トピック、Kafka Connect スキーマの名前、および対応する Avro スキーマの名前空間にこの名前の接頭辞を付けます。
- 10
- コネクターが変更イベントをキャプチャーするテーブルのリスト。
- 11
- コネクターがデータベーススキーマ履歴を送信する Kafka ブローカーの名前。指定されたブローカーは、コネクターが出力する変更イベントも受け取ります。
- 12
- スキーマ履歴を格納する Kafka トピックの名前。
コネクターの再起動後、コネクターは停止した時点からデータベースログの読み取りを再開し、オフライン中に発生したトランザクションのイベントを出力します。コネクターは、未読トランザクションの変更イベントを Kafka に書き込む前に、スキーマ履歴をチェックしてから、元のトランザクションが発生したときに有効だったスキーマを適用します。
Additional information
- コネクターのタイプごとに設定できる設定プロパティーの詳細は、Debezium ユーザーガイド のコネクターデプロイメントに関するセクションを参照してください。