пятница, 18 марта 2011 г.

oracle data integrator - внутренности репозитория-мастера

запрос, чтобы понять где хранятся url-ы соединения с БД и рабочим репозиторием
SELECT
SNP_CONNECT.CON_NAME      AS DATA_SERVER,
SNP_CONNECT.JAVA_DRIVER   AS DRIVER_INFO,
SNP_MTXT_PART.TXT         AS URL
from
SNP_CONNECT
LEFT OUTER JOIN SNP_MTXT_PART ON SNP_MTXT_PART.I_TXT=SNP_CONNECT.I_TXT_JAVA_URL
WHERE SNP_CONNECT.CON_NAME IS NOT NULL

более развернутый запрос тут: http://odiexperts.com/odi-topology-connection-detail

вторник, 15 марта 2011 г.

oracle data integrator - как самому написать LKM

http://odiexperts.com/procedures-or-km-steps-source-and-target-tabs
немного перевода, пример создания LKM по ссылке
При создании КМ речь идет о двух закладках с процедурами (каждый шаг процедуры в КМ) -
1. закладка для работы на стороне источника Source Tab
2. закладка для работы на стороне получателя (цели) Target Tab

Т.к. в интерфейсе так же есть таблицы источника и цели, то ассоциации между КМ и интерфейсом очевидны. Различия в следующем:
- в интерфейсе: таблицы источника и цели генерятся, при этом КМ должен определить, каким образом ему нужно получить данные из таблиц источника и перенести их в целевую таблицу, в несколько этапов.
- В блоках с процедурами в КМ: в каждой закладке свои отдельные команды, определенные  технологиями источника и цели.
Напоследок перед примером пояснение:
Наиболее интересной и мощной особенностью этих закладок является следующее свойство:
Когда SQL-запрос выполнится на стороне источника, то код, описанный на стороне цели, будет выполнен для каждой строки результата SQL-запроса источника.

Далее приведен пример классического взаимодействия источника и цели. После создания C$ (кстати, что это?), LKM применяет к каждой строке источника запрос вставки записи в таблицу цели. Реализовано командами метадаты, который корректно сформирует запрос, в зависимости от технологий. Кодогенератором выступает Агент.
Автор считает, что приведеный пример ЛКМ применим для Postgres.

осталось понять, в какой момент подхватывается дблинк, если необходимо применить ЛКМ для переноса данных между серверами.