Поиск по базе сайта:
Системы оперативной аналитической обработки данных (olap) Основные понятия icon

Системы оперативной аналитической обработки данных (olap) Основные понятия




Скачати 255.01 Kb.
НазваСистемы оперативной аналитической обработки данных (olap) Основные понятия
Дата конвертації06.01.2013
Розмір255.01 Kb.
ТипРешение

СИСТЕМЫ ОПЕРАТИВНОЙ АНАЛИТИЧЕСКОЙ ОБРАБОТКИ ДАННЫХ (OLAP)

Основные понятия


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

Приведем определение, сформулированное “отцом-основателем” хранилищ данных Биллом Инмоном: “^ Хранилище данных - это предметно-ориентированное, привязанное ко времени и неизменяемое собрание данных для поддержки процесса принятия управляющих решений”.

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

Причины построения и использования хранилищ данных:

  1. Анализировать данные оперативных систем напрямую невозможно или очень затруднительно: разрозненность данных, хранением их в форматах различных СУБД и в разных серверах корпоративной сети, сложность и запутанность структур хранения данных, избыточность детальной информации для анализа и принятия решений.

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

К хранилищам данных предъявляют следующие требования (тест FASMI - Fast Analysis of Shared Multidimensional Information):

  • Fast (Быстрый) - анализ должен производиться одинаково быстро по всем аспектам информации. Приемлемое время отклика - 5 с или менее.

  • Analysis (Анализ) - должна быть возможность осуществлять основные типы числового и статистического анализа.

  • Shared (Разделяемой) - множество пользователей должно иметь доступ к данным, при этом необходимо контролировать доступ к конфиденциальной информации.

  • Multidimensional (Многомерной) – показатели должны вычисляться для произвольного набора классификационных признаков.

  • Information (Информации) - приложение должно иметь возможность обращаться к любой нужной информации, независимо от ее объема и места хранения.

В OLAP пользователь получает естественную, интуитивно понятную модель данных, представленную в виде многомерных кубов (Cubes). Измерениями (Dimensions) многомерной системы координат служат основные атрибуты (признаки) анализируемого бизнес-процесса. Таким образом, измерение – набор значений (members) одного типа для идентификации некоторого свойства бизнес-процесса. Значения, “откладываемые” вдоль измерений, называются метками (members).

Измерение может иметь иерархическую структуру – задавать некоторую классификацию значений. В этом случае набор описывается полями по числу уровней иерархии (классификации). Исключением – является время (Time dimension) для которого вводится набор из общеизвестных уровней (день, неделя, месяц, квартал, год). Например, для продаж измерениями могут быть товар, регион, тип покупателя.

Значения всех измерений (координат) задают ячейку куба (cell) с которой связан набор показателей (Measures).На пересечениях осей - измерений (Dimensions) - находятся данные, количественно характеризующие процесс – меры или показатели (Measures). Это могут быть объемы продаж в штуках или в денежном выражении, остатки на складе, издержки и т. п.

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



Рис. 1. Пример куба

^ Операции манипулирования в кубах

Формирование "Среза". Пользователя редко интересуют все возможные комбинации значений Измерений. Подмножество гиперкуба, получившееся в результате фиксации значения одного или более Измерений, называется Срезом (Slice).

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

На рис. 2 - здесь изображен двумерный срез куба для одной меры - Unit Sales (продано штук) и двух “неразрезанных” измерений - Store (Магазин) и Время (Time).




Рис. 2. Двумерный срез куба для одной меры


Значения, “откладываемые” вдоль измерений, называются метками (members). Метки используются как для “разрезания” куба, так и для ограничения (фильтрации) выбираемых данных - когда в измерении, остающемся “неразрезанным”, нас интересуют не все значения, а их подмножество, например три города из нескольких десятков. Значения меток отображаются в двумерном представлении куба как заголовки строк и столбцов.

^ Операция Агрегации (Drill Up) - переход от детализированных данных к агрегированным. Агрегации выполняется при «проекции» куба на меньшее число измерений или при фиксации недетального уровня иерархии измерения.

^ Операция Детализации (Drill Down) - переход от более агрегированных к более детализированным данным.

Архитектура OLAP

Многомерность в OLAP-приложениях может быть разделена на три уровня:

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

  • Многомерная обработка - средство (язык) формулирования многомерных запросов (традиционный реляционный язык SQL здесь оказывается непригодным) и процессор, умеющий обработать и выполнить такой запрос.

  • Многомерное хранение - средства физической организации данных, обеспечивающие эффективное выполнение многомерных запросов.

Конкретные OLAP-продукты, как правило, представляют собой либо средство многомерного представления данных, OLAP-клиент (например, Pivot Tables в Excel 2000 фирмы Microsoft или ProClarity фирмы Knosys), либо многомерную серверную СУБД, OLAP-сервер (например, Oracle Express Server или Microsoft OLAP Services).

