За последние годы произошел бурный рост продаж систем оперативной аналитической обработки данных (OLAP — online analytical processing) и хранилищ данных (Data Warehouse), однако до сих пор неясен вопрос, в чем же привлекательность этих систем?

Многомерный финансовый анализ, анализ продаж, возврата инвестиций, эффективности работы с заказчиком, анализ прибыльности каждой операции, расходов и себестоимости - обеспечивают преимущества в конкурентной борьбе. Все возможности многомерного анализа предоставляются пользователям на базе инструментария бизнес-интеллекта (BI — Business Intelligence), позволяющего манипулировать данными без знания их структуры, оперируя только понятиями деловой практики: объемы продаж, прибыль и затраты. Более того, быстрое получение подобной информации позволяет исключить из организации звенья-посредники, не генерирующие новой информации, а, следовательно, увеличить эффективность работы организации.

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

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

Классическим решением проблемы обеспечения аналитических приложений достоверной, полной и актуальной информацией является построение единого хранилища данных и, в случае необходимости, специализированных проблемно-ориентированных витрин данных. Построение хранилища или витрины данных — это процесс из нескольких этапов: сбор требований к хранимым данным, анализ способов их извлечения, реализация процессов загрузки данных в хранилище/витрину и пр. По оценке InfoWorld, наибольшие затраты, как правило, приходятся именно на последний этап, называемый как ETL (extraction, transformation & loading) - экстракция данных из источников, трансформация их в подходящую для загрузки в хранилище/витрину данных форму и собственно загрузка.

При попытке интеграции исходных данных пользователь оказывается перед выбором — либо объединять их с помощью множества программ-конверторов, что предполагает разработку кодов собственных программ преобразования, очистку и проверку данных, либо воспользоваться универсальным инструментом создания хранилищ данных. Исключением являются организации, внедрившие продукты, содержащие интегрированные средства OLAP. Но, как правило, такие продукты ориентированы на узкоспециализированные области - бухучет, управление запасами, и не позволяют проводить анализ в смежных областях.

Рассмотрим подробнее подходы компании Informix Software к промышленному решению проблем ETL-сферы. Отличительной особенностью предлагаемых компанией решений (DataStage и Formation) является ориентация на максимально комплексное и универсальное решение проблемы, минимизирующее использование нестандартных компонентов. Так, одной из особенностей DataStage является независимость от операционных систем, форматов данных и прикладных систем. Основные операции по экстракции данных, преобразованию форматов, проверке достоверности, интеграции, загрузке в хранилище обеспечиваются за счет существующих модулей расширения (plug-in) - программ, хранящихся в репозитории. Существует множество стандартных модулей расширения для различных источников данных, для различных систем, обеспечивающих функционирование хранилищ данных: Oracle, Red Brik, Terradata... Для проектировщика хранилищ предоставляется возможность создания собственных модулей расширения.

Все существующие сегодня ETL-инструменты можно разделить на две большие группы. С одной стороны отдельные поставщики, работающие с реляционными или многомерными серверами СУБД, включают в свои решения узкоспециализированные средства загрузки данных, ориентированные исключительно на свои серверы. К таким продуктам можно отнести, например, Oracle Express Relational Access Manager и Hyperion Essbase. С другой стороны, существуют и универсальные средства, которые обеспечивают загрузку из альтернативных источников данных в различные типы целевых приемников, производя при этом разные преобразования.

В рамках своего комплексного решения Informix Decision Frontier (IDF) компания Informix предлагает два универсальных ETL-инструмента: DataStage и Formation. Кроме того, к IDF относятся, в частности, следующие продукты: Extended Parallel Server; Red Brick Decision Server; MetaCube; Seagate Info.

Extended Parallel Server — реляционный сервер СУБД, который в рамках Decision Frontier позиционируется как средство поддержки первичного хранилища детальных фактов или operational data store (ODS), содержащего совокупную актуальную информацию операционной среды.

Red Brick Decision Server — специализированный ROLAP-сервер, обладающий дополнительными функциями (оптимизация запросов типа star join, материализованное хранение результатов агрегация, оптимизация массовой загрузки и проч.), ориентирующими его на поддержку витрин данных.

MetaCube — средство аналитической обработки данных (построение отчетов, графиков, поиск тенденций и проч.).

Seagate Info — приобретенный программный продукт, предназначенный для построения отчетов по накопленным данным (функциональность частично пересекается с MetaCube).

Informix Formation

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

Рис. 1. Рабочий экран Informix Formation Architect

