tencent cloud

文档反馈

JSON Demo 说明

最后更新时间:2023-08-25 16:02:31
    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"。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持