УДК 004.4'244
А. А. Ветров, Е.С. Фереферов, А.Е. Хмельнов
ТЕХНОЛОГИЯ ИСПОЛЬЗОВАНИЯ МЕТАОПИСАНИЙ ДЛЯ ФОРМИРОВАНИЯ ХРАНИЛИЩ ДАННЫХ И АНАЛИЗА МНОГОМЕРНЫХ ДАННЫХ
В работе рассматривается технология создания структуры и наполнения хранилища данных с использованием технологии метаописаний баз данных, которая активно используется для автоматизации процесса создания приложений, работающих с базами данных.
Ключевые слова: хранилище данных, OLAP анализ, преобразование данных, извлечение данных, загрузка данных, интеграция данных, объединение данных, миграция данных, программное обеспечение промежуточного слоя.
A.A.Vetrov, E.S.Fereferov, A.E.Khemlnov
USING TECHNOLOGY OF METADICSRIPTION FOR FORMING DATA WAREHOUSE AND MULTIDIMENSIONAL DATA ANALYSIS
The article is devoted to actual problem of creating structure and filling data warehouse using the technology of database metadescriptions, which is actively used to automate the creation of applications working with databases.
Keywords: data warehouse, OLAP analysis, extract data, transform data, load data, etl tools, integration data, migration data, middleware.
Введение
В настоящее время накоплены и актуализируются большие объемы тематических данных в структурированном электронном виде. Эти сведения хранят в себе возможности получения аналитической информации и новых знаний, из которой можно извлечь закономерности, тенденции, зависимости и другую важную информацию для предметного аналитика.
Редко встречается ситуация, когда данные, характеризующие целую предметную область, хранятся в одном месте, чаще они разделены, и пользователи тратят много времени на ручной поиск, сбор и сопоставление релевантной информации, вместо того, чтобы использовать полученную информацию в непосредственной деятельности [1]. Таким образом возникает проблема интеграции данных: они могут манипулироваться различными системами управления базами данных (СУБД), быть противоречивыми, несогласованными, не иметь единого логического взгляда, содержать значительную часть информации, неважную для анализа и тем самым его замедлять.
Для решения этой проблемы применяют технологии интеграции данных, хранилищ данных (ХД) и анализа данных (в том числе OLAP анализ [2]). Технология интеграции данных предназначена для эффективного объединения сведений из нескольких разнотипных источников, при этом исходные остаются под контролем систем-источников и извлекаются по требованию для интегрированного доступа. В свою очередь, предметные специалисты при помощи тематического программного обеспечения (ПО) уже могут работать с объединенными данными.
Для проведения комплексных информационно-аналитических исследований с применением данных технологий необходимо создать ХД, выбрав схему его структуры и способ хранения, заполнить ХД, загрузив в него необходимые данные, и осуществить анализ данных.
1. Структура ХД
Основными составляющими структуры типичного ХД являются таблица фактов (fact table) и таблицы измерений (dimension tables) [3]. Таблица фактов является основной таблицей ХД. Как правило, она содержит сведения об объектах или событиях, совокупность которых будет в дальнейшем анализироваться, технически это уникальный составной ключ, объединяющий первичные ключи таблиц измерений. Чаще всего это целочисленные значения либо значения типа «дата/время». Помимо этого таблица фактов содержит одно или несколько числовых полей, на основании которых в дальнейшем будут получены агрегированные данные.
Таблицы измерений содержат неизменяемые либо редко изменяемые данные, которые в подавляющем большинстве случаев представляют запись для каждого члена нижнего уровня иерархии в измерении. Таблицы измерений также содержат как минимум одно описательное поле (обычно с именем члена измерения) и, как правило, целочисленное ключевое поле (обычно это суррогатный ключ) для одно-
значной идентификации члена измерения. Если будущее измерение, основанное на данной таблице измерений, содержит иерархию, то таблица измерений также может содержать поля, указывающие на «родителя» данного члена в этой иерархии. Каждая таблица измерений должна находиться в отношении «один ко многим» с таблицей фактов.
Существуют 2 основные схемы типичного ХД: «звезда» и «снежинка». Схема звезда - это логическая модель организация ХД, когда таблица фактов непосредственно соединена со всеми зависящими от неё таблицами измерений. Недостатком схемы «звезда» является неудобство работы с иерархическими измерениями, т.е. когда вся информация об измерениях содержится в одной таблице. Это вызывает рост избыточности и повышает вероятность возникновения противоречий. Поэтому для более эффективной работы с иерархическими измерениями используется модификация схемы «звезда», которая получила название «снежинка».
Схема снежинка (snowflake schema) - это логическая модель организации ХД. Особенностью схемы «снежинка» является то, что таблицы измерений могут быть соединены с таблицами измерений других иерархических уровней непосредственно, минуя таблицу фактов. Если же хотя бы одно измерение содержится в нескольких связанных таблицах, такая схема ХД носит название «снежинка». Данную схему рекомендуется использовать при наличии иерархии измерений.
Недостатками схемы «снежинка» по сравнению со схемой «звезда» является более трудная для понимания и реализации структура данных, а также более сложная процедура добавления значений в измерения, а ее преимуществом - большее соответствие представлению данных в многомерной модели, намного более низкая вероятность появления ошибок несоответствия данных и большая (по сравнению со схемой «звезда») компактность представления иерархических данных, поскольку все значения измерений представляются только один раз [4].
Следует отметить, что даже при наличии иерархических измерений с целью повышения скорости выполнения запросов к ХД нередко предпочтение отдается схеме «звезда» [5].
2. Инструменты извлечения, преобразования и загрузки данных
После создания структуры ХД его следует заполнить тематическими данными. Для этого можно использовать встроенные возможности СУБД или, что предпочтительнее, специализированное ПО - ETL. Это инструменты для извлечения, преобразования и загрузки (extraction, transformation, loading). Как правило, с качественными коммерческими решениями в области ХД поставляется свой инструментарий для такого рода задач. Под аббревиатурой ETL понимается составной процесс переноса данных одного приложения или автоматизированной информационной системы в другие. Процесс ETL состоит из трех основных стадий:
1. Извлечение данных
На этой стадии отбираются и описываются данные внешних источников (начинают формироваться метаданные ХД), которые должны храниться в ХД (релевантные данные). Процесс извлечения данных из источников данных можно разбить на следующие основные типы:
- извлечение данных при помощи приложений, основанных на выполнении SQL-команд. Эти приложения функционируют совместно с другими приложениями систем источников данных;
- извлечение данных при помощи встроенных в СУБД механизмов импорта/экспорта данных. Использование таких механизмов, как правило, обеспечивает более быстрое извлечение данных, чем с помощью команд SQL;
- извлечение данных с помощью специально разработанных приложений.
2. Преобразование данных
Сюда входят преобразования типов данных (кодировки, строковые данные, форматы даты и времени и т.д.), преобразования, связанные с нормализацией или денормализацией схемы данных (компромисс между производительностью и простотой запросов), очистка данных и преобразования, связанные с обеспечением качества данных в ХД. Следует более подробно рассказать про 2 последних. Чтобы данные обладали необходимым уровнем качества, они должны содержать правильные количественные значения метрик, быть согласованными и непротиворечивыми (агрегированные данные должны точно соответствовать подробным данным), уникальными и актуальными. Для обеспечения качества данные при преобразовании подвергаются процедуре очистки: согласуются форматы данных, данные кодируются, исключаются ненужные атрибуты (например, комментарии), замещаются коды значениями (например, почтовый индекс наименованием населенного пункта), комбинируются данные из различных источников под общим ключом (например, собираются все данные о покупателях).
3. Загрузка данных
На этой стадии данные загружаются в ХД. Необходимо учесть, что загрузка данных, основанная на использовании команд обновления SQL, медленнее, чем загрузка с помощью встроенных в СУБД средств импорта/экспорта, однако создать инструмент, реализующий импорт/экспорт в коммерческую СУБД, проблематично, так как такие СУБД чаще всего распространяются без документации подобного рода.
3. Анализ данных
Конечной целью использования ХД является анализ данных и представление результатов этого анализа в виде, удобном для восприятия и принятия решений. После завершения этапа загрузки становится возможным проведение аналитических исследований с использованием тематического ПО, учитывающего специфику конкретной предметной области. Основополагающим видом анализа в ХД является OLAP анализ. Основная идея OLAP заключается в построении многомерных кубов, которые будут доступны для пользовательских запросов [6]. Существующие подходы анализа многомерных данных предполагают использование ПО ориентированного на структуру ХД конкретного производителя.
4. Использование метаописаний для формирования ХД
Для унификации процессов извлечения и загрузки данных при формировании ХД, а также проведения анализа многомерных данных предлагается использовать технологию метаописаний БД, которая активно используется для автоматизации процесса создания приложений, работающих с БД [7].
Под метаописанием БД понимаются заданная по определённым правилам информация, описывающая структуру этой БД, и способы взаимодействия пользователя с БД. Элементы метаописаний состоят из секций о таблицах, их полях, связях между таблицами и представлениях [8]. Они позволяют описать любую БД, использующую современную СУБД, формируя связующее звено между БД и ПО, достаточное для их совместной работы. Применение технологии метаописаний БД открывает возможность использования специализированного ПО для анализа различных ХД, удовлетворяющих ряду требований и управляемых одной или разными СУБД (без перекомпиляции ПО). Неоспоримым преимуществом данной технологии также является сокращение сроков создания реальных информационных систем по сравнению с традиционными подходами, связанными с описанием объектов ХД и связей между ними средствами визуального программирования или в коде приложения.
Как правило, в существующей технологии метаописания БД хранятся на локальных машинах. Для аналитических систем, разрабатываемых в технологии клиент-сервер, метаописания ХД рационально перенести из файла метаописаний в таблицы ХД, находящиеся на сервере, а также их следует расширить дополнительными секциями, учитывающими специфику ХД.
Логично организовать все связи между тематическими данными ХД на уровне метаописаний вместо непосредственного связывания средствами СУБД, что в дальнейшем даст более гибкий доступ к данным со стороны ПО анализа. Для этого предлагается создать новый тип структуры ХД, в котором логическая структура предметной области хранится в таблицах метаописаний ХД. Учитывая вышеперечисленные требования к метаописаниям БД (информация о таблицах, полях таблиц, ссылках из таблиц, соответствии полей, задаваемом ссылками, путях получения полей, представлениях, полях представлений) следует добавить информацию об измерениях, используемых в измерениях полях, таблицах значений показателей, полях таблиц значений показателей. После формирования структуры ХД необходимо провести импорт данных: извлечь данные из источников информации, преобразовать и загрузить в ХД в соответствии с метаописаниями ХД.
Для OLAP анализа многомерных данных с помощью технологии “кросс-таблиц” разработано универсальное ПО “MDAttr” [9], которое выступает в качестве клиента к ХД и алгоритмы которого используют метаописания ХД для работы с его измерениями. Система реализует:
- унифицированный доступ к ХД;
- простоту настройки и хорошие времена отклика при работе с агрегированными данными;
- анализ набора числовых показателей, которые могут быть собраны в различных разрезах, т.е. могут зависеть от различного числа характеристик;
- многопользовательский доступ к данным;
- экспорт данных в Microsoft Excel для дальнейшей обработки.
Хранилище данных может быть сконфигурировано администратором под конкретный набор показателей и разрезов, а ПО “MDAttr” дает пользователю гибкий доступ к данным хранилища с использованием интуитивно-понятного интерфейса, построенного по принципу систем многомерного анализа данных (OLAP). Пользователь имеет возможность выбирать интересующие его данные, после чего эти дан-
ные сохраняются в электронных таблицах для дальнейшего анализа средствами специализированных статистических пакетов. Для использования данного ПО должны соблюдаться определённые соглашения:
- Все значения измерений должны иметь уникальный числовой код, для хранения которого должно быть достаточно 4-х байт. Это позволяет оптимизировать внутреннее представление информации в клиентской программе.
- Значения интервалов времени должны кодироваться целым числом по следующей формуле:
Hi = T0m *12 +12 - dTm, (1)
где Hi обозначает код интервала времени;
T0m - начало интервала в месяцах (T0m = Год *12 + №Месяца, при этом январю соответствует 0);
dTm - протяжённость интервала времени в месяцах (год - 12, полугодие - 6, квартал - 3, месяц - 1).
Такой способ кодирования интервалов времени позволяет получить их естественное упорядочивание при сортировке их кодов в порядке возрастания: коды полугодий будут следовать за кодом года, код квартала - за кодом полугодия и т.д., а также избежать использования отдельной таблицы для хранения информации об интервалах времени.
- Значения показателей должны храниться в числовых полях.
- Таблица показателей должна быть организована как иерархическое измерение.
- В таблице показателей должно присутствовать поле, в котором для имеющих значения показателей должны быть записаны коды соответствующих таблиц значений показателя.
Система может быть настроена на использование любых таблиц, созданных с соблюдением описанных соглашений.
На текущий момент процессы создания структуры ХД и импорта данных осуществляются администратором вручную и требуют временных затрат: структура создается при помощи средств СУБД, а импорт осуществляется при помощи нескольких утилит и конверторов. Поэтому разрабатывается собственный специализированный ETL инструмент, автоматизирующий данные процессы, так как существующие инструменты не учитывают работу с таблицами метаописаний.
В настоящее время активно ведутся работы по развитию языка представления баз данных для поддержания новых возможностей метаописаний, ориентированных на формирование ХД.
Литература
1. URL: http://www.ibm.com/developerworks/ru/library/ws-soa-infoserv1/ Дата обращения май 2011 года.
2. Барсегян А.А., Куприянов М.С., Степаненко В.В., Холод И.И. Методы и модели анализа данных OLAP и Data Mining. - СПб: БХВ-Петербург, 2004. 336 с.
3. URL: http://www.olap.ru/basic/olap_intro2.asp Дата обращения май 2011 года
4. URL: http://www.basegroup.ru/glossary/definitions/star_shema/. Дата обращения май 2011 года.
5. Маклаков C. Хранилища данных и их проектирование с помощью CA ERwin // КомпьютерПресс. 2001. № 1.
6. Островский Е.В. Порядок разработки ETL-процессов. URL: http://citcity.ru/11144. Дата обращения февраль 2011 года.
7. Бычков И.В., Фереферов Е.С., Хмельнов А.Е. Метаописание баз данных как основа интеграции информационно-справочных систем и ГИС // Вычислительные технологии. 2007. Т. 12, № 5.
8. Фереферов Е.С., Хмельнов А.Е. Язык описания структур баз данных // Материалы конференции. Ляпунов-ские чтения & презентация информационных технологий 2010. Иркутск: Изд-во ин-та динамики систем и теории управления СО РАН, 2010.
9. Бычков И.В., Гаченко А.С., Ружников Г.М., Фереферов Е.С., А.Е.Хмельнов А.Е., Маджара Т.И. Внедрение современных информационных технологий в региональных проектах // Вестник НГУ. Сер.: Информационные технологии. 2008. Т. 6, вып. 1. С.15-24.
Ветров Александр Анатольевич, аспирант ИДСТУ СО РАН, г. Иркутск, тел. (395-2) 453113, e-mail: [email protected]
Фереферов Евгений Сергеевич, научный сотрудник ИДСТУ СО РАН, г. Иркутск, тел. (395-2) 453071,
e-mail: [email protected]
Хмельнов Алексей Евгеньевич, кандидат технических наук, заведующий лабораторией ИДСТУ СО РАН, тел. (395-2) 453071, e-mail: [email protected]
Vetrov Alexandr Anatolievich, PhD student of Institute for System Dynamics and Control Theory of SB RAS
Fereferov Evgeniy Sergeevich, researcher of Institute for System Dynamics and Control Theory of SB RAS
Hmelnov Alexey Evgenievich, candidate of technical science, chief of laboratory of Institute for System Dynamics and Control Theory of SB RAS