3.4. Debezium JDBC コネクター設定プロパティーの説明


Debezium JDBC シンクコネクターには、ニーズを満たすコネクターの動作を実現するために使用できるいくつかの設定プロパティーがあります。多くのプロパティーにはデフォルト値があります。プロパティーに関する情報は、以下のように設定されています。

表3.6 汎用プロパティー
プロパティーデフォルト説明

name

デフォルトなし

コネクターの一意名。コネクターの登録時にこの名前を再利用しようとすると失敗します。このプロパティーはすべての Kafka Connect コネクターに必要です。

connector.class

デフォルトなし

コネクターの Java クラスの名前。Debezium JDBC コネクターの場合、io.debezium.connector.jdbc.JdbcSinkConnector の値を指定します。

tasks.max

1

このコネクターに使用するタスクの最大数。

topics

デフォルトなし

消費するトピックのコンマ区切りのリスト。このプロパティーを topic.regex プロパティーと組み合わせて使用しないでください。

topics.regex

デフォルトなし

消費するトピックを指定する正規表現。内部的には、正規表現は java.util.regex.Pattern にコンパイルされます。このプロパティーを topics プロパティーと組み合わせて使用しないでください。

表3.7 JDBC コネクター接続プロパティー
プロパティーデフォルト説明

connection.provider

org.hibernate.c3p0.internal.C3P0ConnectionProvider

使用する接続プロバイダーの実装。

connection.url

デフォルトなし

データベースへの接続に使用される JDBC 接続 URL。

connection.username

デフォルトなし

コネクターがデータベースへの接続に使用するデータベースユーザーアカウントの名前。

connection.password

デフォルトなし

コネクターがデータベースへの接続に使用するパスワード。

connection.pool.min_size

5

プール内の最小接続数を指定します。

connection.pool.max_size

32

プールが維持する同時接続の最大数を指定します。

connection.pool.acquire_increment

32

接続プールが最大サイズを超えた場合にコネクターが取得を試みる接続の数を指定します。

connection.pool.timeout

1800

未使用の接続が破棄されるまで保持する時間 (秒) を指定します。

表3.8 JDBC コネクターのランタイムプロパティー
プロパティーデフォルト説明

database.time_zone

UTC

JDBC 時間値を挿入するときに使用するタイムゾーンを指定します。

delete.enabled

false

コネクターが DELETE イベントまたは tombstone イベントを処理し、対応する行をデータベースから削除するかどうかを指定します。このオプションを使用するには、primary.key.moderecord.key に設定する必要があります。

truncate.enabled

false

コネクターが TRUNCATE イベントを処理し、データベースから対応するテーブルを切り捨てるかどうかを指定します。

注記

TRUNCATE ステートメントのサポートは Db2 バージョン 9.7 以降で利用可能ですが、現在、JDBC コネクターは、Db2 コネクターが出力する標準の TRUNCATE イベントを処理できません。

JDBC コネクターが Db2 から受信した TRUNCATE イベントを処理できるようにするには、標準の TRUNCATE TABLE ステートメントの代替手段を使用して切り捨てを実行します。以下に例を示します。

ALTER TABLE <table_name> ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE

上記のクエリーを送信するユーザーアカウントには、切り捨てられるテーブルに対する ALTER 権限が必要です。

insert.mode

insert

イベントのデータベースへの挿入に使用するストラテジーを指定します。以下のオプションを設定できます。

insert
すべてのイベントが INSERT ベースの SQL ステートメントを構築するように指定します。このオプションは、プライマリーキーが使用されていない場合、または既存のプライマリーキー値を持つ行に対して更新が行われない場合にのみ使用してください。
update
すべてのイベントが UPDATE ベースの SQL ステートメントを構築することを指定します。このオプションは、コネクターが既存の行に適用されるイベントのみを受信する場合にのみ使用してください。
upsert
コネクターが upsert セマンティクスを使用してテーブルにイベントを追加することを指定します。つまり、プライマリーキーが存在しない場合、コネクターは INSERT 操作を実行し、キーが存在する場合、コネクターは UPDATE 操作を実行します。べき等書き込みが必要な場合は、このオプションを使用するようにコネクターを設定する必要があります。

primary.key.mode

none

コネクターがイベントからプライマリーキー列を解決する方法を指定します。

none
プライマリーキー列を作成しないことを指定します。
kafka

コネクターがプライマリーキー列として Kafka 座標を使用することを指定します。キー座標はトピック名、パーティション、イベントのオフセットから定義され、次の名前の列にマップされます。

  • __connect_topic
  • __connect_partition
  • __connect_offset
