KCOP で JSON フォーマット・レコードを書き込めるようにする

KcopJsonFormatIntegrated Kafka カスタム操作プロセッサーを使用して、レコードを JSON フォーマットで書き込むことができます。

このタスクについて

この KCOP を使用して、Avro Kafka プロデューサー・レコードの JSON エンコードされたキー・フィールドと値フィールドに、ソース操作を複製できます。 この KCOP はスキーマ・レジストリーに接続しません。 トピック名には「-json」が付加されます。 シリアライズに JsonEncoder ライブラリーを使用すれば、スキーマ・レジストリーは不要であるため、特殊なデシリアライザーまたはスキーマ・レジストリーを持つコンシューマーを使用することなく、Apache Kafka のどのようなインストール済み環境も複製ターゲットにできます。 詳しくは、 Javadoc 形式の API リファレンスを参照してください。

手順

  1. 管理コンソールで、 「構成」 > 「サブスクリプション」をクリックします。
  2. 登録を選択します。
  3. サブスクリプションを右クリックして、 Kafka 「プロパティー」を選択します。
  4. Zookeeper が Kafka アプライのメソッドとして選択されていることを確認します。
  5. 「OK」をクリックします。
  6. サブスクリプションを右クリックして、 「ユーザー出口」を選択します。
  7. 以下のフィールドに値を入力します。
    クラス名
    com.datamirror.ts.target.publication.userexit.sample.kafka.KcopJsonFormatIntegrated
    パラメーター
    [-file:full_path_to_filename]

    規則 CDC_Kafka_installation_directory/conf/filename.propertiesを使用することもできます。

  8. 「OK」をクリックします。

    出力例

    $ db2 "insert into tab1 values (8,8,8, 'Tab1 data')"
    DB20000I The SQL command completed successfully.
    $ db2 "update tab1 set I1 = 9, I2 = 9 where I1 = 8"
    DB20000I The SQL command completed successfully.
    $ db2 "delete from tab1 where I1 = 9"
    DB20000I The SQL command completed successfully.

    Kafka 提供のコンシューマーを使用してレコードを読み取る

    kafka-console-consumer --zookeeper hostname:port --property print.key=true --topic topic name-json --from-beginning
    
    {"I2":8,"I3":8} {"I1":8,"I2":8,"I3":8,"V1":{"string":"Tab1 data"}}
    {"I2":8,"I3":8} null
    {"I2":9,"I3":8} {"I1":9,"I2":9,"I3":8,"V1":{"string":"Tab1 data"}}
    {"I2":9,"I3":8} null