本文为您介绍数据集成实时同步字段的格式及附加列。
数据集成实时同步MySQL或Oracle数据的记录格式如下。
_sequence_id_ | _operation_type_ | _execute_time_ | _before_image_ | _after_image_ | 字段1 | 字段2 | 字段3 |
增量事件的记录 ID,值唯一且递增。 | 操作类型(I/D/U) | 数据对应的时间戳 | 是否是变更前(Y/N) | 是否是变更后(Y/N) | 真实数据字段1 | 真实数据字段2 | 真实数据字段3 |
数据集成实时同步在同步MySQL、Oracle、Loghub和PolarDB类型的数据至DataHub或Kafka时,会在同步的目标端添加5个附加列,以进行元数据管理、排序去重等操作。
参数 | 类型 | 描述 |
_sequence_id_ | STRING | 自增ID,用于做全增量Merge。 |
_operation_type_ | STRING | 操作类型,取值分别如下:
|
_execute_time_ | LONG | 数据产生时间戳,即binlog时间戳。 |
_before_image_ | STRING | 是否更新前的记录,取值为Y或N。 |
_after_image_ | STRING | 是否更新后的记录,取值为Y或N。 |
对于INSERT、UPDATE和DELETE等不同的操作类型,增量数据记录中的_before_image_和_after_image_定义如下:
当操作类型为INSERT时,生成的记录为更新后的记录,_before_image_取值为N,_after_image_取值为Y。
当操作类型为UPDATE时,数据集成会将其拆分为两条记录。一条是更新前记录,一条是更新后记录。这两条增量数据的_sequence_id_、_operation_type_及_execute_time_对应的值一致。
第一条增量数据是更新前的值,所以_before_image_取值为Y,_after_image_取值为N。第二条增量数据是更新后的值,所以_before_image_取值为N,_after_image_取值为Y。
当操作类型为DELETE时,增量数据中为已经删除的数据,所以_before_image_取值为Y,_after_image_取值为N。