Слой многомерной обработки обычно бывает встроен в OLAP-клиент и/или в OLAP-сервер, но может быть выделен в чистом виде, как, например, компонент Pivot Table Service фирмы Microsoft.
^

Архитектура MS OLAP


Analysis Server

Основным компонентом аналитических служб является Analysis Server — сервис операционной системы Windows NT/2000. Этот сервер предназначен для создания OLAP-кубов на основе реляционных хранилищ данных, а также для предоставления доступа к ним из клиентских приложений.

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

Аналитические службы сохраняют агрегатные данные только для простейших агрегатных функций (сумм, числа записей, максимальных и минимальных значений). Однако в случае необходимости можно создавать так называемые вычисляемые члены (calculated members) для получения других типов агрегатных значений (средних, средневзвешенных, смещенных и несмещенных дисперсий и т.д.). При этом, помимо применения встроенных средств создания агрегатных данных, Analysis Services позволяет использовать для вычисления агрегатных данных функции VBA или Excel, а также создавать собственные.

Так, для создания нескольких кубов, имеющих одинаковые измерения, можно сгруппировать их в одну многомерную базу данных, а сами эти измерения поместить в библиотеку (library), сделав их коллективными, то есть общедоступными для всех кубов, содержащихся в базе данных (shared dimensions). Можно также создавать измерения, принадлежащие только одному кубу (private dimensions).

И наконец, аналитические службы Microsoft позволяют создавать так называемые виртуальные кубы (virtual cubes), которые в определенной степени являются аналогами представлений (view) реляционных СУБД. Виртуальные кубы не содержат данных, но позволяют представить в виде единого куба данные из нескольких кубов, имеющих хотя бы одно общее коллективное измерение.

SQL DSO

Decision Support Objects (DSO) — это набор библиотек, содержащих COM-объекты, позволяющие создавать и модифицировать многомерные базы данных и содержащиеся в них объекты (кубы, коллективные измерения и т.д.). Отметим, что Analysis Manager — приложение, использующее SQL DSO, — входит в состав аналитических служб.

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

Отметим, что SQL DSO можно использовать только для доступа к аналитическим службам Microsoft. Ни к каким другим OLAP-серверам с помощью этих библиотек обратиться нельзя.




^ Рис. 1. Приложение, использующее SQL DSO

PivotTable Service, OLE DB for OLAP и ADO MD

Приложения, предназначенные для чтения OLAP-данных, при взаимодействии с аналитическими службами обязательно используют PivotTable Service — библиотеки, загружаемые в адресное пространство клиентского приложения. Эти библиотеки автоматически устанавливаются вместе с аналитическими службами (независимо от того, какая именно их часть установлена — клиентская или серверная), а также вместе с Microsoft Office 2000. В состав Microsoft SQL Server 2000 входит также инсталляционное приложение для установки PivotTable Service на компьютер, на котором не установлены ни аналитические службы, ни Microsoft Office.

PivotTable Service можно использовать в любой 32-разрядной версии Windows для просмотра серверных OLAP-кубов, а также для создания, модификации и чтения локальных OLAP-кубов, созданных в клиентском приложении, реализуя таким образом клиентскую OLAP-функциональность.

Для взаимодействия с PivotTable Service клиентское приложение может использовать OLE DB for OLAP — расширение универсального механизма доступа к данным OLE DB, позволяющее обращаться к многомерным данным, а также ADO MD — библиотеки, представляющие собой надстройку над OLE DB for OLAP и являющиеся COM-серверами для доступа к многомерным данным, удобными для применения в клиентских приложениях.

Отметим, что спецификация OLE DB for OLAP является открытой. Это означает, что можно создавать и другие OLAP-серверы, поддерживающие OLE DB for OLAP (либо разрабатывать OLE DB-провайдеры к уже имеющимся OLAP-средствам), а также создавать клиентские приложения, обращающиеся к любым таким источникам данных с помощью PivotTable Service, OLE DB for OLAP и ADO MD.

^ Analysis Manager

Analysis Manager представляет собой утилиту, входящую в состав аналитических служб и предназначенную для администраторов баз данных OLAP. Analysis Manager использует библиотеки SQL DSO для создания и модификации объектов многомерной базы данных и OLE DB для доступа к исходным реляционным хранилищам данных.

^ Приложения Microsoft Office

Из других клиентских приложений, не входящих в состав аналитических служб, но часто используемых для просмотра OLAP-кубов, следует назвать приложения Microsoft Office, в частности Microsoft Excel. С помощью Excel можно обращаться к серверным OLAP-кубам, получая их двух- и трехмерные сечения на листах рабочих книг Excel в виде сводных таблиц, а также создавать локальные OLAP-кубы в виде файлов на основе реляционных данных, доступных с помощью OLE DB.

