使用Logstash同步两个mysql表的数据,并使用单一的Elasticsearch索引。

问题描述 投票:0回答:1

我有两张mysql表,想保存到一个Elastic索引中。

表1: Productid, name .等。

表2.ProductWarehouseproductId, warehouseId, qtyAvailable

Product 一对多 ProductWarehouse

我的问题是,如何保存 ProductWarehouse 纪录,每个 product 作为一个数组?

如果是 ProductWarehouse 被修改,如何在弹性指数上反映出来?

最好的做法是什么?

Elastic中的Product索引应该是这样的。

{
 "id",
 "name": ...,
 "warehouses": [
   {"warehouseId": 1, "qtyAvailable": 3},
   {"warehouseId": 10, "qtyAvailable": 30}
 ]
}
mysql elasticsearch logstash
1个回答
0
投票

我的建议是创建一个你所需要的结构的MySQL视图。Product joins与ProductWarehouse。这个视图只是为了在同步中使用,然后使用Logstash从这个视图同步到ElasticSearch。

然后你可以使用ElasticSearsh索引作为这个结构。

{
 "id",
 "name": ...,
 "warehouses": 1
}
{
 "id",
 "name": ...,
 "warehouses": 3
}
© www.soinside.com 2019 - 2024. All rights reserved.