2.3.3. MySQL コネクター設定プロパティー


ここにリストされている設定プロパティーは、Debezium MySQL コネクターの実行に 必要 です。また、高度な MySQL コネクタープロパティーが あり、デフォルト値はほとんど変更する必要がないため、コネクター設定で指定する必要はありません。

ヒント

Kafka プロデューサーおよびコンシューマーの作成時に、Debezium MySQL コネクターは パススルー 設定をサポートします。本セクション の最後にあるパススループロパティーについての情報 と、パススループロパティーの詳細は Kafka のドキュメント を参照 して ください。

プロパティーデフォルト説明

name

 

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

connector.class

 

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

tasks.max

1

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

database.hostname

 

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

database.port

3306

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

database.user

 

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

database.password

 

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

database.server.name

 

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

database.server.id

random

このデータベースクライアントの数値 ID。MySQL クラスター内で現在実行中のすべてのデータベースプロセスで一意でなければなりません。このコネクターは MySQL データベースクラスターを別のサーバー(一意の ID を使用)として参加するため、binlog を読み取ることができます。デフォルトでは、明示的な値を設定することが推奨されますが、5400 から 6400 の間で乱数が生成されます。

database.history.kafka.topic

 

コネクターがデータベーススキーマ履歴を保存する Kafka トピックのフルネーム。

database.history​.kafka.bootstrap.servers

 

コネクターが Kafka クラスターへの最初の接続を確立するのに使用するホスト/ポートペアの一覧。このコネクションは、コネクターによって以前に保存されていたデータベーススキーマ履歴を取得する場合や、ソースデータベースから読み取った各 DDL ステートメントを書き込むために使用されます。これは、Kafka Connect プロセスによって使用される同じ Kafka クラスターを参照する必要があります。

database.whitelist

空の文字列

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

database.blacklist

空の文字列

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

table.whitelist

空の文字列

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

table.blacklist

空の文字列

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

column.blacklist

空の文字列

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

column.truncate.to.length.chars

該当なし

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

column.mask.with.length.chars

該当なし

文字ベースの列の完全修飾名に一致する正規表現のオプションのコンマ区切りリスト。このリストは、変更イベントメッセージの値を、指定された数のアスタリスク(*)文字で構成されるフィールド値に置き換える必要があります。異なる長さを持つ複数のプロパティーを 1 つの設定で使用できますが、各長さは正の整数またはゼロである必要があります。列の完全修飾名は、databaseName.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 の形式ですMySQL 固有のデータタイプ名のリストは MySQL コネクターのデータタイプをマップする方法 を参照してください。

time.precision.mode

adaptive_time​_microseconds

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

decimal.handling.mode

precise

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

bigint.unsigned.handling.mode

long

BIGINT UNSIGNED コラムが変更イベントで表される方法を指定します。は、バイナリー表現を precise 使用して変更イベントにエンコードされる値を表すために使用します。long (デフォルト)は、Java を使用して値を java.math.BigDecimal 表します org.apache.kafka.connect.data.Decimallongこれは精度ではなくコンシューマーでの使用がはるかに簡単 long です。通常、は推奨設定です。2^63 を超える値を使用している場合のみ、これらの値はを使用して通知できないため、precise 設定を使用する必要があり longます。

include.schema.changes

true

コネクターがデータベースサーバー ID と同じ名前を持つ Kafka トピックに変更をパブリッシュするかどうかを指定するブール値。各スキーマ変更は、データベース名が含まれるキーを使用して記録され、値には DDL ステートメントが含まれます。これは、コネクターがデータベースの履歴を内部的に記録する方法に依存しません。デフォルトは true です。

include.query

false

変更イベントを生成した元の SQL クエリーをコネクターに含めるかどうかを指定するブール値。
注記: このオプションでは、MySQL を binlog_rows_query_log_events オプションで ON に設定する必要があります。スナップショットプロセスから生成されたイベントについては、クエリーは存在しません。
警告: このオプションを有効にすると、変更イベントに元の SQL ステートメントを含めることで、テーブルまたはフィールドを明示的にブラックリストに登録またはマスクすることができます。このため、このオプションはデフォルトで 'false' に設定されています。

event.processing​.failure.handling.mode

fail

binlog イベントのデシリアライズ中にコネクターが例外に応答する方法を指定します fail (問題のあるイベントとその binlog オフセットを示します)、コネクターが停止します
warn。は、問題のあるイベントをスキップし、問題のあるイベントとその binlog オフセットをログに記録する
skip 原因となります。

inconsistent.schema.handling.mode

fail

コネクターが内部スキーマ表現に存在しないテーブルに関連する binlog イベントに応答する方法を指定します(つまり内部表現はデータベースと一致しません)、例外(問題のあるイベントとその binlog オフセット)を fail スローし、コネクターが停止します
warn。は問題のあるイベントをスキップし、問題のあるイベントとその binlog オフセットをログ
skip に記録します。

max.queue.size

8192