Кроме того, в состав Microsoft Office Web Components входит элемент управления ActiveX PivotTable List, позволяющий реализовать сходную функциональность как в обычном Windows-приложении, так и на HTML-странице, предназначенной для применения внутри корпоративной сети.
^

Создание многомерных баз данных


Многомерный куб представлен в хранилище таблицей фактов Fact Table, в которой измерения представлены кодами. Данные для каждого измерения берутся из справочника (Dimension Table), в котором коду соответствует значение измерения.

При этом возможны следующие конфигурации:

  • «Звезда» - таблица фактов связана только с каждым справочником попарно.

  • «Снежинка» - справочники, на которые ссылается таблица фактов, могут ссылаться на другие справочные таблицы.

Для создания хранилища следует зарегистрировать в Analysis Manager OLAP, выбрав пункт Register Server из контекстного меню элемента Analysis Servers.

После этого можно создать многомерную базу данных, выбрав пункт New Database, далее следует ввести имя базы данных и ее описание.

Прежде чем создавать OLAP-кубы, необходимо описать источники исходных данных для них. Для описания источника данных выберем из контекстного меню элемента Data Sources пункт New Data Source и заполним поля стандартной диалоговой панели «Поставщик данных»: в качестве провайдера данных укажем OLE DB Provider for SQL Server, на вкладке «Подключение» выберем сервер «Riven\Riven» и базу данных «Warehouse».

^ Создание измерений

Измерения в MS Analysis Manager создаются мастером Dimension wizard (команда New Dimension | Wizard):

  1. Выбор схемы измерения: «звезда» - Star Schema или «снежинка» - Snowflake.

  2. Выбор таблиц - источника данных для создаваемого измерения .

  3. Выбор типа измерения: «Time dimension» или «Standard dimension».

  4. Выбор уровней иерархии.

  5. Определение дополнительных свойств измерения (В изменяющихся измерениях (changing dimension) можно перемещать члены измерений между уровнями без перерасчета данных измерения).

  6. Ввод имени измерения.

После выполнения перечисленных действий открывается окно редактирования измерения (см. Рис. 2).




Рис. 2. Форма редактирования измерения.

Основными свойствами измерения являются ключ (поле для указания компонента измерения) и значение (поле, содержащее метки). В качестве свойств (property) измерения можно указывать дополнительные поля. Для примера с Рис. 2 такими свойствами являются розничная цена устройства (поле «Рознруб») и количество на складе (поле «Количество»).

Возможно создание несбалансированных иерархий —типа «родитель-потомок» (parent-child). Такие иерархии нередко основаны на таблицах, где первичный ключ является одновременно и внешним ключом (например, для каждого работника указывается код его начальника).

^ Определение OLAP-кубов

Куб заполняется значениями показателей на основании таблицы фактов, связанной с таблицами измерений. Мастер создания куба (Cube wizard) включает следующие шаги:

  1. Выбор таблицы фактов.

  2. Выбор полей – показателей.

  3. Выбор измерений.

  4. Ввод имени куба.

После выполнения перечисленных шагов открывается окно редактора куба, фрагмент которого приведен на Рис. 3.




Рис. 3. Окно редактора куба.

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



^ Рис. 4. Пример определения вычисляемого показателя.

Обработка и оптимизация базы данных OLAP

Чтобы использовать базу данных OLAP, сначала необходимо обработать содержащиеся внутри нее кубы. Обработка куба— это его заполнение реальными транзакционными данными из источника данных. Но, прежде чем заполнить куб, вам нужно определить для него методы оптимизации. Analysis Services предоставляет два основных механизма оптимизации кубов внутри базы данных OLAP — обобщения и разделы.

Обобщения (aggregations) — это итоговые данные, которые вычисляются службами анализа данных и сохраняются в базе данных вместе с транзакционными данными куба. Это могут быть, например, итоговые данные о продажах за определенный период. Обобщения можно вычислить путем суммирования отдельных цифр продаж. Вычисления могут выполняться либо во время обработки куба, либо когда клиентское приложение запросит эти данные. Если создать обобщения, то вычисления будут выполняться во время обработки куба и итоговые данные будут сохранены в базе данных OLAP.

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

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

Разделы (partitions) представляют собой физическое место хранения подробных ;• данных куба и итоговых данных. Куб — это логическое определение данных. При создании куба службы Analysis Services автоматически создают один раздел. А после создания куба вы можете вернуться к этом процессу и создать новые разделы. Разделы используются для физического сегментирования данных из куба-

