3.3.3. コネクタープロパティー


以下の設定プロパティーは、デフォルト値が利用可能でない限り 必要 になります。

プロパティー

デフォルト

説明

name

 

コネクターの一意の名前。同じ名前の再登録を試みると失敗します。(このプロパティーはすべての Kafka Connect コネクターで必要です。)

connector.class

 

コネクターの Java クラスの名前。PostgreSQL コネクターに常にの値を使用 io.debezium.connector.postgresql.PostgresConnector してください。

tasks.max

1

このコネクターに作成する必要のあるタスクの最大数。PostgreSQL コネクターは常に単一のタスクを使用するため、この値は使用されないため、デフォルト値は常に受け入れ可能です。

plugin.name

decoderbufs

サーバーに インストールされている Postgres の論理 デコードプラグインの名前。サポートされている値はのみです pgoutput

処理されたトランザクションが非常に大きい場合、トランザクションのすべての変更を含む JSON バッチイベントは、サイズが 1 GB のハードコーディングされたメモリーバッファーに収まらない可能性があります。このような場合、トランザクションの変更が すべて PostgreSQL から Debezium に別のメッセージとして送信されると、ストリーミングモードと呼ばれるストリーミングモードに切り替えることができます。

slot.name

debezium

プラグインおよびデータベースインスタンスからの変更ストリーミング用に作成された Postgres の論理デコードスロットの名前。値は Postgres レプリケーションスロットの命名ルール に準拠する必要があります。"Each レプリケーションスロットには、小文字、数字、およびアンダースコアを含めることができます。

slot.drop.on.stop

false

コネクターが順次終了する際に論理レプリケーションスロットをドロップするかどうか。テストまたは開発環境 true でのみ、をに設定してください。スロットを削除すると、データベースが WAL セグメントを破棄できるため、再起動後、前の WAL 位置からコネクターを再開できないことがあります。

publication.name

dbz_publication

の使用時にストリーミングの変更用に作成された PostgreSQL 公開の名前 pgoutput

すべてのテーブル を含めるようにまだない場合、このパブリッシュは起動時に作成されます。その後、Debezium は独自のホワイトリスト/ブラックリストのフィルタリング機能を使用して、変更イベントを設定した場合の特定のテーブルに制限します。このパブリッシュを作成するには、コネクターユーザーにスーパーユーザー権限を持っている必要があるため、通常は前のパブリッシュを作成することが推奨されます。

パブリッシュがすでに存在する場合(すべてのテーブルまたはテーブルのサブセットで設定されている場合)、Debezium は定義したパブリッシュを使用します。

database.hostname

 

PostgreSQL データベースサーバーの IP アドレスまたはホスト名。

database.port

5432

PostgreSQL データベースサーバーの整数ポート番号。

database.user

 

PostgreSQL データベースサーバーに接続するときに使用する PostgreSQL データベースの名前。

database.password

 

PostgreSQL データベースサーバーに接続するときに使用するパスワード。

database.dbname

 

変更をストリーミングする PostgreSQL データベースの名前

database.server.name

 

監視対象の特定の PostgreSQL データベースサーバーまたはクラスターの namespace を特定して提供する論理名。このコネクターから送信されるすべての Kafka トピック名の接頭辞として使用されるため、論理名は他のすべてのコネクターで一意にする必要があります。英数字とアンダースコアのみを使用してください。

schema.whitelist

 

監視するスキーマ名に一致する正規表現のオプションのコンマ区切りリスト。ホワイトリストに含まれていないスキーマ名は監視から除外されます。デフォルトでは、システム以外のスキーマはすべて監視されます。とは使用されない場合があり schema.blacklistます。

schema.blacklist

 

監視から除外されるスキーマ名に一致する正規表現のオプションのコンマ区切りリスト。ブラックリストに含まれていないスキーマ名は、システムスキーマを除き監視されます。とは使用されない場合があり schema.whitelistます。

table.whitelist

 

