首页 > 解决方案 > 是否可以使用 Kafka Connect 将 RDBMS 表镜像到 Kafka 流?

问题描述

我知道可以使用 Kafka Connect 将更新从数据库推送到 Kafka 流。我的问题是,我可以创建一个消费者来将同一流中的更改写回表中而不创建无限循环吗?

我假设如果我创建一个将更新写入数据库表的使用者,它将触发 Connect 将该更新推送到流等。有没有办法解决这个问题,以便我可以将数据库表镜像到流?

标签: apache-kafkaapache-kafka-connect

解决方案


您可以使用Kafka Connect的JDBC Sink 连接器从 Kafka 主题流式传输到数据库。

您需要在业务逻辑中编写代码,以避免无限复制循环进入连接器或消费者。例如:

  • JDBC 源连接器使用WHERE子句仅提取设置了标志的记录以指示它们是原始记录
  • 源连接器中的自定义单消息转换以删除设置了标志的记录以指示它们不是原始记录
  • 流应用程序(例如 KSQL / Kafka Streams)处理所有数据库更改的入站流以仅过滤掉那些设置了标志以指示它们是原始记录的
    • 效率低下,因为那时您仍在从数据库中流式传输所有内容

推荐阅读