0

假设我们有 2 张桌子

1) 客户(CustID、姓名)

2) 采购(Cust_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很有用。但这并不能解决我的问题。

4

1 回答 1

0

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

于 2019-02-20T17:24:12.300 回答