# 元数据和数据消息

本主题描述了由Kafka目标连接器生成的元数据和数据消息的结构和内容。

## 元数据消息

元数据消息

| 字段 | 类型 | 描述 |
| --- | --- | --- |
| schemaId | 字符串 | Avro 架构的唯一标识符。 |
| 世系 | 結構 | 有关数据来源的信息（Qlik Talend Data Integration 服务器、任务、表等等） |
| 服务器 | 字符串 | Qlik Talend Data Integration 服务器的名称。 |
| 任务 | 字符串 | 任务的名称。 |
| 模式 (模式名称) | 字符串 | 数据库模式的名称。 |
| 表 (表格名称) | 字符串 | 表格的名称。 |
| tableVersion | 整数 | Qlik Talend Data Integration 维护源表结构的版本号。当源上发生 DDL 更改时，版本会增加，并生成新的元数据消息。 |
| 时间戳 | 字符串 | 元数据消息的日期和时间。 |
| 表结构 | 結構 | 描述表的结构。 |
| 表列 | 結構 | 包含列及其属性的列表。 |
| {列} | 結構 | 对于每列，一个包含以下属性的记录。 |
| 初始 | 整数 | 列在记录中的位置。 |
| 类型 | 字符串 | 列数据类型。 |
| 长度 | 整数 | 该列允许的最大数据大小（以字节为单位）。 |
| 精度 | 整数 | 对于 NUMERIC 数据类型，表示值所需的最大位数。 |
| 刻度 | 整数 | 对于 NUMERIC 数据类型，一个数字允许的小数点右边的最大位数。 |
| primaryKeyPosition | 整数 | 列在表的主键或唯一索引中的位置。如果列不是表主键的一部分，则该值为零。 |
| dataSchema | 字符串 | 用于反序列化数据消息的 Avro 模式。 |

## 数据消息

数据消息

| 字段 | 类型 | 描述 |
| --- | --- | --- |
| 模式 (名称) | 字符串 | 包含复制的源表的源数据库模式的名称。 |
| 表格 (名称) | 字符串 | 源表的名称。 |
| 标题 | 結構 | 有关当前记录的信息。 |
| 操作 (Operation) | 枚举 | 操作类型。<br><br>全量加载 - 将源数据初始加载到目标主题<br><br>刷新 – 在完全加载期间向目标插入记录<br><br>CDC - 将源表更改应用到相关主题<br><br>INSERT – 插入新的目标记录<br><br>UPDATE – 将现有目标记录 UPDATE<br><br>DELETE – 删除目标记录 |
| changeSequence (更改序列) | 字符串 | 单调递增的变更序列器，对于任务的所有变更表都是通用的。<br><br>使用此字段按时间顺序对记录进行排序。<br><br>仅适用于 CDC 操作。 |
| 时间戳 (时间戳) | 字符串 | 原始更改 UTC 时间戳。<br><br>仅适用于 CDC 操作。 |
| 数据流位置 | 字符串 | 源 CDC 流位置。<br><br>仅适用于 CDC 操作。 |
| 事务 ID (事务 ID) | 字符串 | 更改记录所属事务的 ID。<br><br>使用此字段收集特定事务的所有更改。<br><br>仅适用于 CDC 操作。 |
| changeMask（更改掩码） | 字符串 | 指示源表中更改了哪些数据列。<br><br>更改掩码是一个十六进制数字字符串，表示小端序数据列的位掩码。更改掩码中的位位置基于该表的元数据消息中列的序号。<br><br>这意味着，如果有 10 个数据列，它们在位掩码中占据位 0 到 9。<br><br>如果 UPDATE 掩码是十六进制的 0B（即二进制的 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 (列掩码) | 字符串 | 指示消息中存在哪些数据列。通常，这将包含所有表列。<br><br>信息注释<br><br>当 移动 来自未启用完全补充日志记录的 Oracle 源时，某些列可能不会出现在数据中，因为它们无法 已移动。<br><br>列掩码是一个十六进制数字字符串，表示以小端序排列的数据列的位掩码。列掩码中的位位置基于该表的元数据消息中列的序号。<br><br>这使得应用器能够区分作为列的*实际*值的空值，以及表示无法从源数据库中已移动的列的空值。 |
| 外部架构ID | 字符串 | 架构ID。仅当选中包含外部架构ID标头复选框时，才会显示此项。<br><br>由于每次对源表执行 DDL 操作时，架构 ID 都会更改，因此消费者应用程序可以使用此信息来确定消息架构是否已更改。 |
| transactionEventCounter (事务事件计数器) | Long | 事务中当前操作的序列号。<br><br>这可用于确定事务中的操作顺序。 |
| transactionLastEvent (事务最后事件) | 布尔值 | “True”表示它是事务中的最终记录，而“False”表示并非所有记录都已处理。 |
| 数据 | 結構 | 表记录的数据 |
| {列} |  | 当前记录中的列名和值。 |
| 之前数据 | 結構 | 表记录变更前的数据 |
| {列} |  | 变更前的列名和值。<br><br>适用于 UPDATE 操作。 |