表达式标头
上次更新日期:2026/10/28在列表达式中使用标头来保留变更元数据,例如操作名称或源数据流位置。
Q_H_ 标头在 SaaS 管理的登陆、湖登陆和复制任务中可用。当 构建表达式 时,从编辑器的 Headers 列表中插入页眉。下表说明了在满负载和变更处理期间源端点的适用性和值。
所有源端点的标头
| 标头和数据类型 | 变更处理期间的值 | 满负载期间的值 |
|---|---|---|
Q_H_CHANGE_SEQ
|
在任务的各个变更表中单调递增的变更序列。将时间戳与带零前缀的变更计数器相结合,以对任务内的变更进行排序。 | 留空 |
Q_H_STREAM_POSITION
|
源变更数据流中的位置,通常为 SCN 或 LSN。标识源数据流位置,而非时间戳或跨任务可比的序列。 | 空字符串。 |
Q_H_TIMESTAMP
|
变更操作的时间戳。这是操作时间戳,而不是事务提交时间戳。 | 当前时间戳。 |
Q_H_TRANSACTION_ID
|
包含该更改的事务,表示为十六进制 128 位事务 ID。该 ID 不保证唯一。 | 留空 |
Q_H_COMMIT_TIMESTAMP
|
源事务提交时间戳,由处理运行时表示。不同于 Q_H_DB_COMMIT_TIMESTAMP 中的源数据库服务器时间。 |
当前时间戳。 |
Q_H_DB_COMMIT_TIMESTAMP
|
基于源数据库服务器时间的源事务提交时间戳。 | Null |
Q_H_OPERATION
|
INSERT、UPDATE 或 DELETE。 |
INSERT. |
变更序列将格式为 YYYYMMDDHHmmSShh 的时间戳与 19 位以零为前缀的变更计数器结合在一起。时间戳字段包括年、月、日、小时、分钟、秒以及百分之一秒。时间戳部分可以重复,而计数器递增。声明的 STRING(50) 容量不是序列格式的长度。
请勿依赖 Q_H_TRANSACTION_ID 作为唯一键。使用 Q_H_CHANGE_SEQ 进行任务级变更排序,而不是仅比较时间戳。
特定于源的标头
以下源限制适用于命名端点。这并不意味着支持其他 SQL Server 变体或其他文件源。
| 标头和数据类型 | 源端点 | 变更处理期间的值 | 满负载期间的值 |
|---|---|---|---|
Q_H_USER
|
Microsoft SQL Server;Microsoft Azure SQL Managed Instance;Amazon RDS for SQL Server;IBM Informix;IBM DB2 for z/OS;IBM DB2 for LUW;Oracle;文件;SAP Sybase ASE。 | 进行源更改的用户。 | 留空 |
Q_H_JOB_NAME
|
仅限 IBM DB2 for iSeries。 | 做出源更改的作业。 | 留空 |
Q_H_PROGRAM_NAME
|
仅限 IBM DB2 for iSeries。 | 进行源更改的程序。 | 留空 |
Q_H_XACT_ID
|
Microsoft SQL Server;Microsoft Azure SQL 托管的实例;Amazon RDS for SQL Server。 | 事务时间标识符:服务器上一个分布式事务的第一条记录的 LSN。事务中的所有记录共享此 ID。这与 Q_H_TRANSACTION_ID 不同,后者是从物理事务日志中获取的。 |
留空 |
使用操作元数据
添加一列并插入 Q_H_OPERATION 以记录源操作。在满负载期间,其值为 INSERT。在变更处理期间,更新的值为 UPDATE。
操作标头描述了该操作;它不会更改目标删除处理。若要返回源操作的自定义标志,请参阅 表达式函数 中的 $OPERATION_INDICATOR。
流式登陆标头列
流式转换任务使用源列,例如 hdr__kafka_partition、hdr__kinesis_offset 或 hdr__file_name。这些不是 Q_H_ 标头的别名。从 列 中选择流式登陆标头。有关特定于源的列表,请参阅 登陆表。