Сделай Сам Свою Работу на 5

Язык многомерных запросов MDX





2.2.1 Определение OLAP, основные понятия

Технология комплексного многомерного анализа данных получила название OLAP (On-Line Analytical Processing). OLAP — это ключевой компонент организации хранилищ данных. Концепция OLAP была описана в 1993 году Эдгаром Коддом, известным исследователем баз данных и автором реляционной модели данных. В 1995 году на основе требований, изложенных Коддом, был сформулирован так называемый тест FASMI (Fast Analysis of Shared Multidimensional Information) — быстрый анализ разделяемой многомерной информации.

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

Хотя OLAP и не представляет собой необходимый атрибут хранилища данных, он все чаще и чаще применяется для анализа накопленных в этом хранилище сведений.

Компоненты, входящие в типичное хранилище, представлены на рисунке 2.1.




Рисунок 2.1 - Структура хранилища данных

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

Можно определить OLAP как совокупность средств многомерного анализа данных, накопленных в хранилище. Теоретически средства OLAP можно применять и непосредственно к оперативным данным или их точным копиям (чтобы не мешать оперативным пользователям) [10].

В хранилище данных используются две организации реляционных таблиц, удобных для хранения – это схема «звезда» и схема «снежинка» (рисунок 2.2,рисунок 2.3). Хранилище данных, с которым ведется работа имеет схему «снежинка».



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

Схема данных «снежинка» получила свое название за свою форму, в виде которой отображается логическая схема таблиц в многомерной базе данных. Так же как и в схеме «звезда», схема «снежинка» представлена централизованной таблицей фактов, соединенной с таблицами измерений. Отличием является то, что здесь таблицы измерений нормализованы с рядом других связанных измерительных таблиц, в то время как в схеме «звезда» таблицы измерений полностью денормализованы с каждым измерением, представленным в виде единой таблицы. Чем больше степень нормализации таблиц измерений, тем сложнее выглядит структура схемы "снежинка". Создаваемый «эффект снежинки» затрагивает только таблицы измерений, и не применим к таблицам фактов.

Таблица фактов
Таблица измерений
Таблица измерений
Таблица измерений
Таблица измерений

 

 


Таблица фактов
Таблица измерений
Таблица измерений
Таблица измерений
Таблица измерений
Таблица измерений
Таблица измерений
Таблица измерений
Таблица измерений
Рисунок 2.2 – Схема «звезда»



 

 

Рисунок 2.3 – Схема «снежинка»

В схемах используются 2 типа таблиц: таблицы фактов и таблицы измерений.

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

Таблица измерений - таблица в структуре многомерной базы данных, которая содержит атрибуты событий, сохраненных в таблице фактов. Таблицы измерений содержат справочники, т.е. редко изменяемые данные. Атрибуты представляют собой текстовые или иные описания, логически объединенные в одно целое. Например, ФИО абонента может являться атрибутом в таблице измерений абонентов, а наименование услуги – в таблице измерений услуг. В то время как сумма начислений является величиной аддитивной, и ее значение должно храниться в таблице фактов.

В процессе проектирования диплома была разработано информационно- методическое обеспечение, которое состоит из теоретической и практической части. Информационно-методическое обеспечение создано для обучения работы с подсистемой. В теоретической части изложено описание сведений об OLAP технологии, описание работы с языком MDX и технология разработки шаблонов отчетов. В практической части приведен курс лабораторных работ для освоения необходимых навыков работы с языком и разработки шаблонов отчетов. Лабораторные работы ведутся с использованием учебного хранилища данных (см. Приложение Б, Приложение В), структура которого представлена на рисунке 2.4.

Рисунок 2.4 – Структура учебного хранилища данных

Строение куба

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

Куб задается его мерами и измерениями. Базовая структура куба представлена на рисунке 2.5.

 

Измерение
Иерархия
Уровень 1
Уровень 2
Уровень 3
Члены уровня
Меры

 


Рисунок 2.5 – Базовая структура куба данных OLAP

 

Мера (факт) представляет собой столбец, содержащий количественные данные, обычно числовые, для которых может быть выполнена статистическая обработка. Как правило, мера сопоставлена со столбцом в таблице фактов. Мера являются одной из основных причин построения кубов OLAP на основании инфраструктуры хранилищ данных. Функции агрегирования осуществляют вычисление на основе мер для возможности дальнейшего анализа данных. Наиболее распространенные функцией агрегирования является Sum (суммирование). Один из распространенных запросов к кубу OLAP, к примеру, суммирует значения всех начислений. Другие распространенные функции агрегирования — Min, Max и Count. После завершения обработки необработанных данных в кубе OLAP пользователи могут выполнять более сложные вычисления и запросы, используя многомерные выражения (MDX) для определения собственных выражений мер и их вычисляемых элементов.

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

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

