Я использую logstash для анализа данных из файла csv и отправки их в elasticsearch. У меня есть словарь с 600 тысячами строк, который использует одно из полей в качестве ключа для сопоставления его со строкой значений. В настоящее время я использую подобный плагин перевода, чтобы добиться того, что мне нужно
filter {
translate {
dictionary_path => "somepath"
field => "myfield"
override => false
destination => "destinationField"
}
}
Я получаю строку, разделенную запятыми, в моем поле назначения, которое я читаю, используя
filter{
csv {
source => "destinationField"
columns => ["col1","col2","col3"]
separator => ","
}
}
В результате добавления этих двух блоков время обработки увеличилось в 3 раза. Если раньше обработка и отправка всех моих данных занимала 1 минуту, то теперь для выполнения задачи требуется 3 минуты.
Это ожидаемое поведение (это большой словарь)? Или есть ли способ дальнейшей оптимизации этого кода?
csv
, но вы можете исследоватьtranslate
. - person Val   schedule 09.02.2017