Debezium是什么

Debezium是什么


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

Debezium特性:


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

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

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

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

Debezium架构:


可以通过三种方式使用Debezium

部署Debezium连接器到Kafka Connect,这是普通使用的方法,架构图如下:

在这里插入图片描述

如上图所示,
Mysql和PostgresSQL连接器部署后,这两个连接器可以捕获这两种类型数据库的数据变更,每个连接器会建立一个连接数据库的连接。
Mysql连接器使用一个客户端包访问binlog
PostgreSQL连接器从一个逻辑复制流中读取

通常来说,数据库中每张表的数据变更会存储到对应这个表名的TOPIC中,但是可以通过配置TOPIC路由转换改变默认的行为,例如,

  1. 路由数据变更到一个TOPIC,这个TOPIC不对应于数据库中的表名
  2. 将多个表中的数据变更存储到一个TOPIC中

当数据存储到TOPIC中,可以使用Kakfa Connect中的其他Sink Connector将TOPIC中的数据存储到其他系统中,例如,Elasticsearch等,
依赖于选择的SInk Connector,可以配置新纪录状态提取,这个Kafka Connect SMT会传递Debezium变更事件中的after结构到SInk Connector中,这样就会代替默认传递的冗余变更事件。

使用Debezium Server部署Debezium

在这里插入图片描述

Debezium Server是一个可配置的应用,这个应用可以传递数据库中的变更事件到各种消息基础设施中(例如,redis,pulsar,kinesis,google pub/sub)。
Debezium Server可以配置使用Debezium source Connectors之一,来捕获对应数据库中的记录变更,然后变更记录可以序列化到不同的格式(例如,JSON、Apache Avro等),然后发送到
各种不同的消息基础设置之一中(例如,Redis、Google Pub/Sub、Apache Pulsar)

使用内嵌的Debezium引擎

另外一种使用Debezium Connectors的方式是内嵌引擎,这种方式并不会通过Kafka Connect运行,而是作为一个包内嵌到你的应用中,而不需要部署完整的Kafka和Kafka Connect服务。

其他

说明:

  • Kafka Connect是一个运行框架,伴随着Kafka Broker运行的一个单独服务,主要有以下两个作用:
    • 1.1 将Source Connector(例如,Debezium中的Source Connector)的数据传递到Kafka Topic中。
    • 1.2 将Kafka Topic中的数据传递到Sink Connector

参考链接:

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
flink-connector-debezium是一个在Apache Flink中使用的Debezium连接器。Debezium是一个开源的分布式事件流平台,专门用于捕获和推送针对数据库的更改事件。flink-connector-debezium连接器允许Flink应用程序使用Debezium来监控和获取数据库中的更改事件。 使用flink-connector-debezium,可以将Debezium与Flink无缝集成,实现实时和准确地捕获数据库的更改事件。当数据库中的数据发生变化时,Debezium可以将这些更改事件以流的形式推送到Flink应用程序。应用程序可以利用Flink提供的强大的流式处理功能,对这些更改事件进行实时的转换、计算和分析。这样可以快速获取数据库中的最新更改,使Flink应用程序能够及时响应并进行实时处理。 通过使用flink-connector-debezium,可以轻松地将数据库的更改事件流集成到Flink应用程序中,帮助实现实时的数据处理和分析任务。它提供了灵活且可靠的方法,用于捕获和传输数据库的变更事件,使得应用程序能够保持与数据库之间的实时同步。这对于需要对数据库进行实时处理和分析的企业应用程序非常有用,例如实时报表生成、实时监控、实时推荐系统等。 总而言之,flink-connector-debezium允许Flink应用程序利用Debezium捕获和处理数据库中的更改事件,从而实现实时的数据处理和分析任务。这是一个强大且灵活的工具,使得企业能够更好地利用实时的数据库变更事件来驱动他们的实时应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值