让我们说我想使用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个表并将其写入主题,然后使用ElasticsearchSinkConnector
将流同步到ES索引。JdbcSourceConnector
,在KSQL中联接流/表,以使用来自3个MySQL表的数据生成一个流,然后再创建一个ElasticsearchSinkConnector
,以将该流同步到ES索引。 / li>
注意:我已经尝试了选项 2 ,但是由于某种原因,我在ES中看到了索引,但是没有文档。