Создание структуры многомерного анализа
Выражение cube_expression обозначает имя куба или подраздела куба, из которого вы желаете извлечь данные. Куб, указанный в предложении FROM, называют контекстом куба (cube context), и запрос MDX выполняется внутри этого контекста. То есть, каждая часть выражения axis_expression будет извлекаться из контекста куба, указанного в предложении FROM. Рассмотрим случай, когда куб содержит данные… Читать ещё >
Создание структуры многомерного анализа (реферат, курсовая, диплом, контрольная)
Запрос на языке MDX представляет собой набор команд, который выглядит следующим образом:
[WITH [, …]].
SELECT [, […]].
FROM [].
[WHERE [slicer_expression]].
где: axis_specification — содержит описание осей куба; cube_specification — содержит название куба; slicer_specification — содержит описание срезов куба.
Ключевые слова WITH, SELECT, FROM и WHERE в сочетании с выражениями, следующими за ними, принято называть предложениями (clause). В представленном выше шаблоне запроса MDX в квадратные скобки заключены необязательные элементы, которые могут присутствовать в одних запросах и отсутствовать в других.
Выражение SELECT.
В языке MDX выражение SELECT используется для задания набора данных, содержащего подмножество многомерных данных. Предложения WITH и WHERE являются необязательными, поскольку они заключены в квадратные скобки ([]). Таким образом, простейший запрос выглядит следующим образом:
SELECT.
FROM [Adventure Works].
Этот запрос MDX возвращает единственное значение; кортеж, ссылающийся на него, использует для возвращения этого значения заданные по умолчанию члены измерений.
Фактические данные содержатся в специальном измерении, которое называется Measures. Если приведенный выше запрос отправить к экземпляру Analysis Services, то в результате получим заданный по умолчанию член измерения Measures, который является одной из размерностей куба. Результатом данного запроса является значение, полученное путем агрегации значений всех относящихся к этой размерности ячеек куба для заданных по умолчанию значений каждого измерения куба.
Предложение WITH используется для пользовательских вычислений и операций.
Инструкция SELECT языка MDX используется для извлечения подмножества многомерных данных из сервера OLAP. язык MDX предоставляет вам возможность извлекать данные по нескольким осям. В языке MDX используется следующий синтаксис для инструкции SELECT:
SELECT [, […]].
Выражение axis_expression, указанное после ключевого слова SELECT, ссылается на измерение, представляющее те данные, которые вы желаете извлечь. Эти измерения называют осевыми измерениями (axis dimensions), поскольку представленные ими данные проецируются на соответствующие оси. Для выражения axis_expression используется следующий синтаксис:
:= ON Axis (номер оси) Язык MDX предоставляет возможность указать до 128 осей в инструкции SELECT. Первые пять осей имеют псевдонимы. Это оси COLUMNS (столбцы), ROWS (строки), PAGES (страницы), SECTIONS (разделы) и CHAPTERS (главы). Последующие оси указываются с помощью слова Axis, за которым следует номер оси. Рассмотрим следующий пример.
SELECT Measures. [Internet Sales Amount] ON COLUMNS,.
[Customers]. [Country]. MEMBERS on ROWS,.
[Product]. [Product Line]. MEMBERS on PAGES.
В приведенной выше инструкции SELECT указаны три оси. В этом примере данные из измерений Measures, Customers и Product отображаются на трех осях, чтобы сформировать осевые измерения.
При определении инструкции SELECT вы создаете осевое измерение. Инструкция SELECT назначает набор осям COLUMNS и ROWS (а также дополнительным осям, если в вашем запросе используется более двух осей). В отличие от измерения среза данных (slicer dimension), которое описывается далее в этой главе, осевое измерение извлекает и содержит данные для нескольких членов, а не для единственного члена.
Выражение FROM.
Предложение FROM в запросе MDX определяет куб, из которого извлекаются данные для анализа. Предложение FROM обязательно для любого запроса MDX.
Для предложения FROM используется следующий синтаксис:
FROM.
Выражение cube_expression обозначает имя куба или подраздела куба, из которого вы желаете извлечь данные. Куб, указанный в предложении FROM, называют контекстом куба (cube context), и запрос MDX выполняется внутри этого контекста. То есть, каждая часть выражения axis_expression будет извлекаться из контекста куба, указанного в предложении FROM.
SELECT [Measures]. [Internet Sales Amount] ON COLUMNS.
FROM [Adventure Works].
Выше приведен пример правильного запроса MDX, который извлекает размерность [Internet Sales Amount] по оси X. Указанная размерность извлекается из контекста куба [Adventure Works].
Выражение WHERE.
Для задания условия отбора применяется предложение WHERE. Инструкция WHERE ограничивает набор результатов запроса с помощью некоторого критерия.
SELECT Measures. [Sales] ON COLUMS,.
[Product]. [Product Line]. MEMBERS on ROWS.
FROM ProductsCube.
WHERE ([Product]. [Color]. Silver]).
Два столбца, выбираемых запросом SQL, теперь представлены по осям COLUMNS и ROWS. Условие в предложении WHERE запроса SQL теперь преобразовано в предложение WHERE запроса MDX, являющееся срезом куба, содержащим информацию о товарах серебристого цвета.
Измерение среза (slicer dimension) создается при определении предложения WHERE; это фильтр, который исключает нежелательные измерения и члены. Измерение среза включает и все те оси куба, которые не включены явно в оси, указанные в определении запроса. Заданные по умолчанию члены иерархий, которые не включены в оси запроса, используются в осях среза данных. результатом измерения среза является один кортеж. Если в оси среза определено несколько кортежей, то они будут обработаны как набор, а их значения — агрегированы с использованием размерности, заданной в запросе, и функции агрегации из этой размерности.
Выражение WITH.
Типичными вычислениями, которые создаются с использованием предложения WITH, являются именованные наборы и вычисляемые члены. Кроме этого, предложение WITH обеспечивает возможность определять вычисления по ячейкам, загружать куб в кэш Analysis Services для улучшения выполнения запроса, изменять содержимое ячеек с помощью вызова функций из внешних библиотек, а также позволяет реализовать некоторые сложные концепции типа порядка вычисления и очередности прохода.
Для предложения WITH используется следующий синтаксис.
[WITH [, …]].
Предложение WITH позволяет определять несколько вычислений внутри одной инструкции. Выражение formula_expression варьируется в зависимости от типа вычислений. При использовании в предложении WITH нескольких вычислений они отделяются друг от друга запятыми.
Именованные наборы.
Именованный набор — это просто псевдоним для обычного выражения MDX, описывающего набор. Такой псевдоним можно использовать в любом месте внутри запроса вместо того, чтобы вводить реальное выражение, описывающее набор.
Рассмотрим случай, когда куб содержит данные о продажах для клиентов из разных стран. Предположим, что нужно извлечь информацию для клиентов из Европы. Для этого вам потребуется использовать члены иерархии Customer (Клиент) для различных стран Европы. В таком случае ваш запрос MDX может выглядеть следующим образом.
SELECT Measures. Internet Sales Amount] on COLUMNS,.
{[Customer]. Country]. Country]. &[France],.
[Customer]. Country]. Country]. &[Germany],.
[Customer]. Country]. Country]. &[United Kingdom]} ON ROWS.
FROM [Adventure Works].
Для именованного набора выражение formula_expression в предложении WITH выглядит следующим образом:
Formula_expression := SET AS [']['].
В качестве псевдонима можно использовать любое имя, которое обычно заключают в квадратные скобки. В выражении, определяющем именованный набор, используются ключевые слова SET и AS. Набор кортежей не обязательно заключать в одинарные кавычки (''). Одинарные кавычки используются лишь для обеспечения обратной совместимости, поскольку они требуются для версии Analysis Services 2000.
Вычисляемые члены.
Вычисляемые члены представляют собой вычисления, определяемые выражениями MDX. Таким образом вычисляемые члены позволяют получить результат, основанный на вычислении выражений MDX, а не просто извлечь исходные фактические данные. В языке MDX для создания вычисляемых членов в предложении WITH используются ключевые слова MEMBER и AS.
WITH MEMBER [MEASURES]. Profit] AS '([Measures]. Internet Sales.
Amount] - [Measures]. Total Product Cost])'.
SELECT [MEASURES]. Profit] ON COLUMNS,.
[Customer]. Country]. MEMBERS ON ROWS.
FROM [Adventure Works].
В примере 1 вычисляемый член Profit (Прибыль) определен как разность размерностей [Internet Sales Amount] (Сумма Интернет-продаж) и [Total Product Cost] (Общая стоимость товара). При выполнении данного запроса для каждой страны вычисляемый член будет получен на основе вычисления выражения MDX.