[英]Sync data from two mysql tables with single Elasticsearch Index using Logstash
我有两个 mysql 表,我想将它们保存到单个弹性索引中。
表 1: Product
有id
, name
...等。
表 2: ProductWarehouse
有productId
、 warehouseId
、 qtyAvailable
...等
Product
一对多ProductWarehouse
我的问题是,如何将每个product
的ProductWarehouse
记录保存为数组?
如果ProductWarehouse
被修改了,如何在 Elastic 索引上体现出来?
最佳做法是什么?
Elastic 中的产品索引应如下所示:
{
"id",
"name": ...,
"warehouses": [
{"warehouseId": 1, "qtyAvailable": 3},
{"warehouseId": 10, "qtyAvailable": 30}
]
}
我的建议是创建您需要的结构的 MySQL 视图:产品与 ProductWarehouse 连接。 此视图仅用于同步,然后使用 Logstash 将此视图同步到 ElasticSearch。
然后你可以使用 ElasticSearsh 索引作为这个结构:
{
"id",
"name": ...,
"warehouses": 1
}
{
"id",
"name": ...,
"warehouses": 3
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.