我使用logstash从csv文件解析数据并将其推送到elasticsearch。我有一个带有600k行的字典,它使用其中一个字段作为键将其映射到一串值。我目前使用的翻译插件,这样来实现我需要什么在logstash中优化字典转换
filter {
translate {
dictionary_path => "somepath"
field => "myfield"
override => false
destination => "destinationField"
}
}
我得到了我的destinationField逗号分隔字符串,我读使用
filter{
csv {
source => "destinationField"
columns => ["col1","col2","col3"]
separator => ","
}
}
加入这2块的结果有所增加我的处理时间缩短了3倍。如果过去需要1分钟处理并推送所有数据,则现在需要3分钟才能完成任务。
这是预期的行为(这是一个大字典)?或者有什么办法可以进一步优化这些代码?
那么,如果您在流水线中包含额外的处理步骤,则只能预期处理时间会增加,对吗? – Val
真的!但是处理时间提高3倍似乎很多。很想知道是否有更优化的方法去实现这个 – Vignesh
只需一条线就可以使其达到10倍以上。最后,这一切都取决于如何实施这些过滤器。我并不太担心'csv',但你可能想研究'translate'。 – Val