データベースログから読み取られるイベントの変更が Kafka に書き込まれる前に配置されるブロックキューの最大サイズを指定する正の整数値。たとえば、Kafka への書き込みが遅い場合や、Kafka が利用できない場合などに、このキューは binlog リーダーにバックマークを提供することができます。キューに表示されるイベントは、このコネクターによって定期的に記録されるオフセットには含まれません。デフォルトは 8192 で、max.batch.size プロパティーに指定された最大バッチサイズよりも大きくする必要があります。

max.batch.size

2048

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

poll.interval.ms

1000

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

connect.timeout.ms

30000

MySQL データベースサーバーに接続してからタイムアウトするまでにこのコネクターが待機する最大時間(ミリ秒単位)を指定する正の整数値。デフォルトは 30 秒です。

gtid.source.includes

 

MySQL サーバーで binlog の位置を見つけるために使用される GTID のソース UUID と一致する正規表現のコンマ区切りリスト。含まれるパターンの 1 つに一致するソースを持つ GTID 範囲のみが使用されます。とは使用されない場合があり gtid.source.excludesます。

gtid.source.excludes

 

MySQL サーバーで binlog の位置を見つけるために使用される GTID のソース UUID と一致する正規表現のコンマ区切りリスト。これらの除外パターンのいずれも一致しないソースを持つ GTID 範囲のみが使用されます。とは使用されない場合があり gtid.source.includesます。

tombstones.on.delete

true

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

message.key.columns

空の文字列

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

2.3.3.1. 高度な MySQL コネクタープロパティー

以下の表は、高度な MySQL コネクタープロパティーを示してい ます。

プロパティーデフォルト説明

connect.keep.alive

true

MySQL サーバー/クラスターへの接続を確実に維持するために別のスレッドを使用するかどうかを指定するブール値。

table.ignore.builtin

true

組み込みシステムテーブルを無視するかどうかを指定するブール値。これは、テーブルのホワイトリストまたはブラックリストに関係なく適用されます。デフォルトでは、システムテーブルは監視から除外され、システムテーブルの変更時にイベントは生成されません。

database.history.kafka.recovery.poll.interval.ms

100

永続化されたデータのポーリング中にコネクターが待機する最大時間(ミリ秒単位)を指定する整数値。デフォルトは 100ms です。

database.history.kafka.recovery.attempts

4

コネクターリカバリーがエラーを出して失敗するまで、コネクターが永続履歴データの読み取りを試行する最大回数。データを受信してから待機する最大 recovery.attempts 時間 recovery.poll.interval.ms

database.history.skip.unparseable.ddl

false

コネクターが不適切なデータベースステートメントや不明なデータベースステートメントを無視するか、処理を停止すべきかを指定するブール値。また、演算子に問題を修正させるかどうかを指定するブール値。安全なデフォルトはです false。Skiping は、binlog の処理時にデータの損失や改ざんが発生する可能性があるため、注意して使用してください。

database.history.store.only.monitored.tables.ddl

false

コネクターがすべての DDL ステートメントを記録する必要があるか、または Debezium によって監視されるテーブルにのみ(フィルター設定を介して true)記録する必要があるかどうかを指定するブール値。安全なデフォルトはです false。この機能は、フィルターの変更時に不足しているデータが必要になる可能性があるため、注意して使用してください。

database.ssl.mode

disabled

暗号化した接続を使用するかどうかを指定します。デフォルトはで disabled、暗号化されていない接続の使用を指定します。

この preferred オプションは、サーバーがセキュアな接続をサポートしますが、暗号化されていない接続にフォールバックする場合は、暗号化された接続を確立します。

required オプションは暗号化された接続を確立しますが、何らかの理由で接続が確立できない場合は失敗します。

verify_ca オプションはのように動作します required が、サーバー TLS 証明書を設定済みの認証局(CA)証明書に対して検証し、有効な CA 証明書に一致しないと失敗します。

verify_identity オプションはのように動作します verify_ca が、サーバー証明書がリモート接続のホストと一致することを確認します。

binlog.buffer.size

0

binlog リーダーによって使用されるルックアヘッドバッファーのサイズ。
特定の条件下では、MySQL binlog に ROLLBACK ステートメントによって終了されたコミットされていないデータが含まれる可能性があります。典型的な例は、保存ポイントを使用したり、単一のトランザクションで一時テーブルと通常のテーブルの変更を混在させたりします。
トランザクションが最初に検出されると、Debezium は binlog の位置をロール転送しようとし、COMMIT またはを見つける ROLLBACK ため、トランザクションの変更がストリーミングされるかどうかを判断できます。バッファーサイズは、トランザクション境界の検索中に Debezium がバッファーできるトランザクションの最大変更数を定義します。トランザクションのサイズがバッファーより大きい場合、Debezium はストリーミング中にバッファーに収まらないイベントを再読み込みし、再度読み直す必要があります。値ではバッファーが 0 無効になります。
デフォルトでは無効になっています。
注記: この機能は、インキュートとして考慮する必要があります。お客様からのフィードバックは必要ですが、完全に上書きされていないことが予想されます。

snapshot.mode

initial