record_key
プライマリーキー列がイベントのレコードキーから取得されることを指定します。レコードキーがプリミティブ型の場合、primary.key.fields プロパティーでプライマリーキー列の名前を指定する必要があります。レコードキーが struct 型の場合、primary.key.fields プロパティーはオプションで、イベントのキーからの列のサブセットをテーブルのプライマリーキーとして指定するために使用できます。
record_value
プライマリーキー列がイベントの値から取得されることを指定します。primary.key.fields プロパティーを設定して、イベントの値のフィールドのサブセットとしてプライマリーキーを定義できます。それ以外の場合は、すべてのフィールドがデフォルトで使用されます。

primary.key.fields

デフォルトなし

プライマリーキー列の名前、またはプライマリーキーの導出元となるフィールドのコンマ区切りリスト。

primary.key.moderecord_key に設定されており、イベントのキーがプリミティブ型である場合、このプロパティーではキーに使用される列名を指定する必要があります。

primary.key.mode が、プリミティブ以外のキーを含む record_key または record_value に設定されている場合、このプロパティーにはキーまたは値のフィールド名のコンマ区切りリストを指定する必要があります。primary.key.mode が、プリミティブキー以外のキーを含む record_key または record_value に設定されており、このプロパティーが指定されていない場合、コネクターは、指定されたモードに応じて、レコードキーまたはレコード値のいずれかの全フィールドからプライマリーキーを導出します。

quote.identifiers

false

生成された SQL ステートメントでテーブル名と列名を区切るために引用符を使用するかどうかを指定します。詳細は 「宛先テーブル名と列名の大文字と小文字を定義するオプションの指定」 のセクションを参照してください。

schema.evolution

none

コネクターが宛先テーブルのスキーマを進化させる方法を指定します。詳細は、「Debezium JDBC コネクターのスキーマ進化モード」 を参照してください。以下のオプションを設定できます。

none
コネクターが宛先スキーマを進化させないことを指定します。
basic
基本進化が発生することを指定します。コネクターは、受信イベントのレコードスキーマをデータベーステーブル構造と比較することにより、欠落している列をテーブルに追加します。

table.name.format

${topic}

イベントのトピック名に基づいて、宛先テーブル名の形式を決定する文字列を指定します。${topic} のプレースホルダーは、トピック名に置き換えます。

dialect.postgres.postgis.schema

public

PostgreSQL PostGIS エクステンションがインストールされているスキーマ名を指定します。デフォルトは public です。ただし、PostGIS エクステンションが別のスキーマにインストールされている場合は、このプロパティーを使用して代替スキーマ名を指定する必要があります。

dialect.sqlserver.identity.insert

false

SQL Server テーブルの identity 列への INSERT または UPSERT 操作の前にコネクターが IDENTITY_INSERT を自動的に設定し、操作の直後にそれを設定解除するかどうかを指定します。デフォルト設定 (false) が有効な場合、テーブルの IDENTITY 列への INSERT または UPSERT 操作によって SQL 例外が発生します。

batch.size

500

宛先テーブルにまとめてバッチ処理するレコードの数を指定します。

注記

Connect ワーカープロパティーの consumer.max.poll.recordsbatch.size より小さい値に設定すると、バッチ処理は consumer.max.poll.records によって制限され、目的の batch.size に到達しないことに注意してください。コネクター設定で consumer.override.max.poll.records を使用して、コネクターの基盤となるコンシューマーの max.poll.records を設定することもできます。

field.include.list

空の文字列

変更イベント値から追加するフィールドの完全修飾名と一致するフィールド名の、オプションのコンマ区切りリスト。フィールドの完全修飾名の形式は、fieldName または topicName:_fieldName_ です。

このプロパティーを設定に含める場合は、field.exclude.list プロパティーを設定しないでください。

field.exclude.list

空の文字列

変更イベント値から除外するフィールドの完全修飾名と一致するフィールド名の、オプションのコンマ区切りリスト。フィールドの完全修飾名の形式は、fieldName または topicName:_fieldName_ です。

このプロパティーを設定に含める場合は、field.include.list プロパティーも設定しないでください。

表3.9 JDBC コネクターの拡張可能なプロパティー
プロパティーデフォルト説明

column.naming.strategy

i.d.c.j.n.DefaultColumnNamingStrategy

コネクターがイベントフィールド名から列名を解決するために使用する ColumnNamingStrategy 実装の完全修飾クラス名を指定します。

デフォルトでは、コネクターはフィールド名を列名として使用します。

table.naming.strategy

i.d.c.j.n.DefaultTableNamingStrategy

コネクターが受信イベントトピック名からテーブル名を解決するために使用する TableNamingStrategy 実装の完全修飾クラス名を指定します。

デフォルトの動作は次のとおりです。

  • table.name.format 設定プロパティーの ${topic} プレースホルダーをイベントのトピックに置き換えます。
  • ドット (.) は、アンダースコア (_) に置き換えて、テーブル名をサニタイズします。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.