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

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

Справочник по новым API

Для получения самых свежих данных об API обратитесь к API преобразований.

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

Запрос

POST _transform/<transform_id>/_update

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

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

  • cluster: manage_transform (роль transform_admin предоставляет эту привилегию)
  • source indices: read, view_index_metadata
  • destination index: read, index. Если настроена retention_policy, также требуется привилегия на индекс delete.

Описание

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

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

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

  • Ваше преобразование запоминает роли пользователя, который его обновил в момент обновления, и выполняется с этими привилегиями. Если вы предоставляете заголовки вторичной авторизации, вместо этого используются данные этих учетных данных.
  • Для обновления преобразования необходимо использовать Kibana или этот API. Прямое обновление внутренних, системных или скрытых индексов преобразования не поддерживается и может привести к постоянной ошибке.

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

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

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

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

Тело запроса

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

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

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

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

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

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

Индекс назначения добавляется к псевдонимам независимо от того, был ли индекс назначения создан преобразованием или был предварительно создан пользователем.

+ Свойства aliases

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

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

Свойства retention_policy
time

(Обязательно, объект) Указывает, что преобразование использует поле времени для установки политики хранения. Данные удаляются, если time.field для политики хранения существует и содержит данные, старше max.age.

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

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

Свойства settings
align_checkpoints
(Необязательно, булево) Указывает, следует ли оптимизировать диапазоны контрольных точек преобразования для производительности. Такая оптимизация может выровнять диапазоны контрольных точек с интервалом гистограммы дат, когда гистограмма дат указана как исходный групповой источник в конфигурации преобразования. В результате выполняется меньше обновлений документов в индексе назначения, что повышает общую производительность. Значение по умолчанию — true, что означает, что диапазоны контрольных точек будут оптимизированы, если это возможно.
dates_as_epoch_millis
(Необязательно, булево) Определяет, должны ли даты в выводе записываться как строка в формате ISO (по умолчанию) или как миллисекунды с начала эпохи. epoch_millis был значением по умолчанию для преобразований, созданных до версии 7.11. Для совместимого вывода установите это значение в true. Значение по умолчанию — false.
deduce_mappings
(Необязательно, булево) Указывает, следует ли преобразованию выводить отображения индекса назначения из конфигурации преобразования. Значение по умолчанию — true, что означает, что отображения индекса назначения будут выведены, если это возможно.
docs_per_second
(Необязательно, число с плавающей точкой) Указывает ограничение на количество входных документов в секунду. Этот параметр регулирует преобразование путём добавления времени ожидания между запросами поиска. Значение по умолчанию — null, что отключает регулирование.
max_page_search_size
(Необязательно, целое число) Определяет начальный размер страницы для составной агрегации для каждой контрольной точки. При возникновении исключений блокировки цепи размер страницы динамически корректируется до меньшего значения. Минимальное значение — 10, максимальное — 65,536. Значение по умолчанию — 500.
num_failure_retries
(Необязательно, целое число) Определяет количество повторов при возникновении исправимой ошибки, прежде чем задача преобразования будет помечена как failed. Минимальное значение — 0, максимальное — 100. -1 может использоваться для обозначения бесконечности. В этом случае преобразование никогда не прекращает попытки повтора исправимой ошибки. Значение по умолчанию — параметр кластера num_transform_failure_retries.
unattended
(Необязательно, булево) Если true, преобразование выполняется в автономном режиме. В автономном режиме преобразование повторяет попытки неопределённое количество раз в случае ошибки, что означает, что преобразование никогда не завершается с ошибкой. Установка количества повторов, отличного от бесконечного, приводит к ошибкам при валидации. Значение по умолчанию — false.
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 таким образом, чтобы он учитывал задержки передачи данных.

Примеры

resp = client.transform.update_transform(
    transform_id="simple-kibana-ecomm-pivot",
    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"
        }
    },
)
print(resp)
response = client.transform.update_transform(
  transform_id: 'simple-kibana-ecomm-pivot',
  body: {
    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'
      }
    }
  }
)
puts response
const response = await client.transform.updateTransform({
  transform_id: "simple-kibana-ecomm-pivot",
  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",
    },
  },
});
console.log(response);
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",
  "authorization" : {
    "roles" : [
      "superuser"
    ]
  },
  "version" : "8.4.0",
  "create_time" : 1656113450613,
  "source" : {
    "index" : [
      "kibana_sample_data_ecommerce"
    ],
    "query" : {
      "term" : {
        "geoip.continent_name" : {
          "value" : "Asia"
        }
      }
    }
  },
  "dest" : {
    "index" : "kibana_sample_data_ecommerce_transform_v2",
    "pipeline" : "add_timestamp_pipeline"
  },
  "frequency" : "15m",
  "sync" : {
    "time" : {
      "field" : "order_date",
      "delay" : "120s"
    }
  },
  "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",
  "settings" : { }
}

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

Spec-Zone.ru

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