# メタデータとデータ メッセージ

このトピックでは、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 | 操作の種類。<br><br>フル ロード - ソース データのターゲット トピックへの初期ロード<br><br>REFRESH - フル ロード中のターゲットへのレコードの挿入<br><br>CDC - ソース テーブルの変更を関連するトピックに適用<br><br>INSERT - 新しいターゲット レコードの挿入<br><br>UPDATE - 既存のターゲット レコードの更新<br><br>DELETE - ターゲット レコードの削除 |
| changeSequence (Change Sequence) | String | タスクのすべての変更テーブルに共通の、単調に増加する変更シーケンス。<br><br>この項目を使用して、レコードを時系列順に並べます。<br><br>CDC 操作にのみ適用されます。 |
| timestamp (Timestamp) | String | 元の変更の UTC タイムスタンプ。<br><br>CDC 操作にのみ適用されます。 |
| streamPosition | String | ソース CDC ストリームの位置。<br><br>CDC 操作にのみ適用されます。 |
| transactionId (Transaction ID) | String | 変更レコードが属するトランザクションの ID。<br><br>この項目を使用して、特定のトランザクションのすべての変更を収集します。<br><br>CDC 操作にのみ適用されます。 |
| changeMask (Change Mask) | String | ソース テーブルで変更されたデータ列を示します。<br><br>変更マスクは 16 進数の文字列で、リトルエンディアン順序でデータ列のビットマスクを表します。変更マスク内のビット位置は、そのテーブルのメタデータ メッセージにおける列の序数に基づきます。<br><br>つまり、データ列が 10 個ある場合、それらはビットマスクのビット 0 ～ 9 を占めます。<br><br>UPDATEマスクが 16 進数で 0B (2 進数で 1011) の場合、序数が 1、2、4 の列が変更されたことを意味します。<br><br>ビットのセマンティクスの説明は次のとおりです。<br><br><ul> <li>INSERT レコードの場合、挿入されたすべての列に関連するビットが設定されます。</li> <li>DELETE レコードの場合、プライマリ キー  (または一意のインデックス) 列にのみ関連ビットが設定されます。これにより、アプライヤーは、別のソースからプライマリ キー項目を見つけなくても DELETE ステートメントを構築できます。</li> <li>UPDATEレコードの場合、値が変更された各列に対応するビットが設定されます。</li> </ul><br><br>情報メモ<br><br>LOB 列は changeMask ビットには含まれません。 |
| columnMask (Column Mask) | String | メッセージに含まれるデータ列を示します。通常、これにはテーブルのすべての列が含まれます。<br><br>情報メモ<br><br>完全な補足ログなしで Oracle ソースから移動する場合、一部の列は移動済みできなかったため、データに存在しない可能性があります。<br><br>列マスクは 16 進数の文字列で、リトルエンディアン順序でデータ列のビットマスクを表します。列マスク内のビット位置は、そのテーブルのメタデータ メッセージにおける列の序数に基づきます。<br><br>これにより、アプライアは、列の*実際の*値である NULL 値と、ソース データベースから移動済みできなかった列を表す NULL 値を区別できます。 |
| externalSchemaId | String | スキーマ ID。これは、 [外部スキーマ IDヘッダーを含める] チェックボックスが選択されている場合にのみ表示されます。<br><br>ソース テーブルで DDL が実行されるたびにスキーマ ID が変更されるため、コンシューマー アプリケーションはこの情報を使用して、メッセージ スキーマが変更されたかどうかを判断できます。 |
| transactionEventCounter (Transaction Event Counter) | Long | トランザクション内の現在の操作のシーケンス番号。<br><br>これを使用して、トランザクション内の操作の順序を決定できます。 |
| transactionLastEvent (Transaction Last Event) | Boolean | 「True」はトランザクションの最後のレコードであることを示します。一方、「False」はすべてのレコードが処理されていないことを示します。 |
| data | Structure | テーブル レコードのデータ |
| {columns} |  | 現在のレコードの列名と値。 |
| beforeData | Structure | 変更前のテーブル レコードのデータ |
| {columns} |  | 変更前の列名と値。<br><br>UPDATE 操作に適用されます。 |