tencent cloud

数据传输服务

动态与公告
产品动态
公告
产品简介
产品概述
数据迁移功能描述
数据同步功能描述
数据订阅(Kafka 版)功能描述
产品优势
支持的地域
规格说明
购买指南
计费概述
变更配置说明
欠费说明
退费说明
快速入门
数据迁移操作指导
数据同步操作指导
数据订阅操作指导(Kafka 版)
准备工作
业务评估
网络准备
添加 DTS IP 地址至对接数据库白名单
DTS 服务权限准备
数据库及权限准备
配置自建 MySQL 系的 Binlog
数据迁移
数据迁移支持的数据库
云数据库跨账号实例间迁移
迁移至 MySQL 系列
迁移至 PostgreSQL
迁移至 MongoDB
迁移至 SQL Server
迁移至腾讯云分布式缓存数据库
任务管理
数据同步
数据同步支持的数据库
云数据库跨账号实例间同步
同步至 MySQL 系列
同步至 PostgreSQL
同步至 MongoDB
同步至 Kafka
任务管理
数据订阅(Kafka 版)
数据订阅支持的数据库
MySQL 系列数据订阅
TDSQL PostgreSQL 数据订阅
MongoDB 数据订阅
任务管理
消费管理
前置校验不通过处理方法
检查项汇总
割接说明
监控与告警
支持的监控指标
告警通知功能
通过控制台配置指标告警和事件告警
通过 API 配置指标告警和事件告警
运维管理
配置系统维护时间
任务状态扭转说明
实践教程
本地数据库同步上云
构建双向同步数据结构
构建多对一同步数据结构
构建多活数据中心
数据同步冲突策略如何选择
使用 CLB 代理将其他账号下的数据库迁移至本账号下
通过云联网方式迁移自建数据库至腾讯云数据库
DTS 性能调优最佳实践
常见问题
数据迁移
数据同步
数据订阅 Kafka 版常见问题
数据订阅正则表达式
错误处理
常见错误处理
连通性测试不通过
校验项结果不通过或者出现警告
云联网接入配置源数据时无法选择子网
迁移慢或者进度卡住
数据同步有延时
数据订阅延迟过高
数据消费异常
API 文档
History
Introduction
API Category
Making API Requests
(NewDTS) Data Migration APIs
Data Sync APIs
Data Consistency Check APIs
(NewDTS) Data Subscription APIs
Data Types
Error Codes
DTS API 2018-03-30
相关协议
服务等级协议

JSON Demo 说明

PDF
聚焦模式
字号
最后更新时间: 2024-07-08 18:59:27
Demo 中我们采用 JSON 进行序列化,各语言 Demo 中均附带有 Record 定义文件。 Java Demo 中的定义文件路径为: consumerDemo-json-java\\src\\main\\java\\json\\FlatRecord.java

Record 中字段类型

Record 中的字段名称
说明
id
全局递增 ID。
version
协议版本,当前版本为1。
messageType
消息类型,枚举值:"INSERT","UPDATE","DELETE","DDL","BEGIN","COMMIT","HEARTBEAT","CHECKPOINT"。
fileName
当前 record 所在的 binlog 文件名。
position
当前 record 的在 binlog 中结束的偏移量,格式为 End_log_pos@binlog 文件编号。例如,当前 record 位于文件 mysql-bin.000004 中,结束偏移量为2196,则其值为"2196@4"。
safePosition
当前事务在 binlog 中开始的偏移量,格式同上。
timestamp
写入 binlog 的时间,unix 时间戳,秒级。
gtid
当前的 gtid,如:c7c98333-6006-11ed-bfc9-b8cef6e1a231:9。
transactionId
事务 ID,只有 commit 事件才会生成事务 ID。
serverId
源库 serverId,查看源库 server_id 参考 SHOW VARIABLES LIKE 'server_id'。
threadId
提交当前事务的会话 ID,参考 SHOW processlist;。
sourceType
源库的数据库类型,当前版本只有 MySQL。
sourceVersion
源库版本,查看源库版本参考 select version();
schemaName
库名。
tableName
表名。
objectName
格式为:库名.表名。
columns
表中各列的定义。
oldColumns
DML 执行前该行的数据,如果是 insert 消息,该数组为 null。
newColumns
DML 执行后该行的数据,如果是 delete 消息,该数组为 null。
sql
DDL 的 SQL 语句。
executionTime
DDL 执行时长,单位为秒。
heartbeatTimestamp
心跳消息的时间戳,秒级。只有 heartbeat 消息才有该字段。
syncedGtid
DTS 已解析 GTID 集合,格式形如:c7c98333-6006-11ed-bfc9-b8cef6e1a231:1-13。
fakeGtid
是否为构造的假 GTID,如未开启 gtid_mode,则 DTS 会构造一个 GTID。
pkNames
如果源库的表设有主键,则 DML 消息中会携带该参数,否则不会携带。
readerTimestamp
DTS 处理这条数据的时间,unix时间戳,单位为毫秒数。
tags
QueryEvent 中的 status_vars,详细参考 QueryEvent
total
如果消息分片,记录分片总数。当前版本 (version=1) 无意义,预留扩展。
index
如果消息分片,记录当前分片的索引。当前版本 (version=1) 无意义,预留扩展。

Record 中 MySQL 列属性

name:列名。
dataTypeNumber:是 binlog 中记录的数据类型。取值详见 MySQL
isKey:是否主键。
originalType:DDL 中定义的类型。

MySQL 数据类型转换逻辑

在 JSON 协议中,将 MySQL 类型全部转换成了字符串。
对于 varchar 等字符串类型,全部转成了 UTF8 编码。
对于数值类型,全部转成了与值相同的字符串,如 "3.0"。
对于时间类型,格式为:yyyy-dd-mm hh:MM:ss.milli。
对于时间戳类型,输出为毫秒数。
对于 binary、blob 等二进制类型,输出为与16进制值相同的字符串,如 "0xfff"。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