Преимущество разделов заключается в том, что у каждого из них может быть свой режим хранения и уникальный набор обобщений. Таким образом, один логический куб можно разделить на несколько источников физических данных, выбрав для каждого из них режим хранения (MOLAP, ROLAP или HOLAP) и набор обобщений.

При первой обработке куба или при изменении параметров хранения (команда Design Storage) появится диалоговое окно мастера выбора режима хранения:

  • Режим хранения MOLAP дает значительные преимущества в производительности по сравнению с ROLAP и HOLAP. Недостатком этой модели является то, что ее можно использовать только в OLAP, и поэтому доступ к ней могут получить только OLAP-клиенты, ADO MD и Pivot Table Service.

  • Если у вас большой объем архивных данных, к которым обращаются нечасто, то, вероятно, имеет смысл выбрать метод хранения ROLAP, так как он использует существующую реляционную базу данных и оставляет подробные данные в их "родном" месте хранения. Но имейте в виду, что создание каждого обобщения с помощью метода ROLAP приводит к генерации в СУРБД новой таблицы с индексами.

  • HOLAP является подходящим вариантом, если у вас большое количество подробных данных, к которым приложению приходится часто обращаться. HOLAP позволяет использовать преимущества наращиваемости СУРБД, так как оставляет подробные данные в их "родном" источнике и в то же время дает возможность повысить производительность, поскольку итоговые данные помещаются в MOLAP.

Следующее диалоговое окно Set aggregation Options позволяет параметры создания обобщения:

  • Estimated Storage Reaches x MB - службы анализа данных будут создавать обобщения до тех пор, пока заданный объем дискового пространства не будет использован полностью.

  • Performance Gain Reaches x% - службы анализа данных будут создавать обобщения до тех пор, пока производительность не увеличится на заданную величину в процентах (рекомендуется Microsoft с указанием параметра 80%).

  • Until Clicks Stop - службы анализа данных будут создавать обобщения до тех пор, пока пользователь не щелкнет на кнопке Stop.

В следующем окне - Storage Design Wizard - вы можете выбрать один из двух параметров:

  • Process now - Analysis Services выполнит все вычисления и сохранит данные с помощью выбранного для куба режима хранения данных.

  • Save, but don't process now -сохранение плана создания обобщений, не проводя реальных вычислений и не сохраняя данные немедленно. Но помните, что вы должны обработать обобщения до того, как к ним обратится пользователь.

Analysis Services отобразит окно состояния, в котором будет виден ход выполнения процесса.

В Analysis Services предусмотрен инструмент, который называется оптимизацией, ориентированной на использование - выделите имя куба и щелкните на нем правой кнопкой мыши. Из контекстного меню выберите команду Usage-Based Optimization.

Еще один инструмент — это мастер анализа использования (Usage Analysis Wizard). Он позволяет администратору базы данных напечатать несколько графиков, которые покажут, как кубы базы данных OLAP используются клиентскими приложениями. Выделите имя куба и щелкните на нем правой кнопкой мыши. Из контекстного меню выберите команду Usage Analysis.

^ Управление многомерными данными

Кубы нужно обновлять по мере изменения транзакционных данных. В Analysis Services предусмотрено три основных механизма обновления многомерных данных внутри кубов: обработка куба, слияние разделов и запись данных клиентом.

Чтобы заполнить куб реальными данными, его нужно обработать. Аналогично, чтобы обновить данные в кубе, его также нужно обработать. Для обновления данных куба выберите для него команду Process. На экране появится диалоговое окно Process a Cube. В этом окне предусмотрено три параметра обработки куба.

  • Incremental update (Инкрементальное обновление). Выберите этот параметр, чтобы добавить к кубу только измененные данные. Все остальные данные куба останутся неизмененными, только обобщения будут пересчитаны с учетом добавленных данных.

  • Refresh data (Обновить данные). Выберите этот параметр, чтобы удалить все данные из куба и заполнить его заново.

  • Process (Обработать). Выберите этот параметр, если структура куба изменилась.

Службы анализа данных позволяют сделать куб доступным для записи. В этом случае пользователи могут записать в него данные. В действительности эти данные не записываются в сам куб или лежащий в его основе источник данных. Вместо этого в Analysis Services предусмотрена отдельная таблица для записей, в которой сохраняются все данные, записанные в куб. Чтобы сделать куб доступным для записи выберите команду Write-enable (Разрешить запись). В этом диалоговом окне введите имя источника данных и таблицы, в которой будут сохраняться записанные данные. Причем пользователю будет казаться, что данные являются частью куба.

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

^ Обеспечение безопасности данных OLAP

Сервер Analysis Services отвечает за предоставление данных пользователям и, следовательно, нуждается в надежном механизме обеспечения безопасности данных. Для аутентификации пользователя Analysis Services применяет интегрированную систему безопасности Windows NT/2000.

