首页 > 解决方案 > Kafka 连接 MySQL 到 ES

问题描述

假设我想使用 Kafka 连接器将数据从 3 个 mysql 表移动到 1 个 ES 索引。

这 3 个表是数据库规范化的结果,在 ES 中不需要为此设置 3 个索引,理想情况下我会拥有一个索引,并且该索引上的每个文档都有属性。例如,在 MySQL 中,我有 3 个表 Person、Cars、Houses 所以一个人可以有很多汽车和很多房子。在 ES 中,我想要一个这样的文件:

{
    "name": "Peter",
    "age": 30,
    "cars": [{
        "color": "red"
    }],
    "houses": [{
        "address": "street 1"
    }]
}

是否会更好:

  1. 使用JdbcSourceConnector一个查询,该查询将连接 3 个表并将其写入主题,然后使用 aElasticsearchSinkConnector将该流同步到 ES 索引。
  2. 为每个表创建 3JdbcSourceConnector个,在 KSQL 中连接流/表以使用来自 3 个 MySQL 表的数据生成一个流,然后ElasticsearchSinkConnector将该流同步到 ES 索引。

注意:我已经尝试过选项2,但由于某种原因,我在 ES 中看到了索引,但没有看到文档。

标签: mysqlelasticsearchapache-kafkaapache-kafka-connect

解决方案


推荐阅读