私はcsvファイルからデータを解析してelasticsearchにプッシュするためにlogstashを使用しています。私は600k行の辞書を持っています。これはフィールドの1つをキーとして使用して、値の文字列にマップします。私は現在、私はこれらの2ブロックを加算した結果が増加しているログシュートでの辞書翻訳の最適化
filter{
csv {
source => "destinationField"
columns => ["col1","col2","col3"]
separator => ","
}
}
を使用して読み取り、私のdestinationFieldでカンマ区切りの文字列を取得し、私は
filter {
translate {
dictionary_path => "somepath"
field => "myfield"
override => false
destination => "destinationField"
}
}
を必要とするものを達成するために、このような変換プラグインを使用しています私の処理時間は3倍。処理に1分かかり、すべてのデータをプッシュすると、タスクを完了するのに3分かかります。
これは予想された動作ですか(大規模な辞書ですか)?または、このコードをさらに最適化する方法はありますか?
パイプラインに追加の処理ステップを追加すると、処理時間が長くなることが予想されます。 – Val
本当ですか!しかし、処理時間が3倍になるのはかなりのようです。このことについてもっと最適化された方法があるかどうかを知りたいと思っていた – Vignesh
1行で最大10倍まで増やすことができます。最終的には、それらのフィルタがどのように実装されるかによって異なります。私は 'csv 'について心配していませんが、' translate'を調べたいと思うかもしれません。 – Val