了解 Debezium
Understanding Debezium
提供了一个用例:
流处理架构;
事件进入 Kafka,然后由具有 MongoDB 接收器的作业处理。
数据库名称:myWebsite
Collection: users
并且作业在 users
collection 中接收 user
记录。
- 所以 Debezium 将监视
users
collection 的变化,并且在每次变化时,都会将关于主题 dbserver1.myWebsite.users
的事件生成到 Kafka 中?假设 dbserver1
是连接器的名称。
- 如果是这样,那么我可以让 Kafka 消费者从
dbserver1.myWebsite.users
主题消费并对这些事件做出反应吗?
- 据我了解,Debezium 产生的事件也包含数据库记录的值?如果它的更改包含 old/new 值?如果创建了数据库记录,旧的是否为空?
到目前为止,我想对我的理解进行某种确认。
谢谢!
答案很简单
- 是
- 可以,可以是任意的kafka consumer,也可以是Kafka stream,也可以用KSQL查询
- 是的,Debezium 记录由(不仅)旧值 (
before
) 和新值 (after
) 组成。如果 INSERT
只有 after
在 UPDATE
的情况下 before
和 after
都存在(Postgres 需要一个特殊的设置)并且如果DELETE
只存在 before
。
提供了一个用例:
流处理架构; 事件进入 Kafka,然后由具有 MongoDB 接收器的作业处理。
数据库名称:myWebsite
Collection: users
并且作业在 users
collection 中接收 user
记录。
- 所以 Debezium 将监视
users
collection 的变化,并且在每次变化时,都会将关于主题dbserver1.myWebsite.users
的事件生成到 Kafka 中?假设dbserver1
是连接器的名称。 - 如果是这样,那么我可以让 Kafka 消费者从
dbserver1.myWebsite.users
主题消费并对这些事件做出反应吗? - 据我了解,Debezium 产生的事件也包含数据库记录的值?如果它的更改包含 old/new 值?如果创建了数据库记录,旧的是否为空?
到目前为止,我想对我的理解进行某种确认。 谢谢!
答案很简单
- 是
- 可以,可以是任意的kafka consumer,也可以是Kafka stream,也可以用KSQL查询
- 是的,Debezium 记录由(不仅)旧值 (
before
) 和新值 (after
) 组成。如果INSERT
只有after
在UPDATE
的情况下before
和after
都存在(Postgres 需要一个特殊的设置)并且如果DELETE
只存在before
。