13.2. Debezium コネクターでのカスタムコンバーターの使用
カスタムコンバーターは、ソーステーブルの特定の列または列の型に作用して、ソースのデータ型を Kafka Connect スキーマ型に変換する方法を指定します。コネクターでカスタムコンバーターを使用するには、コンバーター JAR ファイルをコネクターファイルとともにデプロイしてから、コンバーターを使用するようにコネクターを設定します。
13.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 ファイルのコピーを配置する必要があります。
13.2.2. カスタムコンバーターを使用するためのコネクターの設定
コネクターがカスタムコンバーターを使用できるようにするには、コンバーターの名前とクラスを指定するプロパティーをコネクター設定に追加します。コンバーターが特定のデータ型の形式をカスタマイズするためにさらに情報を必要とする場合は、他の設定オプションを定義して、その情報を指定することもできます。
手順
以下の必須プロパティーをコネクター設定に追加して、コネクターインスタンスのコンバーターを有効にします。
converters: <converterSymbolicName> 1 <converterSymbolicName>.type: <fullyQualifiedConverterClassName> 2
表13.3 コンバーターを有効にするためのコネクター設定プロパティーの説明 項目 説明 1
必須の
converters
プロパティーは、コネクターで使用するコンバーターインスタンスのシンボリック名のコンマ区切りリストを列挙します。このプロパティーに一覧表示される値は、コンバーターに指定する他のプロパティーの値の名前の接頭辞として機能します。2
必須の
<converterSymbolicName>.type
プロパティーは、コンバーターを実装するクラスの名前を指定します。たとえば、前述の カスタムコンバーターのサンプル では、以下のプロパティーをコネクター設定に追加します。
converters: isbn isbn.type: io.debezium.test.IsbnConverter
他のプロパティーをカスタムコンバーターに関連付けるには、プロパティー名の前にコンバーターの記号名を付け、その後にドット (
.
) を付けます。シンボリック名は、converters
プロパティーの値として指定するラベルです。たとえば、前述のisbn
コンバーターのプロパティーを追加して、コンバーターコードのconfigure
メソッドに渡すschema.name
を指定するには、以下のプロパティーを追加します。isbn.schema.name: io.debezium.postgresql.type.Isbn