簡體   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