понедельник, 24 января 2011 г.

ODI 11g. Стратегии загрузки и интеграции данных в СУБД Oracle (Loading and Integration Strategies).

Продолжаю публикацию перевода некоторых частей документа Oracle Data Integrator Best Practices for a Data Warehouse.


Стратегии загрузки данных

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

LKMОписание
LKM File to Oracle (EXTERNAL TABLE) Загружает данные из файла в область стейджа используя SQL команду EXTERNAL TABLE
LKM File to Oracle (SQLLDR) Загружает данные из файла в область стейджа используя утилиту командной строки SQL*Loader. При этом необходимо проинсталлировать клиентское ПО Oracle на ту машину, на которой выполняется агент ODI.
LKM SQL to Oracle Загружает данные из любой реляционной СУБД в область стейджа Oracle. Данные загружаются посредством Агента ODI, который устанавливает связь с обеими СУБД.
LKM MSSQL to Oracle (BCP SQLLDR) Загружает данные из СУБД Microsoft SQL Server в область стейджа Oracle, используя утилиты BCP и SQL*Loader. Эти утилиты должны быть проинсталлированы на машине, на которой выполняется Агент ODI.
LKM Oracle to Oracle (DBLINK) Загружает данные из СУБД источника в СУБД области стейджа, если обе эти СУБД - Oracle. Для загрузки используется механизм dblink-ов.
LKM Oracle to Oracle (datapump) Загружает данные из Oracle в Oracle используя механизм внешних таблиц (через datapump).

Также существует несколько дополнительных модулей знаний, которые могут быть использованы для выгрузки данных из SAP ERP, SAP BW или Oracle BI, и их последующей загрузки в БД Oracle.

Использование загрузчиков для текстовых файлов.

Загрузку данных из плоских текстовых файлов лучше выполнять используя наиболее подходящие для целевой БД технологии. Поэтому, если в ваших интерфейсах необходимо использовать текстовые файлы как источники данных, мы рекомендуем не использовать стандартный модуль знаний LKM File to SQL для загрузки.
Агент использует JDBC драйвер для записи данных в таблицу БД, и скорость этой записи намного ниже, чем при использовании механизма внешних таблиц или утилиты SQL*Loader. Для загрузки больших файлов в Oracle, мы рекомендуем использовать модуль знаний LKM File to Oracle (EXTERNAL TABLE).

Использование выгрузки/загрузки для удаленных серверов.

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

Модуль знаний LKM MSSQL to Oracle (BCP SQLLDR) является примером данного подхода. Он использует утилиту BCP для быстрой выгрузки данных из БД Microsoft SQL Server в файл, а затем, утилита SQL*Loader загружает данные из файла в БД Oracle. Этот модуль знаний реализовывает наиболее оптимальный механизм получения данных из Microsoft SQL Server в Oracle.

Некоторые другие модули знаний используют тот же подход, в частности, модули SAP ERP и BW LKM.

Перемещение данных Oracle - Oracle.

В некоторых случаях появляется необходимость перемещать данные между двумя серверами Oracle. Для этих целей ODI располагает несколькими возможностями.
Один из лучших методов - использование Oracle Data Pump, и Oracle Data Integrator имеет для этого специальный модуль знаний загрузки под названием LKM Oracle to Oracle (datapump). При использовании этого модуля, и в БД источнике, и в БД приемнике создаются внешние таблицы.

ODI также предоставляет модуль знаний LKM Oracle to Oracle (DBLINK), который умеет создавать линки между двумя БД, которые затем используются для загрузки данных.

Стратегии интеграции данных в СУБД Oracle

Модули знаний интеграции, оптимизированные под СУБД Oracle, реализованы с учетом лучших практик загрузки данных в ХД:
  • Везде, где это возможно, используется технология прямой загрузки (использование подсказки /*+ APPEND */).
  • Опция модуля знаний OPTIMIZER_HINT помогает дополнительно настраивать такой, например, параметр, как выполнения запроса в параллельном режиме (использование подсказки PARALLEL).
  • Временные таблицы стейджа, которые использует ODI для хранения промежуточных результатов, создаются с параметром NOLOGGING, для лучшей производительности преобразований.
  • Специальный модуль знаний IKM Oracle Incremental Update (MERGE) позволяет добавлять и изменять данные с помощью одной оптимизированной конструкции языка SQL - MERGE.
  • ODI добавляет команды сбора статистики по таблицам, для того чтобы оптимизатор стоимости (CBO) мог выбрать лучший план выполнения запроса.
  • Автоматическое создание индексов позволяет существенно ускорить операции соединения таблиц или их фильтрации. Разработчик может выбрать несколько вариантов создания индексов, включая создание битмап индексов, которые значительно ускоряют соединение между большими таблицами фактов и мелкими таблицами измерений в схеме звезды.

Следующая таблица отображает список модулей знаний интеграции, оптимизированных для СУБД Oracle:

IKMОписание
IKM SQL Control Append Интегрирует данные в таблицу для любой SQL-92 совместимой СУБД в режиме TRUNCATE/INSERT (append). Возможна проверка качества данных. Ошибочные данные попадают в "E$" таблицу, и могут быть обработаны отдельно позднее.
IKM Oracle Incremental Update Множественное обновление данных для СУДБ Oracle в инкрементальном режиме.
IKM Oracle Slowly Changing Dimension Модуль интеграции данных в таблицу с реализацией медленно изменяющихся размерностей типа 2.
IKM Oracle Incremental Update (MERGE) Интегрирует данные в таблицу Oracle, в режиме инкрементального обновления, с использованием команды MERGE.
IKM Oracle Multi Table Insert Интегрирует данные из одного источника в одну или более целевых таблиц Oracle в режиме добавления, с использованием команды многотабличной вставки (MTI)
IKM Oracle AW Incremental Update Интегрирует данные в целевую таблицу Oracle в инкрементальном режиме, а также имеет возможность выполнения команд перестройки кубов в Analytical Workspace.

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

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

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