OLAP.ru   Rambler's Top100
Вы находитесь на страницах старой версии сайта. Перейдите на новую версию OLAP.ru
  
Поиск по сайту
Новости
Основы OLAP
Продукты
Business Objects/ Crystal Decisions
Каталог
OLAP в жизни
Тенденции
Download
Яndex
 
 
 
TopList
 
 Business Objects/Crystal Decisions  Oracle  Microsoft  IBM 
 Hyperion  Sybase  Informix  Actuate  SAS Institute  Brio 

Подход Ascential Software к разработке хранилищ данных


предоставлено компанией Терн

Подход Ascential Software к разработке средств для построения хранилища данных – отражение богатого опыта работы с критически важными приложениями, к которым предъявляются одинаково высокие требования к производительности и функциональным возможностям. Ядро оптимизировано по всем параметрам для обеспечения максимальной производительности без ущерба для возможностей.

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

Особенность DataStage – максимальное использование оперативной памяти и уменьшение операций ввода/вывода, что существенно увеличивает производительность системы.

Несколько источников

DataStage позволяет комбинировать записи из различных гетерогенных источников данных. Используя диаграмму потоков данных, разработчик определяет правила объединения строк из различных источников. Источниками данных могут быть плоские файлы или связанные таблицы. DataStage умеет сравнивать плоские файлы и отслеживать и обрабатывать параметры соединения. На выходе DataStage создает скрипт на SQL.

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

Несколько приемников

DataStage позволяет записывать информацию одновременно в несколько таблиц. Эти таблицы одновременно могут:

  • Находиться в разных БД или файлах
  • Иметь несколько копий в сети
  • Принимать данные различными способами (bulk loaders, SQL, ввод/вывод в плоский файл и пр.)

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

Важнейшей особенностью DataStage является возможность разбиения задания на несколько подзаданий и их одновременная обработка.

Сортировки и агрегирование

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

Например, агрегирование может следовать непосредственно после генерации нового ключа или объединения перед добавлением информации в БД. Разработчик может настраивать свойства сортировок с целью максимального использования доступной оперативной памяти. Если данные уже отсортированы, на стадии агрегирования строки будут доставляться в приемник, после завершения каждой группы агрегации. Пока доступных ресурсов достаточно, операции сортировки и агрегирования выполняются в памяти. Это сокращает физический ввод/вывод и помогает обеспечить завершение заданий DataStage за наименьший возможный промежуток времени.

Связанные преобразования

DataStage осуществляет операции по преобразованию в памяти по мере прохождения строк на пути преобразований. Ядро DataStage использует всю доступную оперативную память, чтобы сократить операции ввода/вывода и обеспечить быстрое выполнение заданий. Фаза преобразования данных обеспечивает пользователя возможностью графического отображения столбец-в-столбец, создавать арифметические и строковые выражения для описания манипуляций с данными и применять встроенные или пользовательские функции.

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

Хэш-таблицы в памяти

В сервер DataStage встроена возможность автоматического создания и загрузки динамических хэш-таблиц. Хэш-таблицы существенно увеличивают эффективность поиска данных lookup). Операция поиска используется для сравнения ключей и получения измерений и мер (цены, описания, и т.д.), проверки данных на предмет существования ключа в пределах зарезервированного списка. Информация в хэш-таблицы загружается непосредственно из источника данных, а затем с помощью опции "pre-load to memory", обеспечивается максимальная производительность. Хэш-таблицы могут быть загружены непосредственно во время выполнения задания где требуется поиск или раньше и сохранены для использования в дальнейшем. Увеличение производительности при интенсивных дисковых операциях очень существенно, особенно когда имеются множество различных полей требующих сравнения. Другие инструментальные средства обычно выполняют просмотр, посылая инструкции PREPARED SQL в реляционную базу данных, что является осуществимым, но утомительным механизмом.

Именованные программные каналы

Использование именованных каналов упрощает разработчику задачу осуществить задачу обмена данными между заданиями и связи с другими приложениями. Механизм именованных каналов, имеющийся во многих операционных системах, позволяет сделать прозрачным перемещения данных через память между процессами приложения ETL. Именованные каналы – очень мощный механизм, но иногда его достаточно сложно использовать. В DataStage разработчик просто указывает на необходимость использования канала, а DataStage обеспечит их корректное использование. Более того, DataStage может непрерывно распределять данные через именованные каналы, поддерживая другие инструменты, такие как специализированные загрузчики больших массивов данных (bulk loaders). Большие задания могут быть разбиты на ряд более простых, или могут быть распределены среди разработчиков хранилища данных. При выполнении, индивидуальные задания работают в параллельных, но интегрированных процессах, передавая друг другу данные с помощью именованных каналов, что оптимизирует машинные ресурсы и сокращает время на проектирование и разработку хранилища.

Параллелизм

Ядро DataStage использует многопроцессорную среду для автоматического распределения потока независимых заданий на несколько процессов. Эта особенность DataStage гарантирует наиболее эффективное использование доступных ресурсов и увеличивает скорость полной обработки данных. Сервер DataStage анализирует задания в начале их выполнения, выделяя зависимые операции и отдельно помечая независимые потоки данных. Для каждого задания, ядро DataStage будет порождать несколько параллельных процессов. Эти процессы будут запускаться одновременно и разделятся среди множества процессоров на многопроцессорной вычислительной машине. На рисунке приведен пример разбиения одного задания на 6 подзаданий. Процессы a и c запускаются одновременно; процесс b ожидает завершения загрузки таблицы. Процессы d, e, и f также запускаются одновременно, после того как будет полностью загружена первая таблица.

Native-поддержка популярных реляционных систем

DataStage уменьшает нагрузку на сеть за счет использования для связи с каждой СУБД ее native-интерфейсов. Реляционные базы данных являются ключевым компонентом почти каждой системы поддержки принятия решения. Обычно, они используются как хранилища или витрины данных. Взаимодействие с этими СУБД требует использования SQL для извлечения данных из источников данных и для записи результатов в приемники данных. Даже при том, что загрузка больших массивов данных (bulk loaders) обычно обеспечивает высокую производительность, процедура извлечения/загрузки может нуждаться в использовании динамического SQL для последовательной записи, обновления, или других сложных процессов над строками. Инструменты в области извлечения/преобразования данных должны поддерживать наиболее эффективный способ для связи с этими базами данных и обеспечивать эту поддержку на всем обширном множестве конфигураций. Использование ODBC является наиболее простым механизмом для обеспечения данного типа взаимодействия, но не может обеспечивать высокую производительность.

DataStage позволяет использовать как ODBC- так и native-драйверы для наиболее популярных СУБД. Везде, где возможно, DataStage использует специальные настройки, предлагаемые поставщиком СУБД и освобождает снижает нагрузку на разработчика по поддержкой дополнительных уровней программного обеспечения.

Загрузчик больших массивов данных (Bulk Loaders)

Программное обеспечение Ascential реализует поддержку технологий высокоскоростной загрузки данных, предлагаемых партнерами Ascential и другими ведущими поставщиками в индустрии хранилищ данных. Загрузчик больших массивов данных или утилиты "быстрой загрузки" обеспечивают высокоскоростную вставку строк в реляционную таблицу, обычно отключая ведение журналов (logging) и другие служебные действия с транзакциями, реализуемых в регистрирующих приложениях. DataStage поддерживает широкое разнообразие таких утилит загрузки больших массивов, непосредственно вызывая API загрузчиков массивов СУБД или генерируя файл контроля и соответствия данных при выполнении пакетного ввода. Разработчики просто присоединяют иконку Bulk Load Stage к их заданиям и потом заполняют параметры настроек выполнения, которые соответствуют их специфической среде. DataStage управляет записью и перезаписью контрольных файлов. В случае поддержки API загрузки массивов, DataStage заботится о преобразовании данных, буферизации и всех деталях выдачи запросов нижнего уровня.

FTP

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

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

Управление изменениями в данных (Change Data Capture)

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

  • частота обновления;
  • доступность приемников данных;
  • способность доступа к источникам;
  • ожидаемый объем измененных данных.

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

Сетевые издержки и долгое время загрузки недопустимы. Поддержка DataStage "захвата изменений данных" (Change Data Capture) уменьшает время загрузки, требуемое для обновления витрин и хранилищ данных.

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

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

  • Идентификация измененных записей в операционной системе
  • Применение изменений соответственно к хранилищу

В DataStage включены средства, которые взаимодействуют с партнерскими программными решениями для получения новых строк из журналов и транзакционных систем на базе мэйнфреймов и популярных реляционных баз данных. Компонент Change Data Capture предлагает возможности для проверки временных отметок (timestamp) и кодов, указывающих тип транзакции (вставка, изменение, удаление).

После того как измененные данные изолированы и извлечены, эти изменение должны быть отражены в хранилище. Как должна быть выполнена эта задача? Рассмотрим ситуацию, где "обновление" действительно является набором новых строк товаров, вставленных в существующую запись счета. Т.к. приложения поддержки принятия решения часто имеют модели данных, которые не похожи на первоначальную транзакционную систему, это может привести к серьезной дилемме. Как новая строка товаров применяется к хранилищу данных, которые больше не содержит деталей счета? Таблицы поддержки решения могут быть сформированы по квартальному доходу от товара. Чтобы помочь в решении таких проблем, Ascential обеспечивает клиентов формальной методологией для обработки захвата измененных данных, которая полностью описывает проблемы, окружающие этот сложный процесс и предлагает, как приложение по изменению строк лучше всего выполняемое в DataStage. Это руководство было написано профессионалами Ardent с опытом применения этих концепций. Пользователи DataStage заинтересованные в Change Data Capture получили интегрированное решение, наряду с доказательствами его успешного выполнения.

 Обсудить на форуме   Написать вебмастеру 

© 2001 Interface Ltd