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
    1
    converters プロパティーは必須であり、コネクターで使用するコンバーターインスタンスのシンボリック名のコンマ区切りリストを列挙します。このプロパティーに一覧表示される値は、コンバーターに指定する他のプロパティーの値の名前の接頭辞として機能します。
    2
    & lt;converterSymbolicName& gt; .type プロパティーは必須であり、コンバーターを実装するクラスの名前を指定します。たとえば、前述の カスタムコンバーターのサンプル では、以下のプロパティーをコネクター設定に追加します。
    converters: isbn
    isbn.type: io.debezium.test.IsbnConverter
  • 他のプロパティーをカスタムコンバーターに関連付けるには、プロパティー名の前にコンバーターのシンボリック名を付け、その後にドット()を追加し ます。シンボリック名は、Converters プロパティーの値として指定するラベルです。たとえば、前述の isbn コンバーターのプロパティーを追加して、コンバーターコードの configure メソッドに渡す schema.name を指定するには、以下のプロパティーを追加します。

    isbn.schema.name: io.debezium.postgresql.type.Isbn

改訂日時: 2023-04-21