繁体   English   中英

Elasticsearch + Logstash:如何在导入时基于现有数据添加字段

[英]Elasticsearch + Logstash: How to add a fields based on existing data at importing time

目前,我正在通过logstash将数据导入Elastic,这时是通过读取csv文件。

现在,假设我在csv,年龄和权重中有两个数字字段。 我需要通过对年龄,体重和其他外部数据(或函数结果)进行数学运算来动态添加第三个字段; 并且我需要在导入数据时创建第三个字段。

有什么办法吗? 最佳做法是什么?

在所有Logstash过滤器部分中,您可以通过add_field添加字段,但这通常是静态数据。

数学计算需要一个单独的插件

如此处所述,ruby过滤器插件可能是您的最佳选择。 这是您的管道的示例代码段

filter {

     # add calculated field, for example BMI, from height and weight 
    ruby {
        code => "event['data']['bmi'] = event['data']['weight'].to_i / (event['data']['height'].to_i)"
   }
}

另外,在Kibana中,有一些脚本化的字段需要可视化,但无法查询

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM