вторник, 23 ноября 2010 г.

Типология интерфейсов (Interface Typology)

Перевод очередной части файла документации snps_users.pdf, посвященный описанию различных категорий интерфейсов. Этот раздел показался мне достаточно любопытным, чтобы сделать его перевод. Сильной стороной ODI как раз и является возможность достаточно быстрого и простого перевода интерфейсов из одной категории в другую с помощью модулей знаний.


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

Разовые интерфейсы (One Shot interfaces)
Такие интерфейсы запускаются только один раз. Например, для начальной инициализации данных в ХД или при миграции с одного приложения на другое.

Интерфесы связи (Link interfaces)
Такие интерфейсы связывают на постоянной основе два различных приложения, и запускаются достаточно часто.

Асинхронные интерфейсы (Asynchronous interfaces)
Вид интерфейса связи. Этот тип интерфейса обрабатывает все события, происходящие с источником данных практически мгновенно. Эта категория интерфейсов базируется на МОМ (Message Oriented Middleware) или на механизме принудительного уведомления об изменениях со стороны источника.

Пакетные интерфейсы (Batch interfaces)
Интерфейсы, которые выполняются на периодической основе, например, ежедневно, в составе группы интерфейсов.

Замещающие интерфейсы (Cancel and replace interfaces)
Этот тип пакетных интерфейсов настроить легче всего, они содержат команду удаления данных из целевой таблицы, которая, таким образом, полностью перезаполняется каждый запуск. Такие поведение интерфейса рекомендуется для разовых интерфейсов. Для интерфейсов связи недостатки такого подхода следующие:
  • исторические данные целевой БД должны быть такими же, как и для БД источника, что не всегда подходит для ХД;
  • удаление данных перед загрузкой делает невозможным использование ограничений целостности данных для целевой таблицы;
  • значительный сетевой трафик.

Инкрементные интерфейсы (Interfaces by increments)
Это один из видов асинхронных интерфейсов связи, которые обрабатывают только те данные, которые изменились в источнике. Эти интерфейсы обрабатывают, например, логи событий из системы источника, дату последнего изменения записи или каким-либо другим способом получают только те записи, которые изменились с момента своего предыдущего запуска.
Такой вид интерфейсов является предпочтительным, так как его использование уменьшает объем обрабатываемых данных, время их обработки и количество сетевого трафика.

Разностные интерфейсы (Interfaces by difference)
Этот вид интерфейсов схож с инкрементными интерфейсами, и использует разницу между целевыми данными и данными источников, чтобы определить изменения. Этот механизм позволяет уменьшить количество обновлений в ХД.

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

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