可以使用logstash来合并多个文件中的数据吗?

时间:2015-07-31 15:29:53

标签: xml csv elasticsearch logstash elastic-stack

我有两个文件,一个xml文件和一个csv文件。当我从csv文件中摄取数据时,我想从xml文件中添加add_fields。

这是我的xml看起来像

<Root>
  <Date>07.31.2015</Run>
  <Customer>
    <Name>John</Name>
    <ID>12345</ID>
  </Customer>
</Root>

这是我的csv

column1,column2,column3
example1,example2,example3
example4,example5,example6

现在我想从xml文件中提取日期和ID,并在将其拉入弹性搜索时将这些字段添加到csv的每一行,如下所示:

{
  "_index" : "indx-2.0",
  "_type" : "logfile",
  "_id" : "abcdefg",
  "_score" : 1.0,
  "_source":{"message":["column1,column2,column3"],"Date":"07.31.2015", "CID": "12345"(etc)}
}
{
  "_index" : "indx-2.0",
  "_type" : "logfile",
  "_id" : "abcdefh",
  "_score" : 1.0,
  "_source":{"message":["example1,example2,example3"],"Date":"07.31.2015", "CID": "12345"(etc)}
}
{
  "_index" : "indx-2.0",
  "_type" : "logfile",
  "_id" : "abcdefi",
  "_score" : 1.0,
  "_source":{"message":["example4,example5,example6"],"Date":"07.31.2015", "CID": "12345"(etc)}
}

这种事情是否可以使用logstash(以及.conf文件的样子)?

1 个答案:

答案 0 :(得分:0)

快速创意:

您可以将xml加载到elasticsearch中,并使用elasticsearch {}过滤器查询文档并将其合并到您的csv数据中。

如果xml数据没有太大变化(每个csv批次等一次),你可以使用带有硬编码值的mutate-&gt; add_field。