среда, 8 декабря 2010 г.

Как создать workfow в ODI или что такое пакет?

Приветствую.

Недавно на одном из форумов был задан вопрос, как в Oracle Data Integrator построить Workflow так, как это делается в Oracle Warehouse Builder с его processflow.

Я не знаком достаточно с OWB, но, по ответам на форуме, понял, что имеется ввиду. Рассматривать поток обработки данных, способ организации этого потока в Oracle Data Integrator можно с нескольких позиций.

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

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

Итак, как же в ODI огранизовать процесс загрузки данных в таблицу, если перед загрузкой и после нее необходимо сделать некоторые дополнительные действия?

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

Далее определяем список дополнительных действий и реализовываем его через переменные (чтение параметров или получение идентификаторов из БД) и процедуры.

Далее оформляем workflow в виде пакета. Перетаскиваем из дерева проекта необходимые переменные, процедуры и интерфейс на вкладку Diagram.


Добавляя в диаграму пакета эти элементы мы фактически добавляем не сами элементы, а ссылки на них. Таким образом, если сделать двойной щелчок на элементе мы откроем для редактирования оригинальный объект.


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

Задать первый шаг пакета можно через контекстное меню для того элемента, который необходимо сделать стартовым:


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


Другие особенности работы с окном редактирования диаграммы пакета описаны здесь.

Далее, чтобы загрузить данные в несколько таблиц, необходимо для каждой такой таблицы разработать интерфейс, а затем все эти интерфейсы последовательно вызвать из пакета:


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

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

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


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

Другие примеры построения workflow можно найти в этих заметках:

Продолжение следует...

Комментариев нет:

Отправить комментарий