После установки Analysis Services создает локальную группу OLAP Administrators. По умолчанию учетная запись пользователя, от имени которой устанавливалась Analysis Services, становится членом этой группы. Первичным механизмом управления доступом к данным OLAP является роль. Роли определяются на уровне базы данных. Для создания роли базы данных откройте окно Analysis Manager для папки Database Roles выберите команду Manage Roles. В окне Database Roles Manager можно увидеть все роли, созданные, для указанной базы данных. Добавить (изменить) роль можно кнопкой New (Edit).

На вкладке Membership можно редактировать список пользователей роли. Для добавления в роль групп Windows NT/2000 или пользователей щелкните на кнопке Add (Добавить). Появится стандартное диалоговое окно Windows NT/2000, в котором вам необходимо выбрать все группы домена и пользователей, которые будут принадлежать новой роли.

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

Для установки параметров безопасности на уровне измерения активизируйте вкладку Dimensions (Сечения). В этом диалоговом окне можно установить параметры безопасности:

  • Unrestricted (Неограниченный). Все пользователи, являющиеся членами роли, будут иметь неограниченный доступ для чтения всех уровней и всех членов измерения.

  • Fully Restricted (Полностью ограниченный). Установка этого правила безопасности означает, что все пользователи, являющиеся членами роли, не смогут просматривать никаких данных, относящихся к измерению.

  • Custom (Настраиваемый) - параметров безопасности измерения устанавливаются щелчком в поле Custom Settings.

Параметры безопасности на уровне ячейки устанавливаются для роли на уровне куба, а не на уровне базы данных. Чтобы установить параметры безопасности на уровне ячейки, разверните куб, выделите папку Cube Roles и выберите команду Manage Roles. Появится диалоговое окно, в котором показаны все роли, которым предоставлен доступ к данному кубу. Для установки параметров на уровне ячейки щелкните на кнопке Cells. На уровне ячейки можно предоставить роли три уровня прав доступа.

  • Read (Чтение). Позволяет роли считывать значения данных ячейки в зависимости от установки критерия, определенного в PermissionsExpression.

  • Contingent Read (Условное чтение). Относится только к вычисляемым членам. С его помощью устанавливается доступ на чтение ячейки, возвращающей вычисляемые члены, причем только если роль имеет право чтения расположенных ниже ячеек данных.

  • Read/Write (Чтение/запись). Позволяет записывать в ячейку данные. Его можно устанавливать только для куба, в который разрешена запись.

Чтобы ограничить доступ к отдельным ячейкам, необходимо определить для выбранного уровня прав доступа настраиваемое правило. Это можно сделать с помощью диалогового окна Edit a Cube Role. Из списка Cell Security PoBcy выберите значение Advanced. Для выбранного уровня прав доступа в столбце Rule установите значение Custom. Настраиваемое правило устанавливается с помощью определения выражения на языке MDX.

Последовательность, в которой Analysis Services будет оценивать правила безопасности:

  • Если для роли правила доступа для чтения не определены. Analysis Services не выполняет никаких проверок и возвращает значение ячейки.

  • Если для ячейки определено правило доступа для чтения, то оно вычисляется. Если условие удовлетворено. Analysis Services возвращает значение ячейки и дальнейшие проверки не выполняются.

  • Если для ячейки определено правило условного доступа для чтения, то оно вычисляется. Если условие удовлетворено, то Analysis Services возвращает значение ячейки и дальнейшие проверки не выполняются.

  • Если ячейка содержит вычисляемый член (определенный не в структуре куба, а в клиентском приложении), то Analysis Services возвращает значение ячейки.

  • Если ни одно из этих условий не удовлетворено, Analysis Services возвращает сообщение об ошибке.
^

Клиенты OLAP-данных в Microsoft Office


Манипуляция OLAP-данными в Microsoft Excel

