Spec-Zone.ru › Elasticsearch 7
›Руководство по Elasticsearch [7.17] ›REST API ›API преобразований

API обновления преобразования

Обновляет определенные свойства преобразования.

Запрос

POST _transform/<transform_id>/_update

Предварительные условия

Требуются следующие привилегии:

  • cluster: manage_transform (роль transform_admin предоставляет эту привилегию)
  • индексы источников: read, view_index_metadata
  • целевой индекс: read, index.

Описание

Этот API обновляет существующее преобразование. Список свойств, которые можно обновить, является подмножеством списка, который можно определить при создании преобразования.

При обновлении преобразования происходит ряд проверок для обеспечения успешности. Параметр defer_validation можно использовать для пропуска этих проверок.

Все обновленные свойства, кроме описания, не вступают в силу до тех пор, пока преобразование не начнет следующий этап проверки. Это сделано для обеспечения согласованности данных на каждом этапе.

  • При включенных функциях безопасности Elasticsearch, ваше преобразование запоминает роли пользователя, который его обновил, на момент обновления, и работает с этими привилегиями.
  • Для обновления преобразования необходимо использовать Kibana или этот API. Не обновляйте преобразование напрямую через индексы .transform-internal*, используя API индексов Elasticsearch. Если функции безопасности Elasticsearch включены, не предоставляйте пользователям никаких привилегий на индексы .transform-internal*. Если вы использовали преобразования до версии 7.5, не предоставляйте пользователям никаких привилегий и на индексы .data-frame-internal*.

Параметры пути

<transform_id>
(Обязательно, строка) Идентификатор преобразования.

Параметры запроса

defer_validation
(Необязательно, логическое значение) При значении "истина", отложенные проверки не выполняются. Это поведение может потребоваться, если индекс источника не существует до момента обновления преобразования.
timeout
(Необязательно, время) Срок ожидания ответа. Если ответ не получен до истечения времени ожидания, запрос завершается ошибкой. По умолчанию устанавливается значение 30s.

Тело запроса

description
(Необязательно, строка) Свободное текстовое описание преобразования.
dest

(Необязательно, объект) Назначение преобразования.

Свойства dest
index
(Обязательно, строка) Индекс назначения для преобразования.

В случае преобразования pivot, сопоставления индекса назначения выводятся на основе исходных полей, если это возможно. Если требуются альтернативные сопоставления, используйте API создания индекса до запуска преобразования.

В случае преобразования latest, сопоставления никогда не выводятся. Если динамические сопоставления для индекса назначения нежелательны, используйте API создания индекса до запуска преобразования.

pipeline
(Необязательно, строка) Уникальный идентификатор пайплайна инжеста.
frequency
(Необязательно, единицы времени) Интервал между проверками изменений в исходных индексах, когда преобразование работает непрерывно. Также определяет интервал повторной попытки в случае временных сбоев во время поиска или индексирования. Минимальное значение равно 1s, максимальное — 1h. Значение по умолчанию равно 1m.
_meta
(Необязательно, объект) Определяет метаданные преобразования.
retention_policy

(Необязательно, объект) Определяет политику хранения для преобразования. Данные, удовлетворяющие определенным критериям, удаляются из индекса назначения.

Свойства retention_policy
time

(Обязательно, объект) Указывает, что преобразование использует поле времени для установки политики хранения.

Свойства time
field
(Обязательно, строка) Дата и время поля, используемое для расчета возраста документа.
max_age
(Обязательно, единицы времени) Указывает максимальный возраст документа в индексе назначения. Документы, которые старше указанного значения, удаляются из индекса назначения.
settings

(Необязательно, объект) Определяет дополнительные параметры преобразования.