監視するテーブルの完全修飾テーブル識別子と一致する正規表現のオプションのコンマ区切りリスト。ホワイトリストに含まれていないテーブルはすべて監視から除外されます。各識別子は schemaName.tableName形式 です。デフォルトでは、コネクターは監視される各スキーマのすべてのシステムテーブルを監視します。とは使用されない場合があり table.blacklistます。

table.blacklist

 

監視から除外されるテーブルの完全修飾テーブル識別子と一致する正規表現のオプションのコンマ区切りリスト。ブラックリストに含まれていないテーブルはすべて監視されます。各識別子は schemaName.tableName形式 です。とは使用されない場合があり table.whitelistます。

column.blacklist

 

変更イベントメッセージ値から除外される必要のある列の完全修飾名に一致する正規表現のオプションのコンマ区切りリスト。カラムの完全修飾名は schemaName.tableName . columnName 形式です。

time.precision.mode

adaptive

時間、日付、およびタイムスタンプは、異なるタイプの精度で表示できます。たとえば、adaptive (デフォルト)は、データベースの列のタイプに基づいてミリ秒、マイクロ秒、ナノ秒のいずれかを使用してデータベース内で時間とタイムスタンプの値を正確に adaptive_time_microseconds キャプチャーします。 日時およびタイムスタンプの値は、データベース列のタイプに基づくミリ秒、マイクロ秒、またはナノ秒(常にマイクロ秒としてキャプチャーされる TIME タイプのフィールドを除く)を使用するか、connect 常に Kafka Connect の組み込み表現を使用した時間およびタイムスタンプの値を表します。これは、データベース列の精度に関係なくミリ秒値を使用します。「 一時値 」を参照してください。

decimal.handling.mode

precise

コネクターが DECIMAL および NUMERIC 列の値を処理する方法を指定します。precise (デフォルト)は、バイナリー形式で変更イベントを表す java.math.BigDecimal 値を使用して正確に double 表すか、または double 値を使用して表します。これにより精度が失われますが、使用が非常に容易になります。string オプションはフォーマットされた文字列としてエンコードされますが、実際のタイプのセマンティック情報は失われます。「10 進数の値」を参照してください。

hstore.handling.mode

map

コネクターが hstore 列の値を処理する方法を指定します json stringmap (デフォルト)はを使用して json 表す MAPか、などのフォーマットされた文字列として値をjson エンコードします {"key" : "val"}「HStore の値」を参照してください。

interval.handling.mode

numeric

コネクターが interval 列の値を処理する方法を指定します。numeric (デフォルト)はマイクロ秒数を使用する間隔を string 表します。たとえば、文字列パターン表現( P<years>Y<months>M<days>DT<hours>H<minutes>M<seconds>S例:)を使用して正確に表します P1Y2M3DT4H5M6.78S「データタイプ」を参照してください。

database.sslmode

disable

PostgreSQL サーバーへの暗号化された接続を使用するかどうか。オプションは、暗号化されていない接続を使用する disable (デフォルト)です。安全(暗号化)接続を 使用 し、確立できない場合は失敗します。ただし require、設定した認証局(CA)証明書に対してサーバー TLS 証明書を検証することもできます。 または、有効な一致する CA 証明書が見つからない場合に失敗します。verify-full と同様に、サーバー証明書 verify-ca が接続を試行するホストと一致することを確認してください。詳細は PostgreSQL のドキュメント を参照してください。

database.sslcert

 

クライアントの SSL 証明書が含まれるファイルへのパス。詳細は PostgreSQL のドキュメント を参照してください。

database.sslkey

 

クライアントの SSL 秘密鍵が含まれるファイルへのパス。詳細は PostgreSQL のドキュメント を参照してください。

database.sslpassword

 

で指定されたファイルからクライアントの秘密鍵にアクセスするためのパスワード database.sslkey。詳細は PostgreSQL のドキュメント を参照してください。

database.sslrootcert

 

サーバーが検証されるルート証明書が含まれるファイルへのパス。詳細は PostgreSQL のドキュメント を参照してください。

database.tcpKeepAlive

 

TCP keep-alive プローブを有効にして、データベース接続がまだ有効であることを確認します(デフォルトでは有効化)。詳細は PostgreSQL のドキュメント を参照してください。

tombstones.on.delete

