更改表格
您可以使用目标端点的工具,以使用更改表中的元数据获取信息。此数据由添加到更改表模式的表头列定义。下表介绍了这些表头。
对于复制任务中的每个目标表, 都会在具有目标表的数据库中维护一个具有相应名称的更改表。有关更多信息,请参阅使用更改表。更改表包含原始表列和标题列。表头列包含前缀,这样名称就不会与源表列名冲突。默认前缀为 header__
。有关如何更改此前缀的信息,请参阅“任务设置”中“元数据”下的更改表列表。下表列出了默认的更改表表头列。
列名称 | 类型 | 说明 |
---|---|---|
varchar (35) |
单调递增的变更序列器,对于任务的所有变更表都是通用的。变更序列的格式如下: YYYYMMDDHHmmSShhxxxxxxxxxxxxxxxxxxx 其中:
时间部分通常是指包含变更记录的事务的提交时间。Qlik Talend Data Integration 包含保持序列号单调性的逻辑,因此修改或调整端点时间可能会导致多个变化,看起来它们在同一时间戳内,但变化数量会增加。 xxx...xxx 通常是来自数据记录的内部更改编号,除了对于 BEFORE-IMAGE 记录,它与匹配的 UPDATE 记录的更改编号相同(例如,如果 BEFORE-MAGE 的更改编号是 1000,UPDATE 的更改编号为 1001,则两者都有 1001)。这允许在表和它本身之间进行简单的左外部连接,在左边我们扫描直到时间点,但筛选掉 |
|
|
varchar (1) |
操作类型。这可能是以下情况之一:
|
|
varbinary (128) |
更改掩码指示更改表中的哪些数据列与源表中已更改的列相关联。 基于更改表中的列序号更改掩码中的位位置。这意味着,如果有 5 个表头列,它们占据位 0 到 4,并且第一个数据列是改变掩码中的位 5。 更改掩码是一个二进制列(字节数组),以小尾数法次序表示更改掩码: Byte 0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Byte 1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 在本例中, 以下描述了位语义:
为了空间和处理效率,可以对存储在更改掩码中的实际字节数进行零修剪。这意味着不需要存储尾零。处理逻辑应该考虑到这一点。 |
|
varchar (128) |
源 CDC 流位置。 |
|
varchar (12) |
与更改记录关联的操作。其可为以下项之一:
|
|
varchar (32) |
更改记录所属事务的 ID。 该值是 128 位事务 ID 的十六进制字符串。 |
|
时间戳 |
原始更改 UTC 时间戳(该值可能是近似值)。 信息注释 对于 PostgreSQL 源,时间戳只有在提交之后才能确定。因此,在将更改提交到源表之前,将显示默认日期(例如 1970-01-01)。
|
[header__] |
字符串 |
启用更改数据分区时在目标上创建的分区的名称。分区名称由分区开始时间和结束时间组成。 示例: 20170313T123000_20170313T170000 |