mysql - 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"
}]
}
是否会更好:
- 使用
JdbcSourceConnector
一个查询,该查询将连接 3 个表并将其写入主题,然后使用 aElasticsearchSinkConnector
将该流同步到 ES 索引。 - 为每个表创建 3
JdbcSourceConnector
个,在 KSQL 中连接流/表以使用来自 3 个 MySQL 表的数据生成一个流,然后ElasticsearchSinkConnector
将该流同步到 ES 索引。
注意:我已经尝试过选项2,但由于某种原因,我在 ES 中看到了索引,但没有看到文档。
解决方案
推荐阅读
- javascript - 具有单独输出 v2 到 v3 升级的 Youtube 自动搜索
- php - 函数忘记()返回调用Laravel中未定义的方法
- ios - 如何正确地在 Swift 中为以编程方式创建的 PDF 添加密码?
- python - ABC ----> ABC、CAB、BCA 仅顺序很重要,但不是真正的 itertools 排列
- listview - Flutter中stack和listview的区别
- reactjs - 他为什么先
列表中的元素没有显示其他使用 React Bootstrap 的机器人? - c# - 在多个项目中为连接字符串使用外部配置文件
- java - 如何将数组列表中的值从 AsyncTask 类发送到 Android 中的另一个类?
- javascript - Angular ReferenceError:从 html 表单或按钮调用 typescript 函数
- android - 在android studio中打开新项目时android资源编译失败