功能描述
DTS 写入到 Kafka 的同步数据支持兼容开源工具 Canal 格式,采用 ProtoBuf 或者 JSON 的序列化协议,您可以在配置 DTS 同步任务的过程中选择数据格式 Canal Protobuf 或者 Canal JSON,然后使用消费 Demo 进行业务适配,即可得到消费数据。
方案对比
|
数据类型 | 全量+增量 | 仅增量 |
数据格式 | Canal ProtoBuf、Canal JSON | ProtoBuf、JSON |
成本 | 购买云资源,初始配置完成后,后续基本不需要维护 | 需要客户自己部署和维护 |
Canal JSON 格式兼容性说明
用户可使用之前 Canal 方案中的消费程序直接消费。对 DTS 方案中 Canal JSON 格式进行数据消费时的字段名称,与 Canal 方案中 JSON 格式的字段名称保持一致,仅需要注意以下差异。
1. 源库中二进制相关类型的字段(包括 binary、varbinary、blob、tinyblob、mediumblob、longblob、geometry)同步到目标端后会转换为 HexString,请用户在消费数据时注意。
2. 源库中 Timestamp 类型的字段同步到目标端会转换为0时区(如"2021-05-17 07:22:42 +00:00"),用户在解析和转换的时候需要考虑时区信息。
3. Canal 方案的 JSON 格式中定义了 sqlType 字段,该字段在 JDBC(Java 数据库连接)中使用,表示 SQL 数据类型。因为 Canal 底层采用 Java 语言,而 DTS 底层采用 Golang 语言实现,所以 DTS 提供的 Canal JSON 格式中这个字段留空处理。
Canal ProtoBuf 格式兼容性说明
对 Canal ProtoBuf 格式的数据消费,需要使用 DTS 提供的协议文件,因为 DTS 协议文件中增加了如全量同步等功能逻辑,该协议文件已包含在消费 Demo 中。所以用户需要使用 DTS 提供的消费 Demo,并在这个 Demo 基础上适配自身业务逻辑,才能得到消费数据。 消费 DTS 提供的 Canal ProtoBuf 格式数据时的字段名称,与 Canal 方案提供的 ProtoBuf 格式一致,仅需要注意以下差异。
1. 源库中二进制相关类型的字段(包括 binary、varbinary、blob、tinyblob、mediumblob、longblob、geometry)同步到目标端后会转换为 HexString,请用户在消费数据时注意。
2. 源库中 Timestamp 类型的字段同步到目标端会转换为0时区(如"2021-05-17 07:22:42 +00:00"),用户在解析和转换的时候需要考虑时区信息。
本页内容是否解决了您的问题?