Debezium是什么

Debezium是什么,第1张

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是基于日志进行捕获变更的。

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

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

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

可以通过三种方式使用Debezium

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

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

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

    路由数据变更到一个TOPIC,这个TOPIC不对应于数据库中的表名将多个表中的数据变更存储到一个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 参考链接:

https://debezium.io/documentation/reference/1.8/architecture.htmlhttps://debezium.io/documentation/reference/1.8/features.htmlhttps://debezium.io/documentation/reference/1.8/connectors/index.html

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5705307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存