本文為您介紹數據集成實時同步字段的格式及附加列。
數據集成實時同步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。