true

削除イベントの後に tombstone イベントを生成するかどうかを制御します。
削除操作 true が削除イベントと後続の tombstone イベントによって表される場合。削除イベント false のみを送信する場合。
tombstone イベント(デフォルトの動作)を生成すると、Kafka はソースレコードが削除されると、指定のキーに関連するすべてのイベントを完全に削除できます。

column.truncate.to.length.chars

該当なし

フィールドの値が指定された文字数よりも長い場合に、変更イベントメッセージの値で切り捨てられる必要のある文字ベースの列の完全修飾名に一致する正規表現のオプションのコンマ区切りリスト。異なる長さを持つ複数のプロパティーを 1 つの設定で使用できますが、それぞれの長さは正の整数である必要があります。カラムの完全修飾名は schemaName.tableName . columnName 形式です。

column.mask.with.length.chars

該当なし

文字ベースの列の完全修飾名に一致する正規表現のオプションのコンマ区切りリスト。このリストは、変更イベントメッセージの値を、指定された数のアスタリスク(*)文字で構成されるフィールド値に置き換える必要があります。異なる長さを持つ複数のプロパティーを 1 つの設定で使用できますが、各長さは正の整数またはゼロである必要があります。カラムの完全修飾名は schemaName.tableName . columnName 形式です。

column.propagate.source.type

該当なし

元の型と長さをパラメーターとして追加する必要がある列の完全修飾名に一致する正規表現のオプションのコンマ区切りリスト。出力された変更メッセージの対応するフィールドスキーマにパラメーターとして追加する必要があります。スキーマパラメーター __debezium.source.column.length およびは __debezium.source.column.type、元の型名と長さ(可変長のタイプ用)をそれぞれ伝搬するために __debezium.source.column.scale 使用されます。シンクデータベースの対応する列のサイズを適切に調整するために便利です。カラムの完全修飾名は、databaseName.tableName.columnName、または databaseName. schemaName.tableName . columnName の形式です。

datatype.propagate.source.type

該当なし

元の型と長さをパラメーターとして追加する必要がある、出力された変更メッセージの対応するフィールドスキーマに対して、データベース固有のデータタイプ名に一致する正規表現のオプションのコンマ区切りリスト。スキーマパラメーター __debezium.source.column.length およびは __debezium.source.column.type、元の型名と長さ(可変長のタイプ用)をそれぞれ伝搬するために __debezium.source.column.scale 使用されます。シンクデータベースの対応する列のサイズを適切に調整するために便利です。完全修飾データタイプ名は、databaseName.tableName. typeName または databaseName. schemaName.tableName . typeName の形式ですPostgreSQL 固有のデータタイプ名のリストを参照してください

message.key.columns

空の文字列

プライマリーキーをマップする完全修飾テーブルおよび列と一致する正規表現のセミコロンリスト。
各項目(通常の式)は、カスタムキー <fully-qualified table>:<a comma-separated list of columns> を表す完全修飾と一致する必要があります。
完全修飾テーブルは schemaName.tableName として 定義 できます。

以下の 高度な 設定プロパティーには、ほとんどの場合で動作するため、コネクターの設定で指定する必要はほとんどありません。

プロパティー

デフォルト

説明

snapshot.mode

initial

コネクターの起動時にスナップショットを実行する基準を指定します。デフォルトは 初期 で、ターゲットサーバー名にオフセットが記録されていない場合に限り、コネクターがスナップショットを実行できることを指定します。always オプションは、起動時に毎回コネクターがスナップショットを実行するように指定します。never オプションは、接続がスナップショットを使用せず、最初に論理サーバー名で起動すると、コネクターが最後に残された場所(最後の LSN 位置)から読み取られるか、論理レプリケーションスロットのビューから開始するように指定します。initial_only オプションは、後続の変更を処理せずに、コネクターが最初のスナップショットのみを取得してから停止するよう指定します。エクスポート したオプションは、データベーススナップショットがレプリケーションスロットの作成時にその時点に基づいており、ロックなしの方法でスナップショットを実行するのに非常に適しています。

snapshot.lock.timeout.ms

10000

