Превью API трансформации
Предварительный просмотр трансформации.
Запрос
GET _transform/<transform_id>/_preview
POST _transform/<transform_id>/_preview
GET _transform/_preview
POST _transform/_preview
Предварительные условия
Требуются следующие привилегии:
- cluster:
manage_transform(рольtransform_adminпредоставляет эту привилегию) - индексы источников:
read,view_index_metadata.
Описание
Этот API генерирует превью результатов, которые вы получите при запуске API создания трансформаций с теми же настройками. Он возвращает максимум 100 результатов. Расчеты основаны на всех текущих данных в индексе источника.
Он также генерирует список сопоставлений и настроек для целевого индекса. Если целевой индекс не существует при запуске трансформации, эти сопоставления и настройки используются. Эти значения определяются на основе типов полей в индексе источника и агрегаций трансформации.
Существуют некоторые ограничения, которые могут привести к некорректным сопоставлениям. В качестве обходного решения, создайте целевой индекс или шаблон индекса со своими предпочтительными сопоставлениями перед запуском трансформации.
Вы должны выбрать либо метод latest, либо pivot для вашей трансформации; вы не можете использовать оба в одной трансформации.
Параметры пути
-
<transform_id> -
(Необязательно, строка) Идентификатор трансформации для предварительного просмотра.
Если вы предоставите
<transform_id>в качестве параметра пути, вы не можете предоставить детали конфигурации трансформации в теле запроса.
Параметры запроса
-
timeout - (Необязательно, время) Период ожидания ответа. Если ответ не получен до истечения срока ожидания, запрос завершается ошибкой. По умолчанию
30s.
Тело запроса
-
description - (Необязательно, строка) Свободное текстовое описание преобразования.
-
dest -
(Необязательно, объект) Назначение преобразования.
Свойства
dest-
index - (Необязательно, строка) Индекс назначения для преобразования.
В случае с преобразованием
pivot, соответствия индексов назначения выводятся на основе исходных полей, когда это возможно. Если требуются альтернативные соответствия, используйте API создания индекса до запуска преобразования.В случае с преобразованием
latest, соответствия никогда не выводятся. Если динамические соответствия для индекса назначения нежелательны, используйте API создания индекса до запуска преобразования.-
pipeline - (Необязательно, строка) Уникальный идентификатор потока обработки данных.
-
-
frequency - (Необязательно, единицы измерения времени) Интервал между проверками изменений в исходных индексах, когда преобразование выполняется непрерывно. Также определяет интервал повторной попытки в случае временных сбоев при поиске или индексировании. Минимальное значение —
1s, максимальное —1h. Значение по умолчанию —1m.
-
latest -
(Обязательно*, объект) Метод
latestпреобразует данные, находя последний документ для каждого уникального ключа.Свойства
latest-
sort - (Обязательно, строка) Указывает поле даты, используемое для определения последних документов.
-
unique_key - (Обязательно, массив строк) Указывает массив одного или нескольких полей, используемых для группировки данных.
-
-
pivot -
(Обязательно, объект) Метод
pivotпреобразует данные путём агрегирования и группировки. Эти объекты определяют поляgroup byи агрегацию для уменьшения данных.Свойства
pivot-
aggregationsилиaggs -
(Обязательно, объект) Определяет, как агрегировать сгруппированные данные. В настоящее время поддерживаются следующие агрегации:
-
group_by -
(Обязательно, объект) Определяет, как сгруппировать данные. Можно определить более одной группировки на один pivot. В настоящее время поддерживаются следующие группировки:
Свойства группировки могут опционально иметь свойство
missing_bucket. Если оноtrue, документы без значения в соответствующем полеgroup_byвключаются. По умолчаниюfalse. -
max_page_search_size - (Необязательно, целое число) [7.8.0] Устарело в 7.8.0. Перемещено в
settings.
-
-
retention_policy -
(Необязательно, объект) Определяет политику хранения для преобразования. Данные, соответствующие определённым критериям, удаляются из целевого индекса.
Свойства
retention_policy-
time -
(Обязательно, объект) Указывает, что преобразование использует поле времени для установки политики хранения.
Свойства
time-
field - (Обязательно, строка) Поле даты, используемое для расчёта возраста документа.
-
max_age - (Обязательно, единицы измерения времени) Указывает максимальный возраст документа в целевом индексе. Документы, старше заданного значения, удаляются из целевого индекса.
-
-
-
source -
(Обязательно, объект) Источник данных для преобразования.
Свойства
source-
index -
(Обязательно, строка или массив) Исходные индексы для преобразования. Это может быть один индекс, шаблон индекса (например,
"my-index-*"), массив индексов (например,["my-index-000001", "my-index-000002"]) или массив шаблонов индексов (например,["my-index-*", "my-other-index-*"]. Для удалённых индексов используйте синтаксис"remote_name:index_name".Если какие-либо индексы находятся в удалённых кластерах, у узла master и по крайней мере одного трансформационного узла должен быть роль узла
remote_cluster_client. -
query - (Необязательно, объект) Оператор запроса, который извлекает подмножество данных из исходного индекса. См. Query DSL.
-
runtime_mappings - (Необязательно, объект) Определения полей времени выполнения поиска, которые могут быть использованы преобразованием. Для полей времени выполнения поиска все узлы данных, включая удалённые узлы, должны быть версии 7.12 или выше.
-
-
sync -
(Необязательно, объект) Определяет свойства, необходимые для непрерывной работы преобразований.
Свойства
sync-
time -
(Необязательно, объект) Указывает, что преобразование использует поле времени для синхронизации исходного и целевого индексов.
Свойства
time-
delay - (Необязательно, единицы измерения времени) Задержка во времени между текущим временем и временем последних входных данных. Значение по умолчанию —
60s. -
field - (Необязательно, строка) Поле даты, используемое для идентификации новых документов в источнике.
-
-
-
settings -
(Необязательно, объект) Определяет дополнительные параметры преобразования.
Свойства
settings-
docs_per_second - (Необязательно, число с плавающей точкой) Устанавливает ограничение на количество входных документов в секунду. Этот параметр регулирует преобразование, добавляя время ожидания между запросами поиска. Значение по умолчанию —
null, что отключает регулирование. -
align_checkpoints - (Необязательно, логическое значение) Указывает, следует ли оптимизировать диапазоны контрольных точек преобразования для повышения производительности. Такая оптимизация может согласовывать диапазоны контрольных точек с интервалом гистограммы дат, когда гистограмма дат указана как исходный набор группировок в конфигурации преобразования. В результате будет выполнено меньше обновлений документов в целевом индексе, что повысит общую производительность. Значение по умолчанию —
true, что означает, что диапазоны контрольных точек будут оптимизированы, если это возможно. -
max_page_search_size - (Необязательно, целое число) Определяет начальный размер страницы для агрегации по составному запросу для каждой контрольной точки. При возникновении исключений из-за переполнения памяти размер страницы динамически корректируется до меньшего значения. Минимальное значение —
10, максимальное —65,536. Значение по умолчанию —500.
-
Тело ответа
-
preview - (массив) Массив документов. В частности, это JSON-представление документов, которые будут созданы в целевом индексе преобразованием.
-
generated_dest_index -
(объект) Содержит сведения о целевом индексе.
Свойства
generated_dest_index-
aliases - (объект) Псевдонимы целевого индекса.
-
mappings - (объект) отображения для каждого документа в целевом индексе.
-
settings - (объект) настройки индекса для целевого индекса.
-
Примеры
POST _transform/_preview
{
"source": {
"index": "kibana_sample_data_ecommerce"
},
"pivot": {
"group_by": {
"customer_id": {
"terms": {
"field": "customer_id",
"missing_bucket": true
}
}
},
"aggregations": {
"max_price": {
"max": {
"field": "taxful_total_price"
}
}
}
}
} Данные, возвращаемые для этого примера, следующие:
{
"preview" : [
{
"max_price" : 171.0,
"customer_id" : "10"
},
{
"max_price" : 233.0,
"customer_id" : "11"
},
{
"max_price" : 200.0,
"customer_id" : "12"
}
...
],
"generated_dest_index" : {
"mappings" : {
"_meta" : {
"_transform" : {
"transform" : "transform-preview",
"version" : {
"created" : "7.7.0"
},
"creation_date_in_millis" : 1584738236757
},
"created_by" : "transform"
},
"properties" : {
"max_price" : {
"type" : "half_float"
},
"customer_id" : {
"type" : "keyword"
}
}
},
"settings" : {
"index" : {
"number_of_shards" : "1",
"auto_expand_replicas" : "0-1"
}
},
"aliases" : { }
}
}
© 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/preview-transform.html