понедельник, 8 ноября 2010 г.

Что такое модули знаний ODI.

Недавно получил письмо от коллеги, с просьбой помочь разобраться с тем, как работают модули знаний в ODI. Я постарался ему ответить, а для блога подготовил вольный перевод одной части файла документации odi_km_dev_guide v1.3.pdf, посвященной как раз модулям знаний.

Что такое модуль знаний?
Модуль знаний - это шаблон построения подпрограммы. Каждый модуль знаний, как и процедура, состоит из одного или более шагов. Каждый шаг модуля знаний может запускать команды определенной технологии, из тех технологий, которые поддерживает ODI.

Так как модуль знаний это шаблон, то наполнение этих шаблонов реальными данными производится из деклараций и метаданных ODI. Наполнение реальными данными осуществляется с помощью так называемых методов подстановки (ODI substitution methods).

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

INSERT INTO дай_наименование_целевой_таблицы
SELECT дай_перечень_колонок_источников
FROM дай_список_фром
WHERE 1 = 1 AND дай_перечень_фильтров


Где дай_что-то - это как раз вызов методов подстановки. Эти методы исходя из того, что находится в интерфейсе, как раз и замещают вызовы функций подстановки на результирующие строки.



пример в виде снимка экрана

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

Дальше уже работает модуль знаний, который эти данные совмещает с шаблоном необходимых шагов и формирует последовательность команд, которые выполняются агентом на нужном сервере СУБД.

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

В 10 версии ODI все модули знаний делятся на такие 6 категорий:


Модуль реверса (Reverse-engineering, RKM)
Используется для загрузки метаданных в репозиторий ODI. Используется при работе с моделями данных.

Модуль проверки (Check KM, CKM)
Используется для проверки ограничений целостности. Используется в моделях и серверах данных для проверки целостности, а также в интерфейсах для контроля измененных данных или статических проверок данных.

Модуль загрузки (Loading KM, LKM)
Используется для загрузки данных из гетерогенных источников в стейдж. Например, для загрузки данных из таблиц, файлов, мейнфреймов и т.п. Используется в интерфейсах, в которых есть модели из разных систем-источников.

Модуль интеграции (Integration KM, IKM)
Используется для загрузки (интеграции) данных из стейджа в целевые таблицы. Применяется для интерфейсов.

Модуль журнализации (Journalizing KM, JKM)
Используется для создания журнала изменений в таблицах или БД источников (добавление, изменение и удаление данных).

Сервисный модуль (Service KM, SKM)
Генерирует веб-сервисы для обработки данных. Используется в моделях и серверах данных.

Одни и те же модули знаний используются во множестве интерфейсов. Таким образом, чтобы изменить алгоритм работы в сотнях задач, реализованных на самописных ETL скриптах или сохраненных процедурах, разработчику понадобится вручную модифицировать все эти скрипты. В противоположность этому, использование модулей знаний позволяет сделать изменения в одном месте, что приведет к изменениям во всех местах, где эти модули знаний используются.
Модуль знаний решает некоторую общую задачу, и, правильно написанный, не включает в себя обращений к физическому серверу БД, конкретной таблице или колонке.

Модули знаний не могут быть исполнены сами по себе. Они работают как составная часть интерфейсов или моделей ODI.

В составе ODI поставляется более 100 готовых к использованию модулей знаний.

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

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

Примечание. Отправлять комментарии могут только участники этого блога.