スナップショット実行時にテーブルロックの取得を待つ最大時間(ミリ秒単位)を指定する正の整数値。この時間帯にテーブルロックを取得できないと、スナップショットは失敗します。スナップショットの表示

snapshot.select.statement.overrides

 

スナップショットに含まれるテーブルからの行を制御します。
このプロパティーには、完全修飾テーブルのコンマ区切りリスト( DB_NAME.TABLE_NAME) が含まれます。個々のテーブルの select ステートメントは、追加の設定プロパティーで指定され、各テーブルの 1 つずつ、ID によって識別されます snapshot.select.statement.overrides.[DB_NAME].[TABLE_NAME]。これらのプロパティーの値は、スナップショット中に特定のテーブルからデータを取得する際に使用する SELECT ステートメントになります。大規模な追加のみのテーブルのユースケースとして、以前のスナップショットが中断された場合に、スナップショットを開始(再開)する特定のポイントを設定することが挙げられます。
注記: この設定は、スナップショットにのみ影響します。論理デコーダーによって生成されたイベントは影響を受けません。

event.processing​.failure.handling.mode

fail

イベントの処理中にコネクターが例外に応答する方法を指定します fail (問題のあるイベントのオフセットを示唆)、コネクターが停止します
warn。は、問題のあるイベントが省略され、問題のあるイベントのオフセットがログに記録される原因と
skip なります。は、問題のあるイベントをスキップします。

max.queue.size

20240

ストリーミングレプリケーションを介して受信される変更イベントが Kafka に書き込まれる前に配置されるブロックキューの最大サイズを指定する正の整数値。このキューは、たとえば Kafka への書き込みが遅い場合や Kafka が利用できない場合などに抑制を提供できます。

max.batch.size

10240

このコネクターの各反復中に処理されるイベントの各バッチの最大サイズを指定する正の整数値。

poll.interval.ms

1000

新しい変更イベントが表示されるまでコネクターが待機する時間(ミリ秒単位)を指定する正の整数値。デフォルトは 1000 ミリ秒または 1 秒です。

include.unknown.datatypes

false

Debezium がデータタイプが不明なフィールドを満たしている場合、デフォルトではフィールドは変更イベントから省略され、警告がログに記録されます。フィールドを組み込んで、不透明なバイナリー表現のクライアントにダウンストリームを送信して、クライアントがそれをデコードする方が望ましい場合もあります。不明なデータ false をフィルターし、それらをバイナリー形式で維持 true するには、に設定します。

注記

クライアントは後方互換性の問題をリスクとします。データベース固有のバイナリー表示の変更だけでなく、データタイプが Debezium によってサポートされる場合は、論理タイプでダウンストリームが送信され、コンシューマーによる調整が必要になります。通常、サポートがサポートされていないデータタイプが発生した場合は、機能要求を報告してサポートを追加してください。

database.initial.statements

 

データベースへの JDBC 接続(トランザクションログ読み取り接続ではなく)が確立されたときに実行する SQL ステートメントのセミコロン区切りリスト。セミコロン(';')を区切り文字として使用し、セミコロンを文字として使用する場合は 2 倍のセミコロン(';')を使用します。

注記

コネクターはそれぞれの判断で JDBC 接続を確立する可能性があるため、これは通常セッションパラメーターの設定のみに使用し、DML ステートメントの実行には使用しないでください。

heartbeat.interval.ms

0

ハートビートメッセージを送信する頻度を制御します。
このプロパティーには、コネクターがハートビートトピックにメッセージを送信する頻度を定義する間隔(ミリ秒単位)が含まれます。これは、コネクターがデータベースから変更イベントを受信しているかどうかを監視するために使用できます。また、キャッシュされていないテーブルのレコードのみが長くなる場合には、ハートビートメッセージも利用する必要があります。このような状況では、コネクターは引き続きデータベースからログを読み取るが、Kafka に変更メッセージを出力せず、オフセットの更新が Kafka にコミットされないことを意味します。これにより、WAL ファイルが必要なよりも長い時間保持されます(コネクターはすでに処理済みですが、最新の取得した LSN をデータベースにフラッシュする可能性があるため)、コネクターの再起動後により多くの変更イベントを再送信する可能性があります。ハートビートメッセージを送信しないよう 0 に、このパラメーターをに設定します。
デフォルトでは無効です。

