Debezium入门

210 阅读2分钟

简介

Debezium是一个用来捕获数据库数据变更的分布式服务,你的应用可以看到这些数据变更,以及处理他们。Debezium以更改事件流的形式记录每张表的行级变更。 然后应用可以以事件流产生的顺序读取事件流变更记录。 目前支持的Source Connectors是Mysql,MongoDB,PostgresSQL、Oracle、SQL Server、Db2、Cassamdra、Vitesss。 目前Cassandra、Vitess处于孵化阶段。 说明:孵化连接器发版用于预览目的,对于孵化连接器做出修改不能保证向后兼容。

Debezium特性

Debezium是为Kafka Connect而建的一系列Source Connectors,每个Source Connector会根据对应数据库特性来捕获数据变更记录。 不像其他方法,例如,轮询或者双写等。Debezium是基于日志进行捕获变更的。

  • 确保所有的数据变更捕获
  • 用极低的延迟生成数据变更时间,同时避免频繁轮询所产生的CPU压力,例如,Mysql和PostgresSQL只会产生毫秒级别的延迟。不
  • 需要对数据模型做修改,例如,添加“最后修改时间”字段
  • 可以捕获删除数据
  • 可以捕获老的记录信息以及额外的元数据信息,例如,事务ID等,元数据信息的获取主要依赖数据库的特性以及配置。

Debezium捕获数据变更拥有如下的能力:

  • Snapshots:当连接器开启时,可以获取当前数据库的快照。例如,当数据库已经运行一段时间,已经丢弃了部分事务日志。
  • Filters:你可以通过include/exclude过滤器配置要捕获的schemas、tables、columns的集合
  • Masking: 可以指定列的值进行蒙面,例如,当包含敏感数据。
  • Monitoring: 可以通过JMX来监控大部分连接器
  • message transformations:消息路由、过滤、数据扁平化等转换。