如何使用 Debezium (cdc) 将从 mysql 获取的更改接收到另一个 mysql db

Posted

技术标签:

【中文标题】如何使用 Debezium (cdc) 将从 mysql 获取的更改接收到另一个 mysql db【英文标题】:How to sink changes taken from mysql to another mysql db using Debezium (cdc) 【发布时间】:2020-10-10 04:09:33 【问题描述】:

我能够从mysql 捕获数据事件。我已经按照debeziumtutorial 的所有步骤进行操作,但是在教程中他们没有指定如何将这些更改发送到另一个 mysql 数据库。 请帮助我,我被它困住了,我找不到合适的教程。

docker run -it --rm --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=debezium -e MYSQL_USER=mysqluser -e MYSQL_PASSWORD=mysqlpw debezium/example-mysql:1.1 

我正在从端口 3307 上的这个 mysql 数据库中捕获更改

docker run -it --rm --name mysqltes -p 3308:3306 -e MYSQL_ROOT_PASSWORD=debezium -e MYSQL_USER=mysqluser -e MYSQL_PASSWORD=mysqlpw debezium/example-mysql:1.1

现在我想将这些更改发送到端口 3308 上的这个 mysql 数据库

注意:我在 Windows 10 主页中通过 docker 工具箱使用访问 docker

【问题讨论】:

【参考方案1】:

Debezium 是一个源,而不是一个接收器

您需要使用 confluent jdbc sink connector 将事件发送到数据库

【讨论】:

能否提供mysql的json-sink文件 我相信您能够在线搜索使用 JDBC Sink 的众多 Confluent 教程之一 其实我搜了一下,找到了一个,但是我得到的 jdbc:mysql connection url 的 URL 无效 嗯,听起来是个发布新问题的好机会

以上是关于如何使用 Debezium (cdc) 将从 mysql 获取的更改接收到另一个 mysql db的主要内容,如果未能解决你的问题,请参考以下文章

如何在从 debezium kafka connect 收到的 CDC 事件中获取表名和数据库名

如何通过 debezium CDC 机制反序列化从 kafka 代理收到的 BigDecimal 值?

CDC 与 docker 中的 debezium

多个表之间 CDC 事件的 Debezium 排序

Debezium 没有为 mysql 提供嵌入式版本的 CDC

成功创建 Always On SQL Server 快照后,Debezium 未跟踪 CDC