メタデータとデータ メッセージ
このトピックでは、Kafka ターゲット コネクタ によって生成されるメタデータとデータ メッセージの構造と内容について説明します。
メタデータ メッセージ
| 項目 | タイプ | 説明 |
|---|---|---|
| schemaId | String | Avro スキーマの一意の識別子。 |
| lineage | Structure | データの出所に関する情報 (Qlik Talend Data Integration サーバー、タスク、テーブルなど) |
|
server |
String | Qlik Talend Data Integration サーバーの名前。 |
|
task |
String | タスクの名前。 |
|
schema (Schema Name) |
String | データベース スキーマの名前。 |
|
table (Table Name) |
String | テーブルの名前。 |
|
tableVersion |
Integer | Qlik Talend Data Integration は、ソース テーブルの構造のバージョン番号を管理します。ソースで DDL が変更されると、バージョンが増加し、新しいメタデータ メッセージが生成されます。 |
|
timestamp |
String | メタデータ メッセージの日時。 |
| tableStructure | Structure | テーブルの構造について説明します。 |
|
tableColumns |
Structure | 列とそのプロパティのリストが含まれます。 |
|
{columns} |
Structure | 各列には、以下のプロパティを持つレコードがあります。 |
|
ordinal |
Integer | レコードの列の位置。 |
|
タイプ |
String | 列のデータ型。 |
|
length |
Integer | 列に許可されるデータの最大サイズ (バイト単位)。 |
|
precision |
Integer | NUMERIC データ タイプの場合、値を表すために必要な最大桁数。 |
|
scale |
Integer | NUMERIC データ タイプの場合、数値に許可される小数点の右側の最大桁数。 |
|
primaryKeyPosition |
Integer | テーブルのプライマリ キーまたは一意のインデックスの列の位置。列がテーブルのプライマリ キーの一部ではない場合、値はゼロになります。 |
| dataSchema | String | データ メッセージを逆シリアル化するための Avro スキーマ。 |
データ メッセージ
| 項目 | タイプ | 説明 |
|---|---|---|
| schema (name) | String | レプリケートされたソース テーブルを含むソース データベース スキーマの名前。 |
| table (name) | String | ソース テーブルの名前。 |
|
headers |
Structure | 現在のレコードに関する情報。 |
|
operation (Operation) |
Enum | 操作の種類。 フル ロード - ソース データのターゲット トピックへの初期ロード REFRESH - フル ロード中のターゲットへのレコードの挿入 CDC - ソース テーブルの変更を関連するトピックに適用 INSERT - 新しいターゲット レコードの挿入 UPDATE - 既存のターゲット レコードの更新 DELETE - ターゲット レコードの削除 |
|
changeSequence (Change Sequence) |
String |
タスクのすべての変更テーブルに共通の、単調に増加する変更シーケンス。 この項目を使用して、レコードを時系列順に並べます。 CDC 操作にのみ適用されます。 |
|
timestamp (Timestamp) |
String |
元の変更の UTC タイムスタンプ。 CDC 操作にのみ適用されます。 |
|
streamPosition |
String |
ソース CDC ストリームの位置。 CDC 操作にのみ適用されます。 |
|
transactionId (Transaction ID) |
String |
変更レコードが属するトランザクションの ID。 この項目を使用して、特定のトランザクションのすべての変更を収集します。 CDC 操作にのみ適用されます。 |
|
changeMask (Change Mask) |
String |
ソース テーブルで変更されたデータ列を示します。 変更マスクは 16 進数の文字列で、リトルエンディアン順序でデータ列のビットマスクを表します。変更マスク内のビット位置は、そのテーブルのメタデータ メッセージにおける列の序数に基づきます。 つまり、データ列が 10 個ある場合、それらはビットマスクのビット 0 ~ 9 を占めます。 UPDATEマスクが 16 進数で 0B (2 進数で 1011) の場合、序数が 1、2、4 の列が変更されたことを意味します。 ビットのセマンティクスの説明は次のとおりです。
情報メモ
LOB 列は changeMask ビットには含まれません。 |
|
columnMask (Column Mask) |
String |
メッセージに含まれるデータ列を示します。通常、これにはテーブルのすべての列が含まれます。 情報メモ
完全な補足ログなしで Oracle ソースから移動する場合、一部の列は移動済みできなかったため、データに存在しない可能性があります。 列マスクは 16 進数の文字列で、リトルエンディアン順序でデータ列のビットマスクを表します。列マスク内のビット位置は、そのテーブルのメタデータ メッセージにおける列の序数に基づきます。 これにより、アプライアは、列の実際の値である NULL 値と、ソース データベースから移動済みできなかった列を表す NULL 値を区別できます。 |
|
externalSchemaId |
String |
スキーマ ID。これは、 [外部スキーマ IDヘッダーを含める] チェックボックスが選択されている場合にのみ表示されます。 ソース テーブルで DDL が実行されるたびにスキーマ ID が変更されるため、コンシューマー アプリケーションはこの情報を使用して、メッセージ スキーマが変更されたかどうかを判断できます。 |
|
transactionEventCounter (Transaction Event Counter) |
Long |
トランザクション内の現在の操作のシーケンス番号。 これを使用して、トランザクション内の操作の順序を決定できます。 |
|
transactionLastEvent (Transaction Last Event) |
Boolean |
「True」はトランザクションの最後のレコードであることを示します。一方、「False」はすべてのレコードが処理されていないことを示します。 |
|
data |
Structure | テーブル レコードのデータ |
|
{columns} |
現在のレコードの列名と値。 | |
|
beforeData |
Structure | 変更前のテーブル レコードのデータ |
|
{columns} |
変更前の列名と値。 UPDATE 操作に適用されます。 |