
Можно указать дату-время начала и дату-время окончания сессий, контекст, наименование агента, состояние сессий (допустимы значения D-done, E-error, M-warning), имя пользователя, от которого запущена сессия, фильтр для наименований сессий на удаление и удаление отчетов сессий.
Примерно тот же набор параметров доступен для указания, если проводить удаление непосредственно из Оператора:

Данный вариант очистки логов больше подходит для массовой очистки устаревших логов администратором. Что делать, если необходимо удалить логи точечно, например, убрать лог, относящийся к определенной родительской сессии? Такая задача может возникнуть при выполнении некоторых повторяющихся проверок, не относящихся к самому процессу загрузки и преобразования данных, при этом каждая проверка будет оставлять лог своего запуска в списке дочерних сессий.
Для такого удаления предлагаю следующий алгоритм действий.
1. Настраиваем контекст для доступа к рабочему репозитарию, где и хранятся логи выполнения сессий ODI.
2. Делаем процедуру, которая убирает предыдущие запуски и добавляем ее в пакет, лог выполнения которого необходимо убрать.
3. В процедуру добавляем 2 параметра:
PARENT_SESSION_ID - номер родительской сессии;
CHILD_SESSION_NAME - наименование сессии для удаления.
4. Создаем новый шаг выполнения в процедуре и переходим на закладку "Command on Source" где добавляем примерно такой код:

который выбирает из нужной схемы БД из таблицы сессий идентификатор сессии, завершившейся успешно, которая имеет заданное наименование и приналежит заданной родительской сессии.
5. В закладке Command on Target выполняем удаление из таблиц данных, принадлежащих к выбранной в 4 шаге сессии:

6. И в команде, выполняющейся на источнике, и в команде, выполняющейся на приемнике, используется технология Oracle, схема указывает на схему, где хранятся данные рабочего репозитория ODI.
7. Далее, в пакете, просто вызываем эту процедуру, которой передаем номер родительской сессии и текущее наименование сессии через параметры:
8. Общая схема работы такого решения будет следующая. Есть главный сценарий, который периодически запускает сценарий неких проверок. При этом из главного сценария передается, через переменную, значение номера сессии в дочерний сценарий. Дочерний сценарий запускает процедуру очистки своих предыдущих запусков, а затем выполняет необходимые проверки и заканчивает свою работу.
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.