Teradata 变更处理
上次更新日期:2026/10/9Teradata 数据源不会生成可直接读取用于变更处理的事务日志。为了捕获更改,Qlik Talend Cloud Data Integration 会扫描源表中的上下文列,以识别 INSERT、UPDATE 和 DELETE 操作。
先决条件
在配置变更处理之前,请确保源表中至少存在一个特殊上下文列。上下文列使 Qlik Talend Cloud Data Integration 能够确定数据是否已更改。
- 添加专门用于变更处理的上下文列,或使用包含合适上下文数据的现有列。
- 您可以使用多个上下文列,但所有源表中的列名必须相同。
- 上下文列中的每个值都必须唯一。
- 对于非日期时间上下文列,例如计数器、字符串以及非基于纪元时间的数值,请使用单例实体来生成这些值。从多个并发源生成值可能会导致事件丢失。
示例
在以下示例中,cf 上下文列已添加到表中。该列包含时间戳,Qlik Talend Cloud Data Integration 使用这些时间戳,通过将当前时间戳与其储存库中存储的时间戳进行比较,来确定是否发生了更改。
默认情况下,所有更改都被视为 INSERT 操作。如果源表也接收 UPDATE 或 DELETE 操作,请定义更新和删除表达式以标识操作类型。
配置变更处理设置
- 选择源连接并打开CDC 属性部分。
- 在上下文列中,以区分大小写、逗号分隔的列表形式输入上下文列的名称。例如,
context1,context2。 - 为上下文列的排序顺序选择升序或降序。所选顺序必须与源表中值的实际顺序相匹配。否则,会发生错误。
- 设置每隔(秒)检查一次更改以指定检查更改的频率。默认值为 10 秒。
- 输入更新表达式以识别 UPDATE 操作。
- 输入删除表达式以识别 DELETE 操作。
如果您未定义更新或删除表达式,或者表达式不匹配,则在升序排序时上下文高于前一个上下文值、或在降序排序时上下文低于前一个上下文值的行将被视为 INSERT 操作。
表达式
使用源数据库的原生语法编写表达式。以下示例使用的 oper 列包含用于更新的 U 和用于删除的 D:
- 更新表达式:
case when oper='U' then 1 else 0 end - 删除表达式:
case when oper='D' then 1 else 0 end
若要处理 DELETE 操作,请使用软删除。软删除是将该行标记为已删除,而不是将其从表中移除。
有关其他 Teradata 变更处理限制,请参阅 限制和考虑事项。
其他设置与摘要
在CDC 属性部分,您还可以配置内部参数、添加更多选项,并查看变更处理设置的摘要。
内部参数
内部参数未在标准用户界面中公开。仅在 x 指示时添加或更改它们。
- 打开内部参数设置。
- 输入参数名称并将其添加到参数列表中。
- 按照 x 的指示更改参数值。
更多选项
更多选项不会在标准用户界面中公开,且仅适用于特定版本或环境。除非 x 或产品文档指示您这样做,否则请勿设置这些选项。
覆盖连接字符串参数
您可以追加未在用户界面中公开的连接字符串参数。这些参数通常不是必需的。在添加它们之前,请咨询 x。
设置摘要
当您需要审查或向 x 提供配置详细信息时,查看变更处理设置摘要。