Уровни представляют собой категории, которые агрегируются в общую иерархию. Можно воспринимать уровни как поля данных, которые можно запрашивать и анализировать отдельно друг от друга. На рисунке 2.5 представлены три уровня.

Член - отдельный элемент данных в пределах размерности. Доступ к членам обычно реализуется через OLAP-структуру размерностей, иерархий и уровней. В примере на рисунке 2.5 члены заданы для уровня 3. Другие уровни имеют свои члены, которые в структуре не показаны [12].

В курсе лабораторных работ для учебного хранилища данных создаются кубы, с помощью которых будет вестись анализ. Например, можно создать куб «Начисления» (см. Приложение Б, см. Приложение В), с помощью которого можно анализировать объемы начислений по месяцам года.

На рисунке 2.6 представлен пример куба «Начисления».

 

Рисунок 2.6 – Куб «Начисления»

 

Куб «Начисления» содержит меру «Значения начислений» и три связанных измерения («Абонент», «Услуги» и «Дата начисления»). В кубе рассматриваются начисления за 2010 год. На рисунке 2.6 представлен внешний вид куба.

Значения начислений  
Дата начисления
1 3 4 8 9 12
84,99
27,9
76,4
238,8
Водоснабжение Теплоснабжение Газоснабжение Электроснабжение
….  
Абонент
Услуги
Месяцы
2010 год 2011 год 2012 год 2013 год
Меры
Наименьшие буквенно-цифровые значения в кубе — это элементы измерений. Примеры элементов — 015527 (элемент измерения «Абонент»), «Теплоснабжение» (элемент измерения «Услуги») и «1-й месяц» (элемент измерения «Дата начисления»).

Значение в ячейках куба представляет одна мера — «Значения начислений».

Измерение «Услуги» представляет услуги, которые предоставляются абонентам и за которые производятся начисления. В число элементов этого измерения входят «Теплоснабжение», «Водоснабжение», «Электроснабжение», «Газоснабжение». Измерение «Абонент» представляет номера лицевых счетов абонентов. Измерение «Дата начисления» представляет годы и месяцы.

Пользователи куба могут определять значения его мер для каждого элемента в каждом измерении независимо от уровня элемента в измерении. Например, значения меры в предыдущей иллюстрации могут быть вычислены в соответствии с обычной календарной иерархией с использованием иерархии «Дата начисления», как показано на рисунке 2.7.

Весь период Сумма начислений: 12949,73  
2010 год Сумма начислений: 764,09  
2011 год Сумма начислений: 2755,38  
2012 год Сумма начислений: 4901,15  
2012 год Сумма начислений: 4529,11  
8 месяц Сумма начислений: 27,9  
1 месяц Сумма начислений:  
3 месяц Сумма начислений: 238,8  
4 месяц Сумма начислений: 84,99  
9 месяц Сумма начислений:  
12 месяц Сумма начислений: 122,4  

 

 

Рисунок 2.7 – Значения мер по годам и месяцам

 

Введение в MDX

Для прямой работы с многомерными базами OLAP компанией Microsoft разработан язык MDX (Multidimensional eXpressions). Он разработан специально для многомерных баз данных.

Подобно тому, как SQL (Structured Query Language — язык структурированных запросов) представляет собой язык создания запросов для извлечения данных из реляционных баз данных, MDX является языком запросов, используемым для извлечения данных из многомерных баз данных. Точнее, MDX используется для запрашивания данных из баз данных OLAP. Изначально MDX был разработан компанией Microsoft и был введен вместе с Analysis Services 7.0 в 1998 году.

Использование языка MDX не ограничено авторскими правами на продукт Microsoft. Этот язык используется для извлечения информации из баз данных OLAP; он основан на стандартах отрасли. Язык является частью спецификации OLEDB для OLAP, финансируемой Microsoft; он поддерживается также другими провайдерами OLAP, включая Intelligence Server компании Microstrategy, Essbase Server компании Hyperion и BI-Server от Pentaho. Некоторые компании стремятся расширить стандарт и обеспечить дополнительную функциональность, и вследствие этого расширения MDX, действительно, разработаны индивидуальными производителями. В расширениях MDX реализованы функции, которых в стандарте нет, но предполагается, что все компоненты таких расширений MDX разработаны согласно стандарту.

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

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

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

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

Рисунок 2.8 - Зависимость знаний от функциональности языка

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

Задачи языка можно определить следующим образом:

· MDX «понимает» многомерную модель устройства данных (куб, измерение, мера, ячейка);

· язык позволяет осуществлять навигацию по многомерному пространству и определенным над ним иерархиям;

· MDX нужен не только разработчикам и администраторам — он может быть полезен практически всем пользователям аналитических приложений [13].

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.