Для построения сводной таблицы в Microsoft Excel можно воспользоваться мастером сводных таблиц (команда «Данные», «Сводная таблица»:

  1. Выбор данных: «во внешнем источнике данных».

  2. Кнопка «Получить данные», вкладка «Кубы OLAP», выбор существующего источника или определение нового.

  3. Далее выполняются обычные действия по определению макета сводной таблицы.

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

Microsoft Excel позволяет создавать локальные OLAP-кубы, представляющие собой подмножества данных серверных OLAP-кубов. Локальные кубы хранятся в файлах с расширением *.cub.

^ Публикация сводных таблиц на Web-страницах

Самый простой способ воспользоваться компонентом PivotTable List — сохранить сводную таблицу Microsoft Excel как Web-страницу. Для этого выберем в Microsoft Excel пункт меню «Файл», «Сохранить как вэб-страницу», в появившейся диалоговой панели выбрать переключатель «Добавить интерактивность», нажмем кнопку «Опубликовать», в диалоговой панели выберем из выпадающего списка «Элементы «Лист1», Добавить «Работу со водными таблицами».

Далее можно изменить заголовок, который появится на будущей Web-странице, и сохраним ее. Если открыть эту страницу в Microsoft Internet Explorer версии 4.01 или выше, мы увидим, что она содержит PivotTable List — элемент управления, предназначенный для просмотра OLAP-данных и сводных таблиц на Web-страницах.

Сразу же заметим, что этот элемент управления можно применять только в локальных сетях на компьютерах, для которых приобретена лицензия на Microsoft Office; другие способы его применения, например на Web-страницах, доступных в Интернете, запрещены лицензионным соглашением.

Пользователь, манипулирующий PivotTable List в браузере или в Windows-приложении, может, как и в сводной таблице Excel, перемещать данные в область строк, столбцов и страниц (в Microsoft Office Web Components приняты термины Row Area, Column Area и Filter Area) c диалоговой панели, напоминающей панель «Список полей сводной таблицы» из Excel.

Пользователь может также выполнять операцию детализации (drill-down), щелкая мышью на значках «+». Компонент PivotTable List позволяет сортировать и фильтровать данные. Во-первых, фильтрация данных может быть осуществлена с помощью отображения только выбранных членов измерений, которые могут быть отмечены в выпадающем списке, сходном с соответствующим списком Excel.

Во-вторых, с помощью диалоговой панели «Команды и параметры» можно выбрать способы фильтрации и группировки данных.

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

Помимо этого компонент PivotTable List позволяет на основе агрегатных данных вычислять доли или проценты общей суммы или суммы, соответствующей родительскому члену измерения (например, процент от годовой прибыли, полученный в данном квартале), — соответствующие опции можно найти в контекстных меню элементов данных.

Пользователю также доступен специально предназначенный для него файл справки (на русском языке, если используются Web-компоненты из комплекта поставки русской версии Microsoft Office XP). Однако пользователь не может изменить источник данных и отобразить на Web-странице другой OLAP-куб, поскольку право сделать это есть только у разработчика Web-страницы.

Отметим, что подобную Web-страницу можно создать и с помощью Microsoft FrontPage.
^

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


MDX (MultiDimensional eXpressions) — язык запросов к многомерным данным - был впервые введен в рамках спецификации OLE DB for OLAP для работы с многомерными кубами. Будучи открытым стандартом, MDX является основным инструментом программирования для Microsoft SQL Server 2000 Analysis Services.

Для выполнения запросов на языке MDX мы будем использовать утилиту MDX Sample Application, входящую в состав Microsoft SQL Server 2000 Analysis Services. При запуске этой утилиты появляется диалоговая панель Connect, в которой следует указать имя сервера (Riven) и тип провайдера для связи с этим сервером (MSOLAP).

Верхняя панель утилиты MDX Sample Application предназначена для задания MDX-запросов. Можно вводить MDX-команды непосредственно в панели запросов или конструировать запрос, перетаскивая измерения и меры куба в панель запросов. Помимо этого можно использовать примеры функций из панели Syntax Examples. Выполнить запрос можно одним из трех способов: выбрав команду Run в меню Query; нажав клавиши F5; нажав кнопку Run Query на панели инструментов. Результат выполнения запроса отображается в нижней части экрана




Рис. 5. Окно утилиты MDX Sample Application.





Рис. 6. Пример куба.
Кроме понятий «куб», «измерение», «показатель, MDX использует следующие понятия (для примеров ниже использованы данные куба с Рис. 6):

  • Компонент (Member) — единица измерения на каждом уровне иерархии. Определяется перечислением всех узлов, расположенных на пути к вершине
    [Устройства].[All Устройства]
    [Устройства].[All Устройства]. [Принтеры]
    [Устройства].[All Устройства]. [Принтеры].[Лазерные]
    [Устройства].[All Устройства]. [Принтеры].[Лазерные].
    [Принтер лазерный А3 HP LJ-5100]

  • Кортеж (Tuple)  — коллекция ячеек куба, соответствующих некоторой комбинации значений измерений. Определяется как набор компонентов в круглых скобках. Размерность кортежа – множество измерений компонентов, вошедших в кортеж.
    ([Measures].[Стоимость], [Поставщики].[All Поставщики]. [ИнСис Лтд.],
    [Дата поступления].[All Дата поступления].[2000].[Quarter 4])

  • Множество (Set) — набор кортежей.

  • Определяется как перечисление значений (кортежей) в фигурных скобках. Размерности всех кортежей множества должны совпадать.

Запрос на языке MDX представляет собой набор команд, который выглядит следующим образом:

SELECT [<ось>   [, <ось>...]]

FROM [<куб>]

[WHERE [<срез>]]

где: <ось> —описание измерения куба-результата в виде
<множество> ON <имя оси>,

Имя: COLUMNS – колонки

ROWS – строки

PAGES – страницы

SECTIONS – разделы

CHAPTERS – главы

AXIS(<номер>) – ось с указанным номером (оси нумеруются с нуля)

Срез куба задается кортежем. Измерение не может употребляться для задания двух осей или оси и среза. Для указания множества всех компонентов иерархии (или ее уровня) применяется метод members. Кортеж заключается в круглые скобки, в то время как множество — в фигурные. Порядок перечисления измерений и мер в кортеже не имеет значения.

Результатом запроса всегда являются значения одного или нескольких показателей, соответствующих значениям измерений (см. Рис. 7). Измерения располагаются по одной или нескольким осям, определенным в запросе. Например,

select { [Дата поступления].[Year] .members } on columns,

{ [Поставщики].members } on rows

from [Приход]

where [Measures].[Стоимость]




^ Рис. 7. Результат запроса MDX.

В MDX Sample Application используются лишь оси столбцов и строк

Для определения осей можено использовать следующие функции:

Crossjoin(<Множество>, <Множество>) позволяет комбинировать несколько измерений в одно измерение куба-результата

Запрос

SELECT [Measures].AllMembers on columns,

CROSSJOIN([Устройства].[Класс].members , [Поставщики].[Поставщик].members) on rows from [Приход]

формирует многоуровневую структуру заголовков столбцов.

Filter((<Множество>, <Условия>) позволяет выполнять фильтрацию по компонентам измерения (оси).

SELECT [Measures].AllMembers on columns,

Filter ({[Поставщики].[Поставщик] .members} , [Measures].[Стоимость]>10000000) on rows

from [Приход]

^ Order(<Множество>, <Выражение> [, ASC | DESC | BASC | BDESC]) сортирует компоненты измерения с сохранением иерархии ASC | DESC или без нее BASC | BDESC.

Сортировка наименованиям компонент (меток) без учета иерархии измерения

SELECT [Measures].AllMembers on columns,
ORDER([Устройства] .members, [Устройства].CurrentMember.Name, basc) on rows from [Приход]

Сортировка поставщиков по убыванию стоимости

SELECT [Measures].AllMembers on columns,
ORDER( [Поставщики].[Поставщик].members,
[Measures].[Стоимость], desc) on rows from [Приход]

TopCount (<Множество>, n, <Выражение>) выделяет из множества первые n компонент с наибольшими значениями выражения

SELECT [Measures].AllMembers on columns,
TopCount ([Поставщики].[Поставщик].members ,3, [Measures].[Стоимость]) on rows from [Приход]

Аналогичными функциями являются TopPercent, BottomCount, BottomPercent

^ TopPercent([Поставщики].[Поставщик].members ,60, [Measures].[Стоимость])
- выделение поставщиков, суммарная стоимость которых не меньше 60%

Множество может быть задано интервалом <1-ый комонент> : <последний компонент>

SELECT [Measures].AllMembers on columns,
[Дата поступления].[All Дата поступления].[2003].[Quarter 3].[August] : [Дата поступления].[All Дата поступления].[2003].[Quarter 4].[December]
on rows from [Приход]

^ Методы указания иерархии:

.children, .FirstChild, . LastChild – «потомки» компонента иерархии

[Устройства].[All Устройства].[Компьютеры].children

.Parent – «родительский» компонент

.Siblings , .FirstSibling, .LastSibling – «соседи» по уровню

Ascendants(<комонент>)

Descendants(<комонент> [, «Level»[, «Desc_flags»]])

{Descendants([Устройства].[All Устройства].[Компьютеры], [Устройства].[Устройство])}

Определение NON EMPTY <ось> исключает компоненты измерения, у которых все клетки пустые.

^ Связывание значений при помощи кортежа

select { [Measures] .Allmembers} on columns,
FILTER( [Устройства].[Устройство].Members , ([Measures].[Количество],[Дата поступления].[All Дата поступления].[2002]) >
([Measures].[Количество],[Дата поступления].[All Дата поступления].[2003])) on rows from [Приход]
WHERE ( [Дата поступления].[All Дата поступления].[2003] )

Использование свойств измерений

<Измерение>^ [DIMENSION] PROPERTIES <поле> [,<поле>...]

select { [Measures].AllMembers} on columns,
[Устройства].[Устройство].members DIMENSION PROPERTIES [Устройства].[Устройство].Name,
[Устройства].[Устройство].Количество on rows from [Приход]

Вычисления

WITH <формула> [, <формула>] <Запрос>

Вычисление компонентов измерений

<Формула> ::= MEMBER <имя компонента> AS '<выражение>'

[,SOLVE_ORDER = <номер итерации>]

[,=<выражение>...]

где

< имя компонента > - полностью квалифицированное имя с указанием измерения и уровня иерархии, к которому будет отнесено вычисляемое значение.

< выражение > - выражение, вычисляющее значение,

< номер итерации > - порядок вычисления.

В качестве свойств ячейки можно указывать шрифты и другие особенности форматирования, например, FORMAT_STRING = '# ##0' означает вывод чисел с отбрасыванием дробной части и разделением групп разрядов. Кроме этого в список свойств входят CELL_EVALUATION_LIST – формула вычисления значения, VALUE – неформатированное значение.

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

WITH MEMBER [Measures].[Стоимость товаров за прошлый период]
AS '([Measures].[Стоимость], [Дата поступления].PrevMember)'
MEMBER [Measures].[Увеличение стоимости товаров]
AS '[Measures].[Стоимость]- [Measures].[Стоимость товаров за прошлый период]'
select { [Дата поступления].[Year] .Members} ON ROWS,
{[Measures].[Стоимость] ,
[Measures].[Стоимость товаров за прошлый период], [Measures].[Увеличение стоимости товаров] } ON COLUMNS from [Приход]


^ Передача в MS Excel результатов запросов MDX

  1. Сохранить созданное определение источника куба (*.oqy) в личную папку (вкладке «Кубы OLAP», кнопка «Обзор»).

  2. Сохраненный файл изменить в текстовом редакторе строки:

CommandType= MDX,

CommandText =<текст MDX -запроса>


^ Вычисляемые множества

Можно вычислять не только новые компоненты измерений на и множества

WITH SET AS ''

Пример

WITH

SET [Отсортированные устройства] AS 'ORDER( {[Устройства].[Устройство] .members} , [Measures].[Стоимость], desc)'

MEMBER [Measures].[All] AS ' Sum( [Устройства].[Наименование Товаров].Members , [Measures].[Стоимость]) '

MEMBER [Measures].[Процент] AS ' [Measures].[Стоимость] / [Measures].[All] ', FORMAT_STRING = '# ###.0 %'

select { [Measures].[Стоимость], [Measures].[Количество],[Measures].[Цена], [Measures].[All], [Measures].[Процент]} on columns,

[Отсортированные устройства] on rows

from [Приход]

Операции над множествами

Set1» + «Set1» объединение

«Set1» * «Set2» декартово произведение

«Set1» - «Set2» разность

«Member1»:«Member2» выделение интервала.

Функции агрегирования

Avg(«Set»[, «Numeric Expression»])

Max(«Set»[, «Numeric Expression»])

Min(«Set»[, «Numeric Expression»])

Sum(«Set»[, «Numeric Expression»])

Пример

WITH

MEMBER [Measures].[Сумма] AS ' Sum( [Устройства].[Наименование Товаров].Members , [Measures].[Стоимость]) '

MEMBER [Measures].[Процент] AS ' [Measures].[Стоимость] / [Measures].[ Сумма] ', FORMAT_STRING = '# ###.0 %'

select { [Measures].[Стоимость], [Measures].[Количество],[Measures].[Цена], [Measures].[ Сумма], [Measures].[Процент]} on columns,

CROSSJOIN( [Дата поступления].[Year] .members , ORDER( {[Устройства].[Устройство] .members} , [Measures].[Стоимость], desc)) on rows from [Приход]

Такой же результат дает запрос

WITH

MEMBER [Measures].[All] AS ' ([Measures].[Стоимость], [Дата поступления].Currentmember, [Устройства].[All Устройства]) '

MEMBER [Measures].[Процент] AS ' [Measures].[Стоимость] / [Measures].[All] ', FORMAT_STRING = '# ###.0 %'

select { [Measures].[Стоимость], [Measures].[Количество],[Measures].[Цена], [Measures].[All], [Measures].[Процент]} on columns,

CROSSJOIN( [Дата поступления].[Year] .members , ORDER( {[Устройства].[Устройство] .members} , [Measures].[Стоимость], desc)) on rows from [Приход]


Pass Order and Solve Order

Расчет куба в результате запроса требует нескольких стадий вычислений, каждая из которых называется проходом (pass). Количество проходов, необходимых для полного вычисления куба называется глубиной (calculation pass depth of the cube). Нулевой проход – извлечение данных и вычисление, связанных с ними вычисляемых показателей.

Свертки или операции (custom rollup formulas or custom rollup operators) пользователя вычисляются во время первого прохода.

Порядок решения (Solve Order) определяет последовательность вычислений внутри прохода.



Схожі:




База даних захищена авторським правом ©lib.exdat.com
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації