我有两个文件,一个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文件的样子)?
答案 0 :(得分:0)
快速创意:
您可以将xml加载到elasticsearch中,并使用elasticsearch {}过滤器查询文档并将其合并到您的csv数据中。
如果xml数据没有太大变化(每个csv批次等一次),你可以使用带有硬编码值的mutate-&gt; add_field。