Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемkek.ksu.ru
1 Хранилища данных Автор: кандидат физ.-мат. наук, Степанов Р.Г. Казанский (Приволжский) Федеральный Университет Казань, 2011
2 Язык MDX SQL Structured Query Language (язык структурированных запросов). Служит для выполнения запросов к реляционной базе данных. MDX Multi-Dimendional eXpressions (язык многомерных выражений). Используется для извлечения из баз данных OLAP. Язык MDX позволяет выполнять более сложные операции, чем SQL. Изначально MDX разработан компанией Microsoft в 1998 г.
3 Язык MDX MDX поддерживается многими ведущими производителями решений для OLAP. Серверы: MS SQL Server Analysis Services, Mondrian, Palo, Applix, Microstrategy, SAS, SAP, Whitelight, NCR Клиенты: Panorama Software, Proclarity, AppSource, Cognos, Business Objects, Brio Technology, Crystal Reports, MS Excel, и т.д. MDX стандартный язык запросов в спецификации XML for Analysis (XMLA).
4 Основные объекты многомерных баз данных Куб (Cube); Измерение (Dimension) играет роль справочника; Мера (Measure) количественная сущность;
5 Пример запроса MDX SELECT Measures.[Internet Sales Amount] ON COLUMNS FROM [Adventure Works] WHERE ( [Date].[Calendar].[Calendar Quarter].&[2003]&[2], [Product].[Product Line].[Mountain], [Customer].[Country].[Australia]) Результат: Internet Sales Amount $323,561.09
6 Основы Измерение содержит одну или несколько иерархий. Каждый уровень иерархии измерения содержит набор элементов, называемых членами (members). Каждый член иерархии имеет уникальное имя. Пример: член уровня [Calendar Quarter] иерархии [Calendar] измерения [Date]: [Date].[Calendar].[Calendar Quarter].[Q2 CY 2005]
7 Основы В общем случае для доступа к члену иерархии можно использовать форматы: [Имя измерения].[Имя иерархии].[Имя уровня].[Имя члена]. [ ].[ ].[ ]. ….[ ] Пример: [Customer].[Country].[Australia] [Место]. [Иерархия_Место].[РФ].[Москва]
8 Объект Measures Объект Measures (меры) специальное измерение, содержащее в качестве членов набор мер. Пример мера Internet Sales Amount: Measures.[Internet Sales Amount] Для каждой меры задана функция агрегации.
9 Срез куба Ячейка (cell) куба идентифицируется набором членов измерений, на пересечении которых находится эта ячейка. Срез куба (slice) также задается набором членов измерений, определяющих срез. Синтаксис: в круглых скобках перечисляются члены измерений, разделенные запятыми. Если кортеж задается только одним членом измерения, то скобки можно опускать.
10 Кортеж Примеры: [Customer].[Country].[Germany] ( [Date].[Calendar].[Calendar Quarter].[Q2 CY 2003], [Product].[Product Line].[Mountain], [Customer].[Country].[Australia]). Подобное выражение на языке MDX называется кортежем (tuple).
11 Пример 1. Запрос для получения суммы продаж через Интернет для всех клиентов из Германии: SELECT Measures.[Internet Sales Amount] on COLUMNS FROM [Adventure Works] WHERE ([Customer].[Country].[Germany]) Результат: $2,894,312.34
12 Набор Набор (set) это совокупность кортежей, которые определены с использованием одинакового количества одних и тех же измерений. Набор обычно заключается в фигурные скобки {}. Пример: {(Customer.Country.Australia), (Customer.Country.Canada)}
13 MDX-запрос Синтаксис MDX-запроса: [WITH [,...]] SELECT [, [...]] FROM [ ] [WHERE [slicer_expression]] Фразы WITH и WHERE являются необязательными.
14 Оси в MDX := ON (ось) | Axis (номер оси) | (номер оси) Пять осей имеют псевдонимы: COLUMNS, ROWS, PAGES, SECTIONS и CHAPTERS. Последующие оси указываются с помощью слова Axis, за которым следует номер оси. В запросе можно указать до 128 осей.
15 Пример 2. SELECT Measures.[Internet Sales Amount] ON COLUMNS, [Customers].[Country].MEMBERS on ROWS, [Product].[Product Line].MEMBERS on PAGES FROM [Adventure Works] эквивалентен SELECT Measures.[Internet Sales Amount] ON 0, [Customers].[Country].MEMBERS on 1, [Product].[Product Line].MEMBERS on 2 FROM [Adventure Works]
16 Секция FROM Предложение FROM в MDX-запросе определяет куб, из которого необходимо извлечь данные для анализа. В запросе MDX можно указать имя только одного куба данных. Данные из других кубов можно получить, используя функцию LookupCube языка MDX.
17 Секция WHERE - здесь указывается срез куба, который нас интересует. SELECT [Measures].[Internet Sales Amount] ON COLUMNS, [Product].[Product Line].MEMBERS on ROWS FROM [Adventure Works] WHERE ([Product].[Color].[Silver]) Internet Sales Amount All Products$5,113, Accessory$40, Components(null) Mountain$5,073,081.41
18 Секция WITH Используется для выполнения дополнительных вычислений в рамках запроса. Синтаксис: [WITH [, …]]
19 Именованные наборы Formula_expression := [DYNAMIC] SET AS ['] ['] WITH SET [EUROPE] AS '{[Customer].[Country].[Country].&[France], [Customer].[Country].[Country].&[Germany],[Customer].[Coun try]. [Country].&[United Kingdom]} ' SELECT Measures.[Internet Sales Amount] on COLUMNS, [EUROPE] ON ROWS FROM [Adventure Works]
20 Вычисляемые члены Formula_expression := MEMBER AS ['] ['], [, SOLVE_ORDER = ] [, = ] WITH MEMBER [MEASURES].[Profit] AS '[Measures].[Internet Sales Amount]-[Measures].[Internet Standard Product Cost]' SELECT Measures.profit ON COLUMNS, [Customer].[Country].MEMBERS ON ROWS FROM [Adventure Works]
21 ProductRankSales Amount All Products1$109,809, Road2$48,262, Mountain3$42,456, Touring4$16,010, Accessory5$2,539, Components6$540, WITH SET [ProductOrder] AS 'Order([Product].[Product Line].MEMBERS, [Internet Sales Amount], BDESC)' MEMBER [Measures].[ProductRank] AS 'Rank([Product].[Product Line].CURRENTMEMBER, [ProductOrder])' SELECT {[ProductRank],[Sales Amount]} ON COLUMNS, [ProductOrder] on ROWS FROM [Adventure Works]
22 Пример 4. WITH MEMBER [Date].[Calendar].[%Change] AS 100* (([Date].[Calendar].[Calendar Quarter].[Q2 CY 2002] - [Date].[Calendar].[Calendar Quarter].[Q1 CY 2002]) / [Date].[Calendar].[Calendar Quarter].[Q2 CY 2002]) SELECT {[Date].[Calendar].[Calendar Quarter].[Q1 CY 2002], [Date].[Calendar].[Calendar Quarter].[Q2 CY 2002], [Date].[Calendar].[%Change]} ON COLUMNS, {Measures.[Internet Sales Amount],[Measures].[Customer Count], [Measures].[Internet Gross Profit]} ON ROWS FROM [Adventure Works]
23 Пример 4.
24 Пример 5. WITH MEMBER [Date].[Calendar].[First8MonthsCY2003] AS Aggregate(YTD([Date].[Calendar].[Month].[August 2003])) SELECT [Date].[Calendar].[First8MonthsCY2003] ON COLUMNS, [Product].[Category].Children ON ROWS FROM [Adventure Works] WHERE [Measures].[Order Quantity] First8MonthsCY2003 Accessories9,98 Bikes21,62 Clothing18,85 Components13,3
25 Другие элементы MDX Комментарии // здесь следует комментарий -- здесь следует комментарий /* здесь следует комментарий */ Арифметические операторы +, –, * и / Операторы наборов Операторы сравнения, >=, = и Логические операторы AND, OR, XOR, NOT
26 Операторы наборов '+' - объединение наборов '-' - разность двух наборов '*' - векторное произведение двух наборов Двоеточие ':' SELECT [Measures].[Internet Sales Amount] ON 0, {[Date].[Calendar].[CY 2001]:[Date].[Calendar].[CY 2003]} ON 1 FROM [Adventure Works]
27 Функции MDX Функции для members Members при применении к иерархии возвращает набор всех членов иерархии, независимо от уровня; при применении к уровню возвращает набор всех членов измерения на данном уровне. Children, Parent перемещение вверх и вниз по уровням. PrevMember, NextMember, Lag, Lead перемещение в пределах одного уровня FirstChild, LastChild возвращает первый (последний) потомок данного элемента. MemberToStr( ), StrToMember( );
28 Функции MDX Функции наборов CrossJoin возвращает все возможные комбинации членов наборов, указанных в качестве ее аргументов. CrossJoin(Выражение_набора [, Выражение_набора …]) Filter ограничивает результаты запроса на основе некоторого условия. Filter( Выражение_набора, {Логическое_выражение | [CAPTION | KEY | NAME] = Строковое_выражение})
29 Пример 6. SELECT Measures.[Internet Sales Amount] ON COLUMNS, FILTER(CROSSJOIN( {Product.[Product Line].[Product Line].MEMBERS}, {[Customer].[Country].MEMBERS}), [Internet Sales Amount] > ) ON ROWS FROM [Adventure Works]
30 Пример 6. Результаты запроса Internet Sales Amount MountainAll Customers$10,251, MountainAustralia$2,906, MountainUnited States$3,547, RoadAll Customers$14,624, RoadAustralia$5,029, RoadUnited States$4,322, TouringAll Customers$3,879,331.82
31 Функция Exists Exists( Set_Expression1, Set_Expression2 [, MeasureGroupName] ) - возвращает кортежи из набора 1, которые существуют вместе с одним или более кортежем из набора 2. Клиенты из Калифорнии: SELECT [Measures].[Internet Sales Amount] ON 0, EXISTS([Customer].[Customer].[Customer].MEMBERS, {[Customer].[State-Province].&[CA]&[US]}) ON 1 FROM [Adventure Works]
32 Функции MDX. Продолжение Справочник по функциям MDX в составе MSDN:
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.