目次

Search

  1. はじめに
  2. 一括取り込みデータベース

一括取り込みデータベース

一括取り込みデータベース

Kafkaターゲットのカスタムメッセージキーの生成

Kafkaターゲットのカスタムメッセージキーの生成

Avro形式を使用するすべてのKafkaターゲットタイプに対し、ソーステーブルごとに1つ以上のカラムで構成されるカスタムメッセージキーを生成するルールを設定できます。ルールの設定後、Kafkaターゲットを持つデータベース取り込み増分ロードジョブは、ターゲットメッセージングシステムに送信するメッセージのヘッダーに、生成されたメッセージキーをを含めることができます。ターゲットメッセージングシステムはメッセージキーを使用して、特定のキー値を持つメッセージをマルチパーティショントピック内の同じパーティションに書き込むことができます。
この機能を実装するには、各ソーステーブルのキーカラムを識別するルールを含んだ構成ファイルを手動で作成する必要があります。次に、タスクウィザードのカスタム設定プロパティにファイルを指定します。

構成ファイルの作成

テキストエディタでルール構成ファイルを作成し、Secure Agentシステム上の場所に保存します。このファイルには、各ソーステーブルのルールが含まれています。各ルールは、トピックパーティションへのデータの書き込みに使用するカスタムキーカラムを定義します。
データベース取り込みタスクがデプロイされた後にルールを変更または追加するか、他のパラメータのいずれかを変更した場合、ルールの変更を有効にするには、タスクを再デプロイする必要があります。
ルールの構文:
次の構文を使用して構成ファイルにルールを定義します。
rule=(
schema
.
tablename
,
column1
,
column2
,
column3
,… )
additional rules...
[tableNotFound=ABORT] [trace={true|false}] [delimiter=
character
]
ファイルにコメントを含めるには、各コメント行を番号(#)記号で始めます。例:
#This text is for informational purposes only.
パラメータ
:
  • rule
    。ソーステーブルの複合メッセージキーを生成するためのルールを定義します。各ルールでは、最初にソーステーブルのスキーマとテーブル名を特定します。スキーマを変更するか、ターゲットのテーブルの名前変更ルールを定義する場合は、ターゲットのスキーマまたは名前が変更されたテーブルの名前を使用します。次に、メッセージキーを構成する1つ以上のテーブルカラムの名前を指定します。テーブルにカラムが定義されていることを確認します。カラムが定義されていないと、データベース取り込みジョブが失敗します。SQL Serverソースの場合は、データベースの名前も
    database
    の形式で含めます。
    schema
    tablename
    同じルール構成ファイルに複数のルールを定義できます。
    メッセージキーの生成時、一括取り込みデータベースは、各カラム値の文字表現とそれに続く区切り文字を使用します。各カラムの値と区切り文字は、ルール定義にカラムが表示される順序で複合キー値に追加されます。その後、複合キーはレコードのKafkaメッセージキーとして使用されます。メッセージキーに空の値またはnull値があるカラムの位置は、区切り文字のみで表されます。
  • delimiter
    オプション
    。生成されたメッセージキーの各キーカラムの値の後に区切り文字として使用される単一の文字を指定します。このパラメータは、ルール構成ファイルに1回だけ指定できます。
    デフォルトはセミコロン(;)です。
  • tableNotFound
    オプション
    。このパラメータをABORTに設定すると、データベース取り込みジョブはソーステーブルのデータの処理を停止し、ルール構成ファイルにテーブルのルール定義がないと失敗します。各ソーステーブルには、複合メッセージキーを適切に生成させるためのルール定義が必要です。このパラメータは構成ファイルに1回だけ指定できます。
    このパラメータを指定せず、ルール構成ファイルにテーブルが見つからない場合は、ターゲットメッセージングシステムパラメータのデフォルトのルールによって、レコードに使用するキーが決定されます。
  • trace
    オプション
    。ルール定義に基づくメッセージキー生成のトレースを有効または無効にします。有効な値は以下のとおりです。
    • true
      。ルール定義に基づくメッセージキー生成のトレースを有効にします。
    • false
      。ルール定義に基づくメッセージキー生成のトレースを無効にします。
    このパラメータは、ルール構成ファイルに1回だけ指定できます。
    デフォルトは
    false
    です。
サンプルルール:
rule=(testdb.ABC.DEPT,DEPTNO,DNAME) tableNotFound=ABORT trace=true delimiter=;
このルールに基づいて生成されたキー出力の例:
1234;HR;

データベース取り込みタスクの設定

Kafkaターゲットを持つデータベース取り込み増分ロードタスクを作成する場合、次のオプションを設定して、カスタムメッセージキーの生成を有効にする必要があります。
  • タスクウィザードの
    [ターゲット]
    ページで、
    [テーブル名をトピック名として使用]
    チェックボックスがオフになっていることを確認します。次に、トピック名を
    [トピック名]
    フィールドに入力します。
  • [出力形式]
    フィールドで、
    [Avro]
    を選択します。
    [Avro形式]
    フィールドで任意のAvro形式を選択できます。
  • [カスタムプロパティ]
    captureColumnValuesFile
    プロパティに、Secure Agentシステム上で作成したルール構成ファイルを指すパス値を指定します。