среда, 28 сентября 2011 г.

Использование утилит Oracle Data Integrator.

Сентябрь еще на дворе, а в нашей профессии без постоянного изучения чего-нибудь нового - никуда. Поэтому сегодня будет перевод части документации из файла Tools Reference Guide посвященной командам ODI.


Использование утилит Oracle Data Integrator.

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

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

Добавление вызова утилиты в пакет:
  1. Откройте пакет и перейдите на вкладку Diagram.
  2. Если окошко с утилитами не отображается - нажмите на иконку.
  3. Выберите необходимую утилиту из общего списка, или найдите нужную команду в соответствующей группе.
  4. Кликните на названии утилиты, а затем на пустом месте на диаграмме пакета.
  5. После выбора нужных утилит закройте окно с утилитами или просто выберите инструмент Free choice.
  6. На вкладке свойств можно установить параметры с которыми будет вызываться выбранная утилита.
  7. Сохраните внесенные изменения.


Возможна организация потока выполнения нескольких команд в зависимости от результата (успешное или неуспешное выполнение) текущей команды.

Примеры:
Отправка почты из ODI или Как установить параметры вызова сценария через команду.

Использование в процедурах и модулях знаний:
  1. Откройте существующий или создайте новый шаг в процедуре или модуле знаний.
  2. Во вкладке Target для шага выберите технологию Sunopsis API.
  3. Откройте редактор выражений и введите команду. Редактор выражений будет показывать подсказки по параметрам.
  4. Установите уровень логирования для шага процедуры с вызовом утилиты и поставьте признак игнорирования ошибок, если вы хотите чтобы при ошибках в утилитах выполнение процедуры не останавливалось
  5. Сохраните внесенные изменения.

Примечание. Возможно использование команд ODI как на источнике (вкладка Source), так и на приемнике (вкладка Target).
Примечание. Технология Sunopsis API не поддерживает опции транзакций или опцию Commit.



Вызов утилит из командной строки:
  1. Запустите командную строку (Unix SHELL, Windows command prompt и т.п.).
  2. Перейдите в поддиректорию bin, той директории, где установлен Oracle Data Integrator.
  3. Запустите startcmd.bat (на Windows) или startcmd.sh (Unix) с такими параметрами:
startcmd <команда> [<параметры>]*

Внимание! На платформе Windows необходимо обрамлять аргументы содержащие знак равно (=) или пробелы при помощи двойных кавычек. Таким образом, вызовы команд могут немного отличаться в Windows и Unix.
Внимание! Наименование команды регистрозависимо.


Пример:
startcmd.bat OdiSleep "-DELAY=5000" (Windows) 
./call startcmd.sh OdiSleep -DELAY=5000 (UNIX)

Расширенное использование утилит ODI.
Существует возможность прямого использования в параметрах вызова команд ODI переменных, последовательностей, вызовов ODI API или результатов запроса (Select).

Переменные и последовательности.
Использовать переменные или последовательности в командах достаточно просто. Вы можете указать полное наименование переменной в формате #Код_Проекта.Наименование_Переменной в том месте команды, где необходимо использовать значение переменной или последовательности.

Нет необходимости обрамлять наименование кавычками. При использовании редактора выражений указание наименования проекта или слова Global для глобальных переменных также не обязательно.

Пример:
OdiOutFile -FILE=/temp/testsequence.txt 
Значение (следующее) последовательности: #SEQ01_NEXTVAL, значение переменной: #VAR01

Вызовы Oracle Data Integrator API.
Методы API используются для генерации кода из метаданных, хранящихся в репозитории. Далее результаты этой генерации могут быть использованы в командах ODI.

Примечание: Доступность вызовов методов API зависит от места использования команд ODI. Например, метод getOption, используемый для получения опций процедуры или модуля знаний не имеет смысла использовать как шаг пакета.


Пример:
OdiOutFile -FILE=/temp/testoption.txt Опция модуля знаний под названием MY_KM_OPTION имеет следующее значение: <%=odiRef.getOption( "MY_KM_OPTION" )%>

Использование результатов запроса (Select).
При разработке модуля знаний или шага процедуры, есть возможность определить для вкладки Source некое SQL SELECT выражение (для технологий, имеющих возможности использования языка запросов SQL), а затем на вкладке Target использовать результаты этого SELECT-а (для технологии Sunopsis API).
Смотри, например, как организовано получение наименования схемы (каталога) БД в заметке Сбор статистики для таблиц MS SQL Server.

Для каждой строки, возвращенной выражением SELECT, будет выполнен запуск команды ODI. Значения колонок, возвращаемых селектом, можно использовать как фактические параметры команды ODI. Для этого необходимо поставить перед именем колонки префикс #. Далее, в процессе выполнения, вместо имени колонки будет подставлено ee значение.

Примечание: При использовании алиасов для колонок, необходимо в команду передавать именно наименование алиаса вместе с префиксом.

Пример:
Source Command (Oracle): 
select COUNTRY_NAME, POPULATION/1000 as POP_SMALL from COUNTRY 

Target Command (Sunopsis API): 
OdiOutFile -FILE=/temp/testsequence.txt 
В стране #COUNTRY_NAME около #POP_SMALL тысяч жителей.

Что есть интересного помимо документации по этому поводу? Например, вот что нашлось в самом главном файле startcmd.bat, который запускает команды ODI.


  • Список команд, который выполняются с использованием информации из файла odiparams: SnpsExportObject SnpsReinitializeSeq SnpsExportScen SnpsGenerateAllScen SnpsDeleteScen SnpsImportScen SnpsPingAgent SnpsPurgeLog SnpsReverseGetMetaData SnpsReverseResetTable SnpsReverseSetMetaData SnpsStartScen SnpsWaitForChildSession
  • такие же, но с префиксом odi.
  • Команда, которая выполняется без параметров настройки всего одна - SnpsImportObject

Ну а дальше происходит вызов Java и вызывается конкретный класс вместе с параметрами:
%ODI_JAVA_START% com.sunopsis.dwg.tools.%*

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

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