Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Агрегации ›Агрегации-каналы

Агрегация корреляции корзинок

Данная функция находится в техническом предварительном просмотре и может быть изменена или удалена в будущих версиях. Elastic будет работать над устранением любых проблем, но функции в техническом предварительном просмотре не подпадают под SLA поддержки официальных функций GA.

Агрегация канала, которая выполняет функцию корреляции на сконфигурированной агрегации с множеством корзинок.

Параметры

buckets_path
(Обязательно, строка) Путь к корзинками, содержащим набор значений для корреляции. Синтаксис см. в buckets_path Синтаксис.
function

(Обязательно, объект) Функция корреляции, которую нужно выполнить.

Свойства function
count_correlation

(Обязательно*, объект) Настройка для расчёта корреляции по количеству. Эта функция предназначена для определения корреляции значения терма и заданного метрического значения. Следовательно, она должна соответствовать следующим требованиям.

  • buckets_path должен указывать на метрику _count.
  • Общее количество всех значений подсчёта bucket_path должно быть меньше или равно indicator.doc_count.
  • При использовании этой функции требуется предварительный расчёт для сбора необходимых значений indicator.
Свойства count_correlation
indicator

(Обязательно, объект) Индикатор для корреляции сконфигурированных значений bucket_path.

Свойства indicator
doc_count
(Обязательно, целое число) Общее количество документов, изначально создавших expectations. Оно должно быть больше или равно сумме всех значений в buckets_path, поскольку это исходный супермножество данных, к которому коррелируются значения термов.
expectations
(Обязательно, массив) Массив чисел для корреляции сконфигурированных значений bucket_path. Длина этого значения всегда должна быть равна количеству корзинок, возвращённых bucket_path.
fractions
(Необязательно, массив) Массив дробей для усреднения и расчёта дисперсии. Это необходимо, если в предварительно рассчитанных данных и buckets_path есть известные пробелы. Длина fractions, если указана, должна быть равна expectations.

Синтаксис

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

{
  "bucket_correlation": {
    "buckets_path": "range_values>_count", 
    "function": {
      "count_correlation": { 
        "indicator": {
          "expectations": [...],
          "doc_count": 10000
        }
      }
    }
  }
}

Корзинки, содержащие значения, по которым проводится корреляция.

Определение функции корреляции.

Пример

Следующий фрагмент коррелирует отдельные термы в поле version с метрикой latency. Не показан предварительный расчёт значений индикатора latency, который был выполнен с помощью агрегации процентилей.

В данном примере используются только процентили 10.

POST correlate_latency/_search?size=0&filter_path=aggregations
{
  "aggs": {
    "buckets": {
      "terms": { 
        "field": "version",
        "size": 2
      },
      "aggs": {
        "latency_ranges": {
          "range": { 
            "field": "latency",
            "ranges": [
              { "to": 0.0 },
              { "from": 0, "to": 105 },
              { "from": 105, "to": 225 },
              { "from": 225, "to": 445 },
              { "from": 445, "to": 665 },
              { "from": 665, "to": 885 },
              { "from": 885, "to": 1115 },
              { "from": 1115, "to": 1335 },
              { "from": 1335, "to": 1555 },
              { "from": 1555, "to": 1775 },
              { "from": 1775 }
            ]
          }
        },
        "bucket_correlation": { 
          "bucket_correlation": {
            "buckets_path": "latency_ranges>_count",
            "function": {
              "count_correlation": {
                "indicator": {
                   "expectations": [0, 52.5, 165, 335, 555, 775, 1000, 1225, 1445, 1665, 1775],
                   "doc_count": 200
                }
              }
            }
          }
        }
      }
    }
  }
}

Корзинки термов, содержащие агрегацию диапазона и агрегацию корреляции корзинок. Обе используются для расчёта корреляции значений термов с задержкой.

Агрегация диапазона по полю задержки. Диапазоны созданы на основе процентилей поля задержки.

Агрегация корреляции корзинок, которая рассчитывает корреляцию количества значений термов в каждом диапазоне и предварительно рассчитанных значений индикатора.

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

{
  "aggregations" : {
    "buckets" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [
        {
          "key" : "1.0",
          "doc_count" : 100,
          "latency_ranges" : {
            "buckets" : [
              {
                "key" : "*-0.0",
                "to" : 0.0,
                "doc_count" : 0
              },
              {
                "key" : "0.0-105.0",
                "from" : 0.0,
                "to" : 105.0,
                "doc_count" : 1
              },
              {
                "key" : "105.0-225.0",
                "from" : 105.0,
                "to" : 225.0,
                "doc_count" : 9
              },
              {
                "key" : "225.0-445.0",
                "from" : 225.0,
                "to" : 445.0,
                "doc_count" : 0
              },
              {
                "key" : "445.0-665.0",
                "from" : 445.0,
                "to" : 665.0,
                "doc_count" : 0
              },
              {
                "key" : "665.0-885.0",
                "from" : 665.0,
                "to" : 885.0,
                "doc_count" : 0
              },
              {
                "key" : "885.0-1115.0",
                "from" : 885.0,
                "to" : 1115.0,
                "doc_count" : 10
              },
              {
                "key" : "1115.0-1335.0",
                "from" : 1115.0,
                "to" : 1335.0,
                "doc_count" : 20
              },
              {
                "key" : "1335.0-1555.0",
                "from" : 1335.0,
                "to" : 1555.0,
                "doc_count" : 20
              },
              {
                "key" : "1555.0-1775.0",
                "from" : 1555.0,
                "to" : 1775.0,
                "doc_count" : 20
              },
              {
                "key" : "1775.0-*",
                "from" : 1775.0,
                "doc_count" : 20
              }
            ]
          },
          "bucket_correlation" : {
            "value" : 0.8402398981360937
          }
        },
        {
          "key" : "2.0",
          "doc_count" : 100,
          "latency_ranges" : {
            "buckets" : [
              {
                "key" : "*-0.0",
                "to" : 0.0,
                "doc_count" : 0
              },
              {
                "key" : "0.0-105.0",
                "from" : 0.0,
                "to" : 105.0,
                "doc_count" : 19
              },
              {
                "key" : "105.0-225.0",
                "from" : 105.0,
                "to" : 225.0,
                "doc_count" : 11
              },
              {
                "key" : "225.0-445.0",
                "from" : 225.0,
                "to" : 445.0,
                "doc_count" : 20
              },
              {
                "key" : "445.0-665.0",
                "from" : 445.0,
                "to" : 665.0,
                "doc_count" : 20
              },
              {
                "key" : "665.0-885.0",
                "from" : 665.0,
                "to" : 885.0,
                "doc_count" : 20
              },
              {
                "key" : "885.0-1115.0",
                "from" : 885.0,
                "to" : 1115.0,
                "doc_count" : 10
              },
              {
                "key" : "1115.0-1335.0",
                "from" : 1115.0,
                "to" : 1335.0,
                "doc_count" : 0
              },
              {
                "key" : "1335.0-1555.0",
                "from" : 1335.0,
                "to" : 1555.0,
                "doc_count" : 0
              },
              {
                "key" : "1555.0-1775.0",
                "from" : 1555.0,
                "to" : 1775.0,
                "doc_count" : 0
              },
              {
                "key" : "1775.0-*",
                "from" : 1775.0,
                "doc_count" : 0
              }
            ]
          },
          "bucket_correlation" : {
            "value" : -0.5759855613334943
          }
        }
      ]
    }
  }
}

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

Spec-Zone.ru

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