Операция архивации ревизий (archivevistorydatajob)
Операция предназначена для изоляции (архивации) устаревших ревизий записей, связей и классификаций. Под устаревшими понимаются ревизии, которые не влияют на вычисляемый эталон на текущую дату (на таймлайне обновления записи) или на любую дату на таймлайне периодов актуальности.
Основные цели:
Повышение производительности получения актуального вида записи (вычисления эталона) за счет уменьшения количества обрабатываемых ревизий.
Возможность раздельного хранения актуальных и архивных ревизий, что снижает занимаемое дисковое пространство в основном хранилище.
Предупреждение
Операция отключена по умолчанию и не будет запускаться, если не сконфигурировано хранилище для архивированных ревизий и при этом не включена опция "Удалять ревизии вместо архивирования".
Параметры операции
Настройка операции выполняется через файл backend.properties. Часть параметров доступна для просмотра и изменения в интерфейсе (раздел "Параметры системы").
Параметры операции
Отключение операции (флаг)
Ключ:
com.universe.mdm.hpe.job.archive.vistory.data.disabledЗначение по умолчанию:
trueЕсли флаг установлен в
false, операция становится активной. Доступно редактирование через UI.
Cron-выражение запуска операции
Ключ:
com.universe.mdm.hpe.job.archive.vistory.data.cronexЗначение по умолчанию:
0 0 0 * * ?(каждый день в полночь)Недоступно для редактирования через UI, но можно увидеть значение.
Размер блока операции
Ключ:
com.universe.mdm.hpe.job.archive.vistory.data.block.sizeЗначение по умолчанию:
4000Количество записей/связей/классификаций, обрабатываемых за одну итерацию. Доступно редактирование через UI.
Количество ревизий, записываемых одним коммитом
Ключ:
com.universe.mdm.hpe.job.archive.vistory.data.commit.intervalЗначение по умолчанию:
1024Количество ревизий, которые переносятся в архив и удаляются из основных таблиц в рамках одной транзакции. Недоступно в UI.
Количество потоков выполнения на одном узле
Ключ:
com.universe.mdm.hpe.job.archive.vistory.data.threadsЗначение по умолчанию:
1Недоступно в UI.
Число ревизий, сверх которого ревизии будут архивированы
Ключ:
com.universe.mdm.hpe.job.archive.vistory.data.max.revisionsЗначение по умолчанию:
3Максимальное количество ревизий, оставляемых в основных таблицах для каждого ориджина (исходной записи/связи/классификации). Если у записи несколько периодов актуальности, общее количество ревизий может превысить заданное значение. Доступно редактирование через UI.
Узлы хранения архивированных ревизий
Ключ:
com.universe.mdm.hpe.job.archive.vistory.data.nodesЗначение по умолчанию: не задано (пример:
0:node0:postgres@#[пароль]:postgres@postgres-mdm:5432)Конфигурация подключения к базе данных для хранения архивных ревизий (формат аналогичен
org.unidata.mdm.data.nodes). Если параметр не задан, операция не запускается (если также не включена опция удаления вместо архивирования).
Удалять ревизии вместо архивирования (флаг)
Ключ:
com.universe.mdm.hpe.job.archive.vistory.data.truncateЗначение по умолчанию:
falseЕсли флаг включен, ревизии не переносятся в архив, а безвозвратно удаляются. Доступно редактирование через UI.
Параметры пула соединений для архива данных
Минимальное количество соединений:
com.universe.mdm.hpe.job.archive.vistory.data.nodes.minPoolSize = 1Максимальное количество соединений:
com.universe.mdm.hpe.job.archive.vistory.data.nodes.maxPoolSize = 4
Параметры пула соединений для архива классификаций
Минимальное количество соединений:
com.universe.mdm.hpe.job.archive.vistory.classifiers.nodes.minPoolSize = 1Максимальное количество соединений:
com.universe.mdm.hpe.job.archive.vistory.classifiers.nodes.maxPoolSize = 4
Примечания:
Параметры
commit.interval,threads, а также настройки пулов соединений недоступны для изменения через UI и могут быть сконфигурированы только вbackend.properties. Остальные параметры (disabled,cronex,block.size,max.revisions,truncate) отображаются в разделе "Параметры системы" и могут быть изменены через интерфейс.
Подготовка к запуску
Убедитесь, что параметр
com.universe.mdm.hpe.job.archive.vistory.data.disabledустановлен вfalse.При необходимости настройте CRON-выражение для желаемой периодичности (рекомендуется не чаще раза в неделю, оптимально – раз в месяц).
Обязательно укажите корректное значение параметра
com.universe.mdm.hpe.job.archive.vistory.data.nodes– адрес базы данных для хранения архивных ревизий. Если этого не сделать, операция не запустится (если также не включена опцияtruncate).Укажите количество потоков (
threads) и размер блока (block.size) в соответствии с нагрузкой на систему. Увеличение потоков может ускорить архивацию, но повысит потребление ресурсов.Задайте значение
max.revisions– сколько последних ревизий должно оставаться в основных таблицах. Обратите внимание, что это значение применяется к каждому ориджину отдельно; если у записи несколько периодов актуальности, общее количество ревизий может превышать заданное.При необходимости включите опцию
truncate, если требуется не архивировать, а безвозвратно удалять старые ревизии. Это действие необратимо!Проверьте корректность настроек в разделе Параметры системы.
Перезапустите сервер приложений для применения изменений в
backend.properties.
После запуска операции статус ее выполнения можно отслеживать в логах MDM на узле, где выполнялась задача, а также в системной таблице batch_job_execution. Архивированные ревизии будут размещены в схеме, указанной в параметре nodes (по умолчанию com_universe_mdm_hpe_job_archive_vistory_data для данных и com_universe_mdm_hpe_job_archive_vistory_classifiers для классификаций).
Важные ограничения и рекомендации
Операция не запускается автоматически, если не сконфигурировано хранилище для архива и не включена опция
truncate.Включение опции
truncateприводит к полной потере архивируемых ревизий. Восстановить историю записи для дат, попадающих в удалённый диапазон, будет невозможно.Если операция отключена через UI или параметр
disabled, она не будет выполняться, даже если настроено хранилище архива.Архив ревизий поддерживает шардирование - конфигурация шардов должна совпадать с конфигурацией актуального хранилища (параметр
org.unidata.mdm.data.shards). При первом запуске с указанием архива убедитесь, что значениеshards_numberв БД (таблицаorg_unidata_mdm_data.cluster_info) совпадает с передаваемым в параметрах шардирования.Рекомендуется запускать операцию в периоды минимальной нагрузки на систему, так как она создает дополнительную нагрузку на базу данных и дисковую подсистему.
Статус выполнения операции в реальном времени не отображается в UI; для контроля используйте журналы приложения.