はじめに
ElasticsearchのIngestNodeでのProcessorについて、現在のバージョン6.xで提供されている各編集機能を一覧にして逆引きしやすいようにしてみました。
寄り道の補足1
IngestNodeはインフラや非機能要件的にはポイントとなるお話があるとは思いますが、自分のようなヒトにとっては、ひとまずは、logstashの代わり、あるいはreindexの際に型変換などを宣言的やってしまえる仕組みと捉えておけば良いのではないでしょうか。
つまるところ、インデックスの更新前に、元のデータソースから取得したドキュメントの元ネタを実際にインデックスに取り込むにあたり、変換したりある種の標準化などをしてしまいましょうというところの仕組みになります。
もう少し深掘りするなら、下記のリンクをはじめ有識者の方の記事等を参考にしましょう。
ElasticsearchのIngest Nodeを試してみた | DevelopersIO
LogstashとElasticsearchのIngestノード、どちらを使うべき? | Elastic
logstashの代わりというところの範疇なので、ひょっとすると用途によっては帯に短し的なところがあるかもしれませんので、今回ビルトインの編集機能を表にしてまとめてみた次第です。
なお、襷に長しというように言いましたが、painless scriptも使えたり、ジョブの分岐や制御的なこともできる構文が用意されているので、相当なことができるのも事実かと思います。
寄り道の補足2
実際のProcessorの説明の前にここまでで少し話が飛躍していそうなので、もう一点補足します。
IngestNodeというか、ここではIngestNode自体がどうというよりは、pipelineと呼ばれる変換テンプレートのようなものと、今回説明しようとしているProcessorの関係、およびそれらにより、通常のインデックスへの更新(POST)とは違うカタチで、事前のドキュメント変換ができるのかという絵はこうなります。
Processorのまとめ(チートシート風)
チートシート風というか公式Rはアルファベット順になっているので、用途別に逆引きしやすいように用途別に並び替えてみました。
こうやってみるとlogstashの置き換えにもなるという方向性どおり、ログの変換に便利なものが揃っていますね。
Processorのまとめ(前項のテキスト)
上記の表と同じもの。 コピペやリンク先に飛べるようにテキストでの表にしたがmarkdownの使い方が悪く、幅の調整がうまくいかないので、皆様のお手元では総崩れしているかもしれません。