Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Агрегации ›Агрегации на основе конвейера

Агрегация кумулятивной суммы

Родительская агрегация конвейера, которая вычисляет кумулятивную сумму заданного метрического показателя в родительской агрегации гистограммы (или гистограммы дат). Заданный метрический показатель должен быть числовым, а содержащая гистограмма должна иметь значение min_doc_count, установленное на 0 (значение по умолчанию для агрегаций histogram).

Синтаксис

Агрегация cumulative_sum выглядит следующим образом:

{
  "cumulative_sum": {
    "buckets_path": "the_sum"
  }
}

Таблица 53. Параметры cumulative_sum

Имя параметра Описание Обязательно Значение по умолчанию

buckets_path

Путь к корзинам, для которых мы хотим найти кумулятивную сумму (подробнее см. buckets_path Синтаксис)

Обязательно

format

формат для применения к выходному значению этой агрегации

Необязательно

null

Следующий фрагмент вычисляет кумулятивную сумму общей ежемесячной sales:

POST /sales/_search
{
  "size": 0,
  "aggs": {
    "sales_per_month": {
      "date_histogram": {
        "field": "date",
        "calendar_interval": "month"
      },
      "aggs": {
        "sales": {
          "sum": {
            "field": "price"
          }
        },
        "cumulative_sales": {
          "cumulative_sum": {
            "buckets_path": "sales" 
          }
        }
      }
    }
  }
}

buckets_path сообщает этой агрегации кумулятивной суммы использовать результат агрегации sales для кумулятивной суммы

И вот возможный ответ:

{
   "took": 11,
   "timed_out": false,
   "_shards": ...,
   "hits": ...,
   "aggregations": {
      "sales_per_month": {
         "buckets": [
            {
               "key_as_string": "2015/01/01 00:00:00",
               "key": 1420070400000,
               "doc_count": 3,
               "sales": {
                  "value": 550.0
               },
               "cumulative_sales": {
                  "value": 550.0
               }
            },
            {
               "key_as_string": "2015/02/01 00:00:00",
               "key": 1422748800000,
               "doc_count": 2,
               "sales": {
                  "value": 60.0
               },
               "cumulative_sales": {
                  "value": 610.0
               }
            },
            {
               "key_as_string": "2015/03/01 00:00:00",
               "key": 1425168000000,
               "doc_count": 2,
               "sales": {
                  "value": 375.0
               },
               "cumulative_sales": {
                  "value": 985.0
               }
            }
         ]
      }
   }
}

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-aggregations-pipeline-cumulative-sum-aggregation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API