コネクターの起動時にスナップショットを実行する基準を指定します。デフォルトはで initial、ターゲットサーバー名にオフセットが記録されていない場合に限り、コネクターがスナップショットを実行できることを指定します。when_needed オプションでは、コネクターが必要なことを常に起動時にスナップショットを実行するように指定します(オフセットが利用可能でない場合、または以前に記録されたオフセットがサーバーで利用できない binlog の場所または GTID を指定する場合)。never オプションでは、接続がスナップショットを使用せず、最初にターゲットサーバー名を指定して起動すると、binlog の先頭からコネクターが読み取られるように指定します。これは、binlog にデータベースの履歴がすべて含まれていることが保証されているため、注意して使用する必要があります。トピックでデータの一貫したスナップショットを含める必要がなく、コネクターが起動してから変更が必要なのは、コネクターがデータではなく、スキーマのみをスナップショットングする schema_only オプションを使用できます。

schema_only_recovery は、破損または失われたデータベース履歴トピックをリカバリーするための既存のコネクターのリカバリーオプションです。または、予期せずに増大する可能性のあるデータベース履歴トピック(サイレンス保持を必要とする)を定期的に「クリーンアップ」します。

snapshot.locking.mode

minimal

スナップショットの実行中に、コネクターがグローバル MySQL 読み取りロックに保持する期間(データベースの更新を非推奨にする)を制御します。、extendedおよびの 3 つの値 minimalを使用でき noneます。

minimal コネクターは、コネクターがデータベーススキーマやその他のメタデータを読み取り、スナップショットの初期部分のみのグローバル読み取りロックを保持します。スナップショットで残りの作業を行うには、各テーブルからすべての行を選択します。これは、グローバル読み取りロックが保持されなくなったり、その他の MySQL クライアントがデータベースを更新している場合でも、REPEATABLE READ トランザクションを使用して一貫した方法で実行できます。

extended クライアントが REPEATABLE READ セマンティクスから除外する操作を提出する場合、スナップショット全体の書き込みをすべてブロックする方が望ましい場合もあります。このような場合は、このオプションを使用します。

none は、コネクターがスナップショットプロセス中にテーブルロックを取得しないようにします。この値はすべてのスナップショットモードで使用できますが、スナップショットの取得中にスキーマの変更が発生していない場合に 限り、を安全に使用することができます。MyISAM エンジンで定義されたテーブルでは、MyISAM がテーブルロックを取得するため、このプロパティーが設定されている場合でもテーブルはロックされます。この動作は、行レベルのロックを取得する InnoDB エンジンとは異なります。

snapshot.select.statement.overrides

 

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

min.row.count.to.stream.results

1000

スナップショットの操作中に、コネクターは含まれる各テーブルにクエリーを行い、そのテーブル内のすべての行の読み取りイベントを生成します。このパラメーターは、MySQL 接続が、テーブルのすべての結果をメモリーにプルするかどうかを決定します(これは高速ですが、大量のメモリーを必要とする)か、結果をストリーミングするか(速度は低くなりますが、非常に大きなテーブルで機能します)。この値は、コネクターが結果をストリーミングする前に表に含める必要のある行数の最小数を指定し、デフォルトは 1,000 です。すべてのテーブルサイズチェックを省略し、スナップショット中にすべての結果をストリームするには、このパラメーターを「0」に設定します。

heartbeat.interval.ms

0

ハートビートメッセージを送信する頻度を制御します。
このプロパティーには、コネクターがハートビートメッセージをハートビートトピックに送信する頻度を定義する間隔(ミリ秒単位)が含まれます。ハートビートメッセージを送信しないよう 0 に、このパラメーターをに設定します。
デフォルトでは無効です。

heartbeat.topics.prefix

__debezium-heartbeat

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

database.initial.statements

 

データベースへの JDBC 接続(トランザクションログ読み取り接続ではなく)が確立されたときに実行する SQL ステートメントのセミコロン区切りリスト。セミコロン(';')を区切り文字として使用し、セミコロンを文字として使用する場合は 2 倍のセミコロン(';')を使用します。
注記: コネクターは、独自の判断で JDBC 接続を確立する可能性があるため、これは通常セッションパラメーターの設定のみに使用してくださいが、DML ステートメントの実行には使用しないでください。

snapshot.delay.ms

 

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

snapshot.fetch.size

 

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

snapshot.lock.timeout.ms

10000

スナップショット実行時にテーブルロックの取得を待つ最大時間(ミリ秒単位)を指定する正の整数値。この時間帯にテーブルロックを取得できないと、スナップショットは失敗します。「 MySQL コネクターがデータベースのスナップショットを実行する方法 」を参照してください。

enable.time.adjuster

 

MySQL を使用すると、ユーザーは年の値を 2 桁の数字または 4 桁の数字として挿入できます。2 桁の数字の場合は、この値は 2019 - 2069 の範囲に自動的にマッピングされます。これは通常データベースにより行われます。
Debezium が変換を行う必要がある場合には、true (デフォルト)に設定します。
変換 false が完全にデータベースに委譲される場合は、に設定します。

sanitize.field.names

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

フィールド名が Avro 命名要件に準拠するようにサニタイズされるかどうか。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.