本文介绍通过Lindorm Streams实现数据订阅功能,数据订阅功能将云数据库HBase增强版(云原生多模数据库Lindorm)表格的增量数据推送至下游消息队列Kafka,您可以根据自身业务需求自由消费增量数据,搭建或实现多种业务场景。
推送流程
数据订阅功能将云数据库HBase增强版(云原生多模数据库Lindorm)表格的增量数据消息主动推送至下游Kafka,推送流程如下。
功能特点
实时数据订阅功能的信息投递方式有以下特点:
支持主键级别保序,对于同一个主键的更新操作,会按照其更新的顺序存储和消费。
支持数据处理语义为至少一次(At-least-once)语义,即同一条数据可能因为内部重试而被重复消费。如果您需要设置为精确一次(Exactly Once)语义,请提交工单联系我们。
消息格式
LindormStreams消息支持获取更新后整行的数据以及更新前的值,详细消息内容:
{
"op" : <opType> // 操作类型,可选Put、DeleteFamily
"table" : <tableName> // 表名
"ts" : <defaultVersion> // 默认版本,列数据中如果没有ts值时取该值作为版本
"keyOnly":<keyOnly> // 是否只包含主键数据
"data" : [
{
"type" : <type> // 列数据类型
"name" : <name> // 列名
"ts" : <version> // 数据版本,如果没有该值,取默认版本(ts)的值作为版本
"value" : <value> // 值,如果没有该值,则表中值为null
},
{
"type" : <type> // 列数据类型
"name" : <name> // 列名
"ts" : <version> // 数据版本,如果没有该值,取默认版本(ts)的值作为版本
"value" : <value> // 值,如果没有该值,则表中值为null
}
]
}
消息内容配置:
参数名 | 类型 | 是否必选 | 示例值 | 描述 |
key_only | boolean | 否 | false | 是否只同步主键, 默认为false。 |
unique_key | boolean | 否 | false | 是否同一批次,相同主键只发送一次,默认为false。 |