Тип поля Гистограмма
Поле для хранения предварительно агрегированных числовых данных, представляющих гистограмму. Эти данные определяются с помощью двух пар массивов:
Поскольку элементы в массиве values соответствуют элементам в том же положении массива count, эти два массива должны иметь одинаковую длину.
- Поле
histogramможет хранить только одну пару массивовvaluesиcountна документ. Вложенные массивы не поддерживаются. - Поля
histogramне поддерживают сортировку.
Параметры
-
time_series_metric -
[превью] Эта функциональность находится в техническом превью и может быть изменена или удалена в будущих версиях. Elastic будет работать над устранением любых проблем, но функции в техническом превью не подпадают под SLA поддержки официальных функций GA. (Необязательный, строковый)
Для внутреннего использования только Elastic.
Помечает поле как метрику временного ряда. Значение — тип метрики. По умолчанию,
null(Не метрика временного ряда).Для полей
histogramэтот параметр принимает значениеhistogram. Вы не можете обновить этот параметр для существующих полей.
Использование
Поля histogram предназначены в первую очередь для использования с агрегациями. Чтобы сделать их более доступными для агрегаций, данные поля histogram хранятся в виде двоичных doc values и не индексируются. Их размер в байтах не превышает 13 * numValues, где numValues — длина предоставленных массивов.
Поскольку данные не индексируются, вы можете использовать поля histogram только для следующих агрегаций и запросов:
- агрегация min
- агрегация max
- агрегация sum
- агрегация value_count
- агрегация avg
- агрегация процентилей
- агрегация рангов процентилей
- агрегация боксплотов
- агрегация гистограммы
- агрегация диапазона
- запрос существования
Построение гистограммы
При использовании гистограммы как части агрегации точность результатов будет зависеть от того, как была построена гистограмма. Важно учитывать режим агрегации процентилей, который будет использоваться для её построения. Некоторые возможности включают:
- Для режима T-Digest массив
valuesпредставляет средние позиции центроидов, а массивcountsпредставляет количество значений, присвоенных каждому центроиду. Если алгоритм уже начал приближать процентили, эта неточность переносится в гистограмму. - Для режима гистограммы с высоким динамическим диапазоном (HDR) массив
valuesпредставляет фиксированные верхние пределы каждого интервала корзины, а массивcountsпредставляет количество значений, присвоенных каждому интервалу. Данная реализация поддерживает фиксированную процентную ошибку худшего случая (указанную как количество значащих цифр), поэтому значение, используемое при построении гистограммы, будет максимальной точностью, которую можно достичь во время агрегации.
Поле гистограммы «алгоритмически независимо» и не хранит данные, специфичные ни для T-Digest, ни для HDRHistogram. Хотя это означает, что поле теоретически можно агрегировать с помощью любого из алгоритмов, на практике пользователь должен выбрать один алгоритм и проиндексировать данные таким образом (например, центроиды для T-Digest или интервалы для HDRHistogram), чтобы обеспечить максимальную точность.
Примеры
Следующий запрос API создания индекса создаёт новый индекс с двумя отображениями полей:
-
my_histogram, полеhistogram, используемое для хранения данных процентилей -
my_text, полеkeyword, используемое для хранения заголовка гистограммы
PUT my-index-000001
{
"mappings" : {
"properties" : {
"my_histogram" : {
"type" : "histogram"
},
"my_text" : {
"type" : "keyword"
}
}
}
} Следующие запросы API индексирования хранят предварительно агрегированные значения для двух гистограмм: histogram_1 и histogram_2.
PUT my-index-000001/_doc/1
{
"my_text" : "histogram_1",
"my_histogram" : {
"values" : [0.1, 0.2, 0.3, 0.4, 0.5],
"counts" : [3, 7, 23, 12, 6]
}
}
PUT my-index-000001/_doc/2
{
"my_text" : "histogram_2",
"my_histogram" : {
"values" : [0.1, 0.25, 0.35, 0.4, 0.45, 0.5],
"counts" : [8, 17, 8, 7, 6, 2]
}
} | Значения для каждой корзины. Значения в массиве обрабатываются как числа с плавающей точкой и должны быть указаны в порядке возрастания. Для гистограмм T-Digest это значение представляет среднее значение. В случае гистограмм HDR это значение представляет итерируемое значение. | |
| Подсчёт для каждой корзины. Значения в массивах обрабатываются как целые числа и должны быть положительными или нулевыми. Отрицательные значения будут отклонены. Связь между корзиной и подсчётом определяется позицией в массиве. |
© 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/histogram.html