apache-kafka - 是否可以使用 Kafka Connect 将 RDBMS 表镜像到 Kafka 流?
问题描述
我知道可以使用 Kafka Connect 将更新从数据库推送到 Kafka 流。我的问题是,我可以创建一个消费者来将同一流中的更改写回表中而不创建无限循环吗?
我假设如果我创建一个将更新写入数据库表的使用者,它将触发 Connect 将该更新推送到流等。有没有办法解决这个问题,以便我可以将数据库表镜像到流?
解决方案
您可以使用Kafka Connect的JDBC Sink 连接器从 Kafka 主题流式传输到数据库。
您需要在业务逻辑中编写代码,以避免无限复制循环进入连接器或消费者。例如:
- JDBC 源连接器使用
WHERE
子句仅提取设置了标志的记录以指示它们是原始记录 - 源连接器中的自定义单消息转换以删除设置了标志的记录以指示它们不是原始记录
- 流应用程序(例如 KSQL / Kafka Streams)处理所有数据库更改的入站流以仅过滤掉那些设置了标志以指示它们是原始记录的
- 效率低下,因为那时您仍在从数据库中流式传输所有内容
推荐阅读
- mongodb - 检查数组类型的字段是否包含数组
- r - 如何使用包含两种语言的单独数据框将语言 1 中的单个单词替换为语言 2 中的单词?
- git - 在docker克隆到共享的VirtualBox文件夹中运行git时无法创建临时文件/权限被拒绝
- python - Python如何从MySql打开一个图片URL,其中值有目录
- c# - 转换表达式
> 到表达式 > - php - `php -S localhost:8080` 命令是否有`在浏览器中打开`选项?
- google-apps-script - 将模板附加到 Google Docs 页眉/页脚在作为附加组件进行测试时不起作用
- python - Python 参数返回 "
" 打印时 - sql-server - 修剪 t-SQL 中特定单词之前的所有内容
- angular - 在 Angular 8 中更改组件时复选框不保持选中状态