本文为您介绍数据集成实时同步字段的格式及附加列。
数据集成实时同步MySQL数据的记录格式如下。
_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、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。