有奖征文:轻量对象存储LighthouseCOS用户实践> HOT
数据订阅功能帮助客户实时获取云数据库 MariaDB 以及分布式数据库 TDSQL 中的增量数据,客户能够根据自身业务的需求,自由地对实时增量数据进行处理。

功能列表

支持公有云云数据库 MariaDB 和分布式数据库 TDSQL 实例的数据订阅。
支持专有云云数据库 MariaDB 和分布式数据库 TDSQL 实例的数据订阅。

数据源类型

TencentDB for MariaDB、分布式数据库 TDSQL

消息格式

数据订阅功能对实例的 Binlog(row 格式)进行解析,并将 Binlog 事件封装成 json 格式的消息上传至 Kafka 集群。消息类型包括 DML 事件、GTID 事件、XID 事件、QUERY 事件。其中 DML 事件包括 insert、update、delete 事件,表征对数据行的更改;GTID 事件表征事务的开始;XID 事件表征事务的提交;QUERY 事件表征 DDL 语句。
DML 消息格式如下:
{
"logtype":"mysqlbinlog", //日志类型,取值唯一,为 mysqlbinlog
"eventtype":23, //事件类型码,对应 mysql 中 binlog 事件类型码

"eventtypestr":"insert", /*事件类型字符串,包括 insert、update、delete、gtid、xid、query 事件。
其中insert、update、delete 事件对应 DML 语句;tid 事件标识事务开始;
xid 事件标识事务结束;query 事件标识 DDL 语句 */
"db":"testdb", //库名
"table":"testtable", //表名
"localip":"000.00.000.000", //实例所在机器 IP
"localport":0000, //实例端口
"begintime":1511350073, //事务开始时间,当前事件所在的事务的开始时间
"gtid":"0-2670193178-726233561", //GTID,当前事件所在事务的 gtid
"event_index":"4", //表征该事件在该事务中的序号
"where":[ //where 字段,标识该行变更前的各个字段的值

],
"field":[ //field 字段,标识该行变更后的各个字段的值
"1",
"'name1'"
]
}
GTID 消息格式如下:
{ //GTID 事件表征一个事务的开始
"logtype":"mysqlbinlog",
"eventtype":33,
"eventtypestr":"gtid",
"db":"sysdb",
"table":"statustableforhb",
"localip":"10.231.23.241",
"localport":8810,
"begintime":1511419963,
"gtid":"35be190b-d019-11e7-ab7a-a0423f32c225:469",
"event_index":"1"
}
XID 消息格式如下:
{ //XID 事件表征事务已经提交
"logtype":"mysqlbinlog",
"eventtype":16,
"eventtypestr":"xid",
"db":"testsummer",
"table":"test_table1",
"localip":"10.231.23.241",
"localport":8810,
"begintime":1511419963,
"gtid":"35be190b-d019-11e7-ab7a-a0423f32c225:469",
"event_index":"5",
"xid":"11866"
}
QUERY 消息格式如下:
{
"logtype":"mysqlbinlog",
"eventtype":2,
"eventtypestr":"query", //QUERY 事件对应 DDL 语句
"db":"testsummer",
"table":"statustableforhb",
"localip":"10.231.23.241",
"localport":8810,
"begintime":1511419941,
"gtid":"35be190b-d019-11e7-ab7a-a0423f32c225:452",
"event_index":"2",
"sql":"create table test_table1 (id int primary key,name varchar(20))"
}

订阅方式

客户通过获取存储在 Kafka 集群的消息事件来实时获取数据。通过腾讯云提供的数据订阅 API 来实时获取消息并进行处理。