在 Debezium 中加入:MySQL 到 Elasticsearch
Posted
技术标签:
【中文标题】在 Debezium 中加入:MySQL 到 Elasticsearch【英文标题】:JOINS in Debezium : MySQL to Elasticsearch 【发布时间】:2021-05-12 12:53:41 【问题描述】:我一直在尝试设置 mysql 到 Elasticsearch 数据管道以进行实时数据复制。 MySQL 数据库有大约 10 个高度规范化的不同表。但是在 Elasticsearch 中,我需要将这些表中的所有数据都放在一个索引中,这类似于大型复合 JOIN 查询的输出。试了好久,求大神帮忙???
(更改数据库架构是不可行的,因为有很多其他依赖服务。)
例如:
来自 MySQL 的输入:
Table: main_profile
+--------+------+
| name | city |
+--------+------+
| Edward | 1 |
| Jake | 9 |
+--------+------+
Table: city_master
+---------+----------+
| city_id | name |
+---------+----------+
| 1 | New York |
| 9 | Tampa |
+---------+----------+
存储在 Elasticsearch 中的文档:
"0":
"name": "Edward",
"city": "New York"
,
"1":
"name": "Jake",
"city": "Tampa"
【问题讨论】:
【参考方案1】:您可以使用 Kafka Streams 从两个不同的主题进行聚合以构建一个未分类的消息。请查看 Debezium 源的示例https://github.com/debezium/debezium-examples/tree/master/kstreams
例子中的目标是MongoDB,但原理是一样的。
【讨论】:
感谢您的快速回复!能否请您添加更多细节?以上是关于在 Debezium 中加入:MySQL 到 Elasticsearch的主要内容,如果未能解决你的问题,请参考以下文章