Свойства settings
dates_as_epoch_millis
(Необязательно, логическое значение) Определяет, должны ли даты в выводе записываться в формате ISO (по умолчанию) или в миллисекундах с эпохи. epoch_millis было значением по умолчанию для преобразований, созданных до версии 7.11. Для совместимого вывода установите значение true. Значение по умолчанию равно false.
docs_per_second
(Необязательно, число с плавающей запятой) Указывает ограничение на количество входных документов в секунду. Этот параметр регулирует преобразование, добавляя время ожидания между запросами поиска. Значение по умолчанию равно null, что отключает ограничение.
align_checkpoints
(Необязательно, логическое значение) Указывает, должны ли диапазоны контрольных точек преобразования оптимизироваться для производительности. Такая оптимизация может согласовать диапазоны контрольных точек с интервалом гистограммы дат, когда гистограмма дат указана как источник группы в конфигурации преобразования. В результате будет выполнено меньше обновлений документов в индексе назначения, что улучшит общую производительность. Значение по умолчанию равно true, что означает, что диапазоны контрольных точек будут оптимизированы, если это возможно.
max_page_search_size
(Необязательно, целое число) Определяет начальный размер страницы для составного агрегирования для каждой контрольной точки. При возникновении исключений разрыва цепи размер страницы динамически корректируется до меньшего значения. Минимальное значение равно 10, максимальное — 65,536. Значение по умолчанию равно 500.
source

(Необязательно, объект) Источник данных для преобразования.

Свойства source
index

(Обязательно, строка или массив) Исходные индексы для преобразования. Это может быть один индекс, шаблон индекса (например, "my-index-*"), массив индексов (например, ["my-index-000001", "my-index-000002"]) или массив шаблонов индексов (например, ["my-index-*", "my-other-index-*"]). Для удаленных индексов используйте синтаксис "remote_name:index_name".

Если какие-либо индексы находятся в удаленных кластерах, у узла мастера и по крайней мере одного узла преобразования должен быть роль узла remote_cluster_client.

query
(Необязательно, объект) Предложение запроса, которое извлекает подмножество данных из исходного индекса. См. Query DSL.
sync

(Необязательно, объект) Определяет свойства, необходимые преобразованиям для непрерывной работы.

Вы можете обновить эти свойства только если это непрерывное преобразование. Вы не можете изменить пакетное преобразование на непрерывное или наоборот. Вместо этого клонируйте преобразование в Kibana и добавьте или удалите свойство sync.

Свойства sync
time

(Обязательно, объект) Указывает, что преобразование использует поле времени для синхронизации исходных и целевых индексов.

Свойства time
delay
(Необязательно, единицы времени) Задержка во времени между текущим временем и временем последних входных данных. Значение по умолчанию — 60s.
field

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

В целом, рекомендуется использовать поле, содержащее временную метку инжеста. Если вы используете другое поле, вам может потребоваться установить delay таким образом, чтобы он учитывал задержки при передаче данных.

Примеры

POST _transform/simple-kibana-ecomm-pivot/_update
{
  "source": {
    "index": "kibana_sample_data_ecommerce",
    "query": {
      "term": {
        "geoip.continent_name": {
          "value": "Asia"
        }
      }
    }
  },
  "description": "Maximum priced ecommerce data by customer_id in Asia",
  "dest": {
    "index": "kibana_sample_data_ecommerce_transform_v2",
    "pipeline": "add_timestamp_pipeline"
  },
  "frequency": "15m",
  "sync": {
    "time": {
      "field": "order_date",
      "delay": "120s"
    }
  }
}

При обновлении преобразования вы получите обновлённую конфигурацию:

{
  "id": "simple-kibana-ecomm-pivot",
  "source": {
    "index": ["kibana_sample_data_ecommerce"],
    "query": {
      "term": {
        "geoip.continent_name": {
          "value": "Asia"
        }
      }
    }
  },
  "pivot": {
    "group_by": {
      "customer_id": {
        "terms": {
          "field": "customer_id"
        }
      }
    },
    "aggregations": {
      "max_price": {
        "max": {
          "field": "taxful_total_price"
        }
      }
    }
  },
  "description": "Maximum priced ecommerce data by customer_id in Asia",
  "dest": {
    "index": "kibana_sample_data_ecommerce_transform_v2",
    "pipeline": "add_timestamp_pipeline"
  },
  "frequency": "15m",
  "sync": {
    "time": {
      "field": "order_date",
      "delay": "120s"
    }
  },
  "settings": { },
  "version": "7.5.0",
  "create_time": 1518808660505
}

© 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/update-transform.html

Spec-Zone.ru

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