Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Сводка или преобразование данных ›Преобразование данных

Обзор преобразований

Вы можете выбрать один из следующих методов преобразования данных: pivot или latest.

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

Преобразования — это постоянные задачи; они хранятся в состоянии кластера, что обеспечивает устойчивость к отказам узлов. Дополнительные сведения о механизме работы преобразований можно найти в разделах Как работают контрольные точки и Обработка ошибок.

Преобразования pivot

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

Многие индексы Elasticsearch организованы как поток событий: каждое событие — это отдельный документ, например, отдельная покупка товара. Преобразования позволяют обобщить эти данные, представив их в более упорядоченном и удобном для анализа формате. Например, можно обобщить все покупки одного клиента.

Преобразования позволяют определять pivot, который представляет собой набор атрибутов, преобразующих индекс в другой, более понятный формат. Результатом преобразования pivot является сводка данных в новом индексе.

Для определения pivot необходимо сначала выбрать одно или несколько полей, которые будут использоваться для группировки данных. Можно выбирать категориальные поля (terms) и числовые поля для группировки. Если используются числовые поля, значения поля группируются с использованием заданного интервала.

На втором шаге необходимо определить, как вы хотите агрегировать сгруппированные данные. При использовании агрегаций вы фактически задаете вопросы об индексе. Существуют различные типы агрегаций, каждый со своим назначением и выводом. Дополнительные сведения о поддерживаемых агрегациях и полях группировки см. в разделе Создание преобразования.

В качестве дополнительного шага можно также добавить запрос для дальнейшего ограничения области агрегации.

Преобразование выполняет составную агрегацию, которая страницирует все данные, определенные запросом исходного индекса. Результат агрегации хранится в индексе назначения. Каждый раз, когда преобразование запрашивает исходный индекс, создается контрольная точка. Вы можете определить, хотите ли вы, чтобы преобразование выполнялось один раз или непрерывно. Преобразование по партиям — это однократная операция с одной контрольной точкой. Непрерывные преобразования постоянно увеличивают и обрабатывают контрольные точки по мере поступления новых исходных данных.

Представьте, что у вас интернет-магазин одежды. Каждый заказ создает документ, содержащий уникальный идентификатор заказа, название и категорию заказанного товара, его цену, количество, точную дату заказа и некоторые данные о клиенте (имя, пол, местоположение и т. д.). Ваш набор данных содержит все транзакции за последний год.

Если вы хотите проверить продажи по разным категориям в последнем финансовом году, определите преобразование, которое группирует данные по категориям товаров (женская обувь, мужская одежда и т. д.) и дате заказа. Используйте последний год как интервал для даты заказа. Затем добавьте агрегацию суммирования по количеству заказанных товаров. Результатом является индекс, ориентированный на сущности, который показывает количество проданных товаров в каждой категории товаров за последний год.

Example of a pivot transform preview in Kibana

Преобразования latest

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

Example of a latest transform preview in Kibana

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

Соображения по производительности

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

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

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

Если вы предпочитаете распределить воздействие на кластер (за счет более медленного преобразования), вы можете ограничить скорость выполнения запросов поиска и индексирования. Установите ограничение docs_per_second при создании или обновлении преобразования создания или обновления. Если вы хотите вычислить текущую скорость, используйте следующую информацию из API получения статистики преобразования:

documents_processed / search_time_in_ms * 1000

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

Spec-Zone.ru

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