вторник, 7 июня 2011 г.

ODI 11g. Некоторые ограничения планов загрузки.

Продолжаем.

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


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

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

В примере ниже, мы загружаем две таблицы фактов. Факт 1 зависит от таблиц справочников 1 и 2, тогда как Факт 2 зависит только от таблицы Справочника 2.


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


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

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

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

Так что мы пока остаемся на своем собственном варианте организации загрузки зависимых таблиц.


Рисунки я взял у автора, сам в этот раз не проверял как работают планы загрузки, так как никак не доберусь до инсталляции 11g.

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

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

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

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