Formation состоит из двух компонентов: Architect (клиент) и Flow Engine (сервер). Architect предоставляет графический пользовательский интерфейс, в рамках которого пользователь задаёт диаграммы потоков данных в рамках ETL-процессов (рис. 1). После завершения составления диаграмм генерируется исходный код на языке C++, построенный на базе специализированных библиотек. Данный подход унаследован от ETL-продуктов первого поколения, которыми реально мог пользоваться только квалифицированный программист.

Серверный компонент (flow engine) обрабатывает исходный код на C++ и формирует набор исполняемых файлов, которые могут быть запущены для того, чтобы реально произвести соответствующие ETL-действия. Серверный компонент отвечает также за отслеживание хода выполнения этих работ. В отличие от клиентской части, тесно привязанной к Win32 платформе, серверная часть может исполняться как на Windows NT, так и на Sun Solaris и HP-UX. При этом утверждается, что в рамках всех этих операционных систем серверная часть продукта поддерживает интеллектуальное распараллеливание работ. В качестве источников данных могут применяться:

  • Informix Dynamic Server (или Informix Extended Parallel Server или Informix Dynamic Server with Advanced Decision Support);
  • Informix Red Brick;
  • Oracle 7/8;
  • Microsoft SQL Server;
  • подключение к реляционным ODBC-источникам.

Отсутствуют возможности доступа к плоским файлам и базам данных для мэйнфреймов (DB2, IMS, VSAM).

Среди функций Formation, имеющих отношение к проблематике очистки данных можно найти функцию фильтрации данных по заданному условию со сбрасыванием «отбракованных» записей в специальные таблицы. Остальные работы по очистке (отслеживание незаполненных значений, несовпадение типов данных, неиспользуемые поля, дублирующиеся записи и пр.) предоставляются пользователю, который должен задавать соответствующие условия при обычных способах обработки (фильтрация с отбраковкой, фильтрация со слиянием записей, отображение полей исходных таблиц на поля целевых таблиц и пр.).

Informix DataStage

Данный ETL-продукт во многом подобен Formation, например, имеет средство визуального проектирования диаграмм ETL-процессов (рис. 2). Он состоит из клиента и сервера, один из которых предназначен для ведения репозитория проектов, а другой - для выполнения и отслеживания хода работ уже спроектированных ETL-задач, но обладает рядом существенных отличий.

Рис. 2. Рабочий экран Informix DataStage Designer

Существенное отличие: существует репозиторий проектов DataStage, позволяющий организовывать распределенную работу проектировщиков хранилища или витрин данных. Несмотря на то, что в DataStage происходит предварительная компиляция, она производится не путем преобразования в C++, а затем в исполняемые коды, а из внутреннего описания в репозитории - во внутренний байт-код. Это с одной стороны даёт все преимущества подлинной кроссплатформности (один и тот же ETL-проект может выполняться на серверах DataStage для различных платформ), а с другой - позиционирует DataStage как средство построения витрин данных, (первичного хранилища детальных фактов). В случае с «витринами» объемы существенно меньше, что в случае с интерпретируемым байт-кодом неизбежно приводит к потере производительности. Хотя, если рассматривать чисто функциональные возможности DataStage, то ничто не препятствует и такому применению данного программного продукта.

В качестве потенциальных источников DataStage поддерживает те же данные, что и Formation и, кроме того:

  • SyBase;
  • UniVerse (СУБД компании Ardent, предыдущего владельца данного продукта; относится к классу «унаследованных» СУБД);
  • другие «унаследованные системы».

На этапе трансформации можно производить традиционные для ETL-инструментов преобразования (сортировка, агрегация и пр.), а также дополнительные действия, такие как смена представления данных с сохранением степени гранулярности, преобразование записей типа «уровень» (по состоянию на такую-то дату некоторый показатель имел такое-то значение) в записи типа «факт» (такого-то числа данный показатель изменился на столько-то) и другие.

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

Говоря о расширениях, следует отметить одну особенность DataStage, существенно отличающую его от других ETL-инструментов - этот продукт позволяет дополнять «известные» ему алгоритмы трансформации и очистки данных новыми, написанными на языке Visual Basic, что делает его продуктом с открытой архитектурой. Это позволяет расширять функциональность системы пользовательскими «добавками». Также существует возможность добавлять новые типы источников данных.

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

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

Об авторах

Павел Кириллов (pavel@lanit.ru) — сотрудник компания ЛАНИТ.

Илья Шабаев (ila@ipmce.ru) — директор компании АРК.

Поделитесь материалом с коллегами и друзьями