heartbeat.topics.prefix

__debezium-heartbeat

ハートビートメッセージを送信するトピックの命名を制御します。
トピックには、パターンに従って名前が付けられ <heartbeat.topics.prefix>.<server.name>ます。

heartbeat.action.query

 

指定されている場合、このクエリーはソースデータベースに対してハートビートごとに実行されます。

これは、「 WAL Disk Space Consumption 」で説明されている状況に対処するために使用できます。この場合、トラフィックの多いデータベースで低トラフィックのデータベースから変更をキャプチャーし、Debezium が WAL レコードを処理しなくなり、データベースで WAL ポジションを取得できなくなります。

一部のハートビートテーブルにレコードを挿入すると(上述の手順で作成されている必要がある)、コネクターは低トラフィックのデータベースから変更を受信し、その LSN を認識して、データベースホストのバインドされていない WAL 増加を防ぎます。

例: INSERT INTO test_heartbeat_table (text) VALUES ('test_heartbeat')

schema.refresh.mode

columns_diff

テーブルのインメモリースキーマの更新をトリガーする条件を指定します。

columns_diff (デフォルト)は最も安全なモードで、インメモリースキーマは常にデータベーステーブルのスキーマと同期し続けます。

columns_diff_exclude_unchanged_toast TOASTable データの変更が不適切に行われない限り、受信メッセージから派生するスキーマと不一致がある場合は、コネクターにインメモリースキーマキャッシュを更新するよう指示します。

この設定は、このような更新の一部はほとんどない TOASTed データを持つテーブルが頻繁に更新される場合に、コネクターのパフォーマンスを大幅に向上します。ただし、TOASTable の列がテーブルからドロップされると、インメモリースキーマが古い状態になる可能性があります。

snapshot.delay.ms

 

起動後のスナップショットの取得前にコネクターが待機する間隔(ミリ秒単位)
。クラスターで複数のコネクターを起動する際にスナップショットの中断を回避するために使用できます。コネクターのリバランスが発生する可能性があります。

snapshot.fetch.size

10240

スナップショットの作成中に、各テーブルから 1 回読み込むべき行の最大数を指定します。コネクターはこのサイズの複数のバッチでテーブルコンテンツを読み取ります。デフォルトは 10240 です。

slot.stream.params

 

設定した論理デコードプラグインに渡されるパラメーターのオプションの一覧です。例: add-tables=public.table,public.table2;include-lsn=true

sanitize.field.names

true コネクター設定が Avro を使用するよう key.converter または value.converter パラメーターを明示的に指定する場合、それ以外の場合はデフォルトでに設定され falseます。

フィールド名が Avro 命名要件に準拠するようにサニタイズされるかどうか。詳細は、「 Avro の命名 」を参照してください。

slot.max.retries

6

試行に失敗するときにレプリケーションスロットへの接続を再試行する回数。

slot.retry.delay.ms

10000(10 秒)

コネクターがレプリケーションスロットへの接続に失敗したときに再試行の間隔を待つミリ秒数。

toasted.value.placeholder

__debezium_unavailable_value

Debezium が提供する定数を指定し、元の値がデータベースから提供されない値であることを示します。hex: 接頭辞で始まる場合、残りの文字列は 16 進法でエンコードされた octets に再送されることが想定されます。詳細は、「 未通知の値 」を参照してください。

provide.transaction.metadata

false

true Debezium に設定すると、トランザクション境界でイベントが生成され、トランザクションメタデータでデータイベントが強化されます。

詳細は、「 トランザクションメタデータ 」を参照してください。

コネクターは、Kafka プロデューサーおよびコンシューマーの作成時に使用される パススルー 設定プロパティーもサポートします。

Kafka プロデューサーおよびコンシューマーのすべての設定プロパティーについては、Kafka のドキュメント を参照してください。PostgreSQL コネクターは 新しいコンシューマー を使用します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.