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

Агрегация по квантилям корзины

Это агрегация конвейера, которая вычисляет квантили по всем корзинам указанного метрического показателя в связанной агрегации. Указанный метрический показатель должен быть числовым, а связанная агрегация должна быть агрегацией с множеством корзин.

Синтаксис

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

{
  "percentiles_bucket": {
    "buckets_path": "the_sum"
  }
}

Таблица 72. percentiles_bucket Параметры

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

buckets_path

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

Обязательно

gap_policy

Политика, применяемая при обнаружении пробелов в данных (см. Обработка пробелов в данных для получения более подробной информации)

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

skip

format

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

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

null

percents

Список квантилей для вычисления

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

[ 1, 5, 25, 50, 75, 95, 99 ]

keyed

Флаг, который возвращает диапазон в виде хэша вместо массива пар ключ-значение

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

true

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

POST /sales/_search
{
  "size": 0,
  "aggs": {
    "sales_per_month": {
      "date_histogram": {
        "field": "date",
        "calendar_interval": "month"
      },
      "aggs": {
        "sales": {
          "sum": {
            "field": "price"
          }
        }
      }
    },
    "percentiles_monthly_sales": {
      "percentiles_bucket": {
        "buckets_path": "sales_per_month>sales", 
        "percents": [ 25.0, 50.0, 75.0 ]         
      }
    }
  }
}

buckets_path указывает этой агрегации квантилей корзин, что мы хотим рассчитать квантили для агрегации sales в гистограмме дат sales_per_month.

percents указывает, какие квантили мы хотим рассчитать, в данном случае 25-й, 50-й и 75-й.

И в ответе может быть следующее:

{
   "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
               }
            },
            {
               "key_as_string": "2015/02/01 00:00:00",
               "key": 1422748800000,
               "doc_count": 2,
               "sales": {
                  "value": 60.0
               }
            },
            {
               "key_as_string": "2015/03/01 00:00:00",
               "key": 1425168000000,
               "doc_count": 2,
               "sales": {
                  "value": 375.0
               }
            }
         ]
      },
      "percentiles_monthly_sales": {
        "values" : {
            "25.0": 375.0,
            "50.0": 375.0,
            "75.0": 550.0
         }
      }
   }
}

Реализация percentiles_bucket

Квантиль корзины возвращает ближайшую точку входных данных, которая не больше, чем запрашиваемая квантиль; она не интерполирует между точками данных.

Квантили вычисляются точно, а не приближенно (в отличие от метрики квантилей). Это означает, что реализация сохраняет отсортированный список данных в памяти для вычисления квантилей, прежде чем удалить данные. Вы можете столкнуться с проблемами с памятью, если попытаетесь рассчитать квантили для миллионов точек данных в одном percentiles_bucket.

© 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-percentiles-bucket-aggregation.html

Spec-Zone.ru

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