Операция переиндексации (reindexDataJob)

Операция переиндексации данных предназначена для запуска индексации поисковой системы при значимых изменениях в структуре записей или при добавлении новых данных. Индексированные данные ускоряют поиск и отображаются в интерфейсе пользователя.

Операция запускает процесс индексации Openearch и OrientDB при значимых изменениях в структуре записей с целью ускорения поиска.

По условиям лицензирования у операции reindexDataJob может быть отключена многопоточность. В таком случае операция будет запускаться только на одном узле кластера.

Параметры операции

  • Имя пользователя – логин учетной записи. Определяет, с правами какой учетной записи будет запускаться операция. Если поле пустое, то при запуске по Cron-выражению у операции будут полные права на любой тип актива/справочник; при запуске через интерфейс у операции будут права текущей учетной записи. Для учетной записи оператора данных может понадобиться настроить права на тип активы/справочники.

  • Размер блока – размер блока загружаемых данных, по умолчанию = 1024.

Секция "Индексация активов":

  • Проиндексировать черновики – флаг переиндексации черновиков;

  • Проиндексировать связи – флаг переиндексации связей;

  • Проиндексировать активы – флаг переиндексации данных активов;

  • Не создавать стандартный отчет - флаг отвечает за создание стандартного отчета в уведомлениях о количестве переиндексированных активов после завершения операции;

  • Пересчитать популярность - флаг переиндексации популярности записей;

  • Обновить маппинги – параметр, обновляющий маппинги в Opensearch;

  • Очищать индексы – параметр, очищающий индексы Opensearch, а также индексы результатов запусков сканеров;

  • Обновить маппинги графа – флаг переиндексации графов связей;

  • Очищать граф – параметр, очищающий графы связей;

  • Обновить индексы – флаг обновления индексов активов;

  • Обновить граф – флаг обновления графа.

Секция "Индексация бизнес-процессов":

  • Обновить маппинги – параметр, обновляющий маппинги бизнес-процессов в Opensearch.

  • Очищать индексы – параметр, очищающий индексы бизнес-процессов в Opensearch.

  • Проиндексировать данные бизнес-процессов — флаг переиндексации бизнес-процессов, а также активных и завершенных задач, переменных, комментариев и вложений.

  • Проиндексировать бизнес-процессы — позволяет выбрать бизнес-процессы, данные которых будут переиндексированы. Параметр активен, если включен флаг "Проиндексировать данные бизнес-процессов".

Секция "Индексация черновиков":

  • Обновить маппинги – параметр, обновляющий маппинги черновиков активов в Opensearch.

  • Очищать индексы – параметр, очищающий индексы черновиков активов в Opensearch.

  • Проиндексировать черновики – параметр, обновляющий информацию обо всех черновиках активов.

Секция "Индексация модели справочников":

  • Обновить маппинги – параметр, обновляющий маппинги модели справочников в Opensearch.

  • Очищать индексы – параметр, очищающий индексы модели справочников в Opensearch.

  • Проиндексировать модель справочников - флаг переиндексации модели справочников.

Секция "Индексация справочников":

  • Проиндексировать объекты модели – справочники, для которых будет выполнена переиндексация (доступен выбор нескольких). По умолчанию установлено значение "Все справочники".

  • Обновить маппинги – параметр, обновляющий маппинги справочников в Opensearch.

  • Очищать индексы – параметр, очищающий индексы справочников в Opensearch.

  • Не создавать стандартный отчет – параметр отвечает за создание стандартного отчета в уведомлениях о количестве переиндексированных справочников после завершения операции.

  • Проиндексировать справочники - флаг переиндексации данных справочников.

  • Писать лог ошибок – параметр, записывающий ошибки в лог.

  • Обработать лог ошибок – параметр, определяющий, будут ли браться данные из лога ошибок.

  • Проиндексировать черновики – параметр, обновляющий информацию обо всех черновиках справочников.

Когда применяется

Операция запускается в случаях:

Периодичность запуска определяется администратором системы с учетом рабочих задач по обслуживанию Юниверс DG.

Лог ошибок

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

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

В случае, если необходимо переиндексировать большие данные:

  • сперва запускается операция с Писать лог ошибок.

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

Также при больших данных можно отключать параметры Очищать индексы и Обновить маппинги.

Механизм работы параметра "Размер блока" (blockSize)

Все количество обрабатываемых записей делится на части по blockSize записей.

Затем в каждой части обрабатывается одним тредом по org.unidata.mdm.job.reindex.data.commit.interval записей (в памяти держится информация по этому количеству записей, при переходе к следующим записям память очищается), пока не кончатся записи.

Параметр org.unidata.mdm.job.reindex.data.commit.interval, как правило, не нуждается в редактировании. Рекомендуемого значения 1000 достаточно для большинства задач. Чем больше этот параметр, тем больше памяти может быть занято в один момент времени. Если этот параметр больше, чем blockSize, то фактически этот параметр будет равен blockSize.

org.unidata.mdm.job.reindex.data.reindex.threads - количество одновременно обрабатываемых тредов.

Параметры org.unidata.mdm.job.reindex.data.commit.interval и org.unidata.mdm.job.reindex.data.reindex.threads задаются в backend.properties.

Таким образом, следует выбирать org.unidata.mdm.job.reindex.data.reindex.threads по количеству логических ядер процессора (использовать равное или меньшее число, в зависимости от наличия другой нагрузки на процессор).

При указании небольшого blockSize легче отслеживать прогресс операции через UI (менеджер запусков > выбрать запуск > количество выполненных шагов).

Также blockSize необходимо выбирать в соответствии с общим количеством данных чтобы количество партиций не было слишком большим. На таких больших данных, как в справочнике с адресами, оптимальным вариантом является 500-2000 партиций.

Обработка данных происходит последовательно: активы > связи > справочники > бизнес-процессы. Сначала завершается обработка одного типа данных, затем происходит переход к другому. Обрабатываются те типы данных, которые есть в наличии.