数据库传输服务
订阅格式 | 说明 |
火山引擎 Proto | |
Canal Proto | 数据传输服务 DTS 可以解析数据库的增量日志,并将增量数据封装成 Canal Proto 格式同步到数据中间件,实现增量数据的订阅和消费。关于 Canal Proto 格式的详细示例,请参见 Canal Proto。 |
Canal JSON | Canal JSON 是 Canal 定义的一种解析数据库增量日志的数据存储格式。数据传输服务 DTS 可以将增量数据封装成 Canal JSON 格式同步至数据中间件,实现增量数据的订阅和消费。关于 Canal JSON 格式的字段信息和相应示例,请参见 Canal JSON。 |
Avro 格式 | |
Debezium JSON 格式 | Debezium 是一个开源的分布式平台,用于捕获数据库变化并将其以事件流的形式发送到 Kafka 等消息队列中。关于 Debezium JSON 格式的更多信息,请参见 Debezium JSON。 |
字段 | 类型 | 说明 | 示例 |
id | Integer | 操作的序列号。默认取值为 0。 | 0 |
instance | String | AIDAP PostgreSQL 的数据库分支 ID。 说明 只有在创建火山引擎 AIDAP 版 PostgreSQL 数据订阅任务时,Canal JSON 的数据格式包含该字段。 | br-tidy-kaka-976de*** |
database | String | 数据库的名称。 | dts_test |
table | String | 表名。 | test |
pkNames | Array of String | 组成主键的所有列名。 | [ "id" ] |
isDdl | Bool | 数据库传输服务 DTS 判断数据库执行的语句是否是 DDL 操作。取值为:
| true |
type | String | 数据库的操作类型,包括 INSERT、UPDATE、DELETE、CREATE、TRUNCATE、ERASE、QUERY等。 | CREATE |
es | Integer | Binlog 中的毫秒级时间戳,即数据原始变更的时间。 | 1682578031000 |
ts | Integer | 数据库传输服务 DTS 生成该条消息的毫秒级时间戳。 | 1682578031120 |
sql | String | SQL 语句。 说明 在执行 DML 操作时,该取值为空。 | CREATE TABLE test (id INT NOT NULL PRIMARY KEY, name CHAR(255), message LONGTEXT) |
sqlType | Map | 在执行 DML 操作时,记录每一列数据在 Java 应用程序接口中的类型。 | { "id":4, "message":2005, "name":1 } |
mysqlType | Map | 在执行 DML 操作时,记录每一列数据在 MySQL 中的类型。 | { "id":"int(11)", "message":"longtext", "name":"char(255)" } |
data | Array of Map | 在执行 DML 操作时,变更后的数据,包含每一个表结构字段的 Key-value 结构。 | [ { "id":"1", "message":"This is a longtext", "name":"Bob" } ] |
old | Array of Map | 在执行 DML 操作时,变更前的数据,包含变更前每一个表结构字段的 Key-value 结构。 说明 仅 UPDATE 操作时不为空。 | [ { "id":"1", "message":"This is a longtext", "name":"Bob" } ] |
pgType | Map | 在数据源的数据库类型为 PostgreSQL 且在执行 DML 操作时,PostgreSQL 数据库中每一列的数据类型。 说明 数据库传输服务 DTS 的新增字段。 | null |
子字段 | 说明 |
before | 表示前镜像,包含在更新或删除操作之前的行数据。如果是插入操作,该字段为 null。 |
after | 表示后镜像,包含在插入或更新操作之后的行数据。如果是删除操作,该字段为 null。 |
source | 表示数据源信息,为数据源相关的信息。 |
op | 表示 DML 类型。 |
ts_ms | 表示 DTS 处理事件发生的时间戳(以毫秒为单位),用于记录事件的实际发生时间。 |