前置き
OpenSearch Ingestionは、OpenSearchドメインにデータを取り込む部分をマネージドで実施してくれる機能です。これを利用することで、Lambdaなど作成することなく取り込みが設定できます。また、コンピューティングは勝手にスケールしてくれます。
このIngestionですが、取り込む際の加工処理もProcessorを使って記載できます。
このProcessorの中で、delete_entriesというものがあります。これはフィールドを指定しておくことで取り込む際にそのフィールドを削除してくれます。公式ドキュメントにあるように、以下のように動作します。
- 設定値
processor:
- delete_entries:
with_keys: ["message"]
- 元データ
{"message": "hello", "message2": "goodbye"}
- 処理後の取り込んだデータ
{"message2": "goodbye"}
本題
delete_entriesを使う際に、ネストされたJsonの中のフィールドを削除する際、普通にドットで指定するとうまくいきません。
- 上手くいかない例
processor:
- delete_entries:
with_keys: ["message.key1"]
以下のように、スラッシュで区切るとうまく削除されます。
- 上手くいく例
processor:
- delete_entries:
with_keys: ["message/key1"]