使用Logstash JDBC插件在Elasticsearch中添加标签

时间:2019-02-20 14:21:02

标签: sql elasticsearch logstash logstash-jdbc

假设我们有2张桌子

1)客户(客户ID,姓名)

2)购买(客户ID,Purchase_ID)

(1)和(2)之间存在一对多(1:n)关系。

现在使用logstash,我想将此数据从sql插入elasticsearch。问题是,如果我将两个表连接起来,那么它将为单个客户插入多行/ json记录。我希望插入数据如下。

{
Cust_ID : 101,
Purchase_ID : [ 1001, 2003, 20006]
}

但它是

{
Cust_ID : 101,
Purchase_ID : 1001
},
{
Cust_ID : 101,
Purchase_ID : 2003
}

我发现链接https://www.elastic.co/guide/en/elasticsearch/reference/current/array.html很有用。但这不能解决我的问题。

1 个答案:

答案 0 :(得分:0)

您的SQL查询返回的每一行都将成为Elasticsearch中的一个文档。因此,更改查询以返回所需的行。可能是您需要将purchaseIds连接到一个字段,然后使用logstash的mutate-> split将它们转换为数组。