Elasticsearch — Как суммировать значения из каждого нового документа в отдельный индекс?

#elasticsearch #elastic-stack #elk #efk

#эластичный поиск #эластичный-стек #elk #efk

Вопрос:

Пример:

Мои документы:

 {"_id":"1", "data_sent":"100"}
{"_id":"2", "data_sent":"110"}
{"_id":"3", "data_sent":"120"}
  

Я хотел бы получить значение 'data_sent' для каждого нового документа и суммировать его с другим индексом, скажем

 index_name: 'data_sum'
field: 'total_data_sent'='330'
  

Бонус: я хотел бы автоматически создавать новые индексы за указанный период времени (например /week )

Я знаю, что здесь могут использоваться агрегации, но, насколько я понимаю, они выполняются при отправке запроса, и для больших данных это может длиться некоторое время. Мне нужно получать эти данные очень быстро, когда это необходимо.

Есть ли что-нибудь в Elastic, что могло бы помочь в моем случае?

Ответ №1:

Я понял это, углубившись в документацию.

'Transforms' это было то, что я искал.

https://www.elastic.co/guide/en/elasticsearch/reference/7.9/transform-overview.html