8.2. Debezium コネクターでのカスタムコンバーターの使用
カスタムコンバーターは、ソーステーブルの特定の列または列の型に作用して、ソースのデータ型を Kafka Connect スキーマ型に変換する方法を指定します。コネクターでカスタムコンバーターを使用するには、コンバーター JAR ファイルをコネクターファイルとともにデプロイしてから、コンバーターを使用するようにコネクターを設定します。
カスタムコンバーターは、Debezium リレーショナルデータベースソースコネクターによって発行されるメッセージを変更するように設計されています。Debezium MongoDB コネクターまたは Debezium JDBC シンクコネクターをカスタムコンバータを使用するように設定できません。
8.2.1. カスタムコンバーターのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- カスタムコンバーター Java プログラムがある。
手順
-
Debezium コネクターでカスタムコンバーターを使用するには、Java プロジェクトを JAR ファイルにエクスポートし、そのファイルを使用する各 Debezium コネクターの JAR ファイルを含むディレクトリーにコピーします。
たとえば、一般的なデプロイメントでは、Debezium コネクターファイルは Kafka Connect ディレクトリーのサブディレクトリー (/kafka/connect
) に保存され、各コネクター JAR は独自のサブディレクトリー (/kafka/connect/debezium-connector-db2
、/kafka/connect/debezium-connector-mysql
など) に格納されます。コネクターでコンバーターを使用するには、コンバーターの JAR ファイルをコネクターのサブディレクトリーに追加します。
複数のコネクターでコンバーターを使用するには、各コネクターのサブディレクトリーにコンバーター JAR ファイルのコピーを配置する必要があります。
8.2.2. カスタムコンバーターを使用するためのコネクターの設定 リンクのコピーリンクがクリップボードにコピーされました!
コネクターがカスタムコンバーターを使用できるようにするには、Debezium ソースコネクターの設定にコンバーターの名前とクラスを指定するプロパティーを追加します。Debezium JDBC シンクコネクターをカスタムコンバータを使用するように設定できません。コンバーターが特定のデータ型の形式をカスタマイズするためにさらに情報を必要とする場合は、他の設定オプションを定義して、その情報を指定できます。
手順
以下の必須プロパティーをコネクター設定に追加して、コネクターインスタンスのコンバーターを有効にします。
converters: <converterSymbolicName> <converterSymbolicName>.type: <fullyQualifiedConverterClassName>
converters: <converterSymbolicName>
1 <converterSymbolicName>.type: <fullyQualifiedConverterClassName>
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表8.3 コンバーターを有効にするためのコネクター設定プロパティーの説明 項目 説明 1
必須の
converters
プロパティーは、コネクターで使用するコンバーターインスタンスのシンボリック名のコンマ区切りリストを列挙します。このプロパティーに一覧表示される値は、コンバーターに指定する他のプロパティーの値の名前の接頭辞として機能します。2
必須の
<converterSymbolicName>.type
プロパティーは、コンバーターを実装するクラスの名前を指定します。たとえば、前述の カスタムコンバーターのサンプル では、以下のプロパティーをコネクター設定に追加します。
converters: isbn isbn.type: io.debezium.test.IsbnConverter
converters: isbn isbn.type: io.debezium.test.IsbnConverter
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 他のプロパティーをカスタムコンバーターに関連付けるには、プロパティー名の前にコンバーターの記号名を付け、その後にドット (
.
) を付けます。シンボリック名は、converters
プロパティーの値として指定するラベルです。たとえば、前述のisbn
コンバーターのプロパティーを追加して、コンバーターコードのconfigure
メソッドに渡すschema.name
を指定するには、以下のプロパティーを追加します。isbn.schema.name: io.debezium.postgresql.type.Isbn
isbn.schema.name: io.debezium.postgresql.type.Isbn
Copy to Clipboard Copied! Toggle word wrap Toggle overflow