在logstash中优化字典翻译

时间:2017-02-09 04:23:46

标签: elasticsearch logstash logstash-file

我正在使用logstash来解析csv文件中的数据并将其推送到elasticsearch。我有一个600k行的字典,它使用其中一个字段作为键将其映射到一串值。我目前正在使用这样的翻译插件来实现我的需要

filter {
        translate {
            dictionary_path => "somepath"
            field => "myfield"
            override => false
            destination => "destinationField"
        }
    }

我在destinationField中得到一个逗号分隔的String,我使用

读取
filter{
    csv {
        source => "destinationField"
        columns => ["col1","col2","col3"]            
        separator => ","
      }

}

添加这两个块的结果使我的处理时间增加了3倍。如果过去需要1分钟来处理并推送我的所有数据,现在需要3分钟才能完成任务。

这是预期的行为吗(这是一本大字典)?或者有没有办法进一步优化这段代码?

1 个答案:

答案 0 :(得分:0)

csv过滤器可能很昂贵。我编写了一个插件logstash-filter-augment,它与translate几乎完全相同,但更好地处理了原生CSV文档。您可以使用真实的CSV而不是csv过滤器来解析字段。