Ключевые понятия многомерных выражений
Рассмотрим специфические для служб SSAS понятия и термины, связанные с многомерным моделированием.
Измерение базы данных — это коллекция атрибутов измерения, связанных с ключевым атрибутом, который, в свою очередь, связан с фактами в измерении мер.
Атрибут измерения привязан к одному или более столбцам в таблице измерения и состоит из элементов. Атрибут измерения может содержать имена заказчиков, названия месяцев, названия продуктов.
Элемент — это значение атрибута измерения, в том числе измерения мер. Иерархия может содержать конечные элементы, родительские элементы, элементы данных и элемент «(Все)».
Мера — это значение из таблицы фактов (синонимом меры является термин факт). Значение в измерении мер часто называют общим термином элемент. Мерами обычно являются числовые значения, но могут быть и строковые.
Измерение мер — это измерение, содержащее все меры куба. Измерение мер является измерением специального типа, в котором элементы обычно статистически вычислены (обычно по сумме или количеству) на основе текущего элемента каждого атрибута измерения, для которого существует данная мера.
Группа мер — это коллекция связанных мер в кубе служб SSAS (обычно меры из одной таблицы фактов). В службах SSAS куб может содержать несколько групп мер.
Элемент «(Все)» — это вычисленное значение всех элементов в иерархии атрибута или определенной пользователем иерархии.
Вычисляемый элемент — это элемент измерения, который определяется и вычисляется во время выполнения запроса. Вычисляемый элемент может быть определен в пользовательском запросе или в сценарии вычисления многомерного выражения и храниться на сервере. Вычисляемый элемент соответствует строкам в таблице измерения в измерении, где он определен.
Элемент данных — это дочерний элемент, связанный с родительским элементов в иерархии типа «родители-потомки». Элемент данных содержит значение данных для родительского элемента вместо статистического значения потомков родительского элемента.
Родительский элемент — это элемент иерархии типа «родители-потомки», содержащий статистическое значение его дочерних элементов.
Конечный элемент — это элемент иерархии, у которого нет дочерних элементов.
Дочерний элемент — это элемент иерархии ниже верхнего уровня.
Ключевой атрибут измерения базы данных — это атрибут, с которым связаны все неключевые атрибуты измерения (напрямую или косвенно). Ключевой атрибут часто является атрибутом гранулярности.
Атрибут гранулярности - атрибут измерения куба, связывающий измерение с фактами в группе мер в измерении мер. Если атрибут гранулярности и ключевой атрибут — это разные атрибуты, то неключевые атрибуты должны быть напрямую или косвенно связаны с атрибутом гранулярности. Внутри куба атрибут гранулярности определяет гранулярность измерения.
Измерение куба — это экземпляр измерения базы данных в кубе.
Иерархия атрибута — это иерархия элементов атрибута, содержащая следующие уровни.
1. конечный уровень, содержащий все отдельные элементы атрибута, и все элементы конечного уровня (конечные элементы);
2. промежуточные уровни, если иерархия атрибута является иерархией типа «родители-потомки»;
3. необязательный уровень «(Все)», содержащий статистическое значение конечных элементов иерархии атрибута, элемент этого уровня называют элементом «(Все)».
Сбалансированная иерархия — это иерархия, в которой между верхним и любым из конечных элементов расположено одинаковое количество уровней.
Несбалансированная иерархия (неровная) — это иерархия, в которой между верхним и конечным уровнями расположено разное количество уровней. Примером неровной иерархии является иерархия типа «родители-потомки». Несбалансированная иерархия также называется неровной иерархией.
Иерархия типа «родители-потомки» — это иерархия атрибута специального типа, в которой атрибут измерения имеет тип parent. Иерархия типа «родители-потомки» является несбалансированной иерархией из дочерних и родительских элементов. Иерархия типа «родители-потомки» содержит следующие уровни:
1. дочерние уровни, содержащие потомков родительских элементов. К дочерним относятся элементы атрибута, содержащие статистическое значение для родительского элемента, в том числе элементы данных;
2. промежуточные уровни, содержащие родительские элементы;
3. необязательный уровень «(Все)», содержащий статистическое значение конечных элементов иерархии типа «родители-потомки», элемент этого уровня называют элементом «(Все)».
Для каждого измерения может существовать единственная иерархия типа «родители-потомки», она должна быть связана с ключевым атрибутом.
Пользовательская иерархия - сбалансированная иерархия иерархий атрибутов, упрощающая пользователям поиск данных в кубе. Пользовательские иерархии не увеличивают размер куба. Уровни в пользовательской иерархии могут быть скрыты в некоторых ситуациях и выглядеть несбалансированными.
Связь атрибутов — это связь между атрибутами типа «один ко многим», например связь между атрибутами измерения области и города.
Свойство элемента — это свойство элемента атрибута, например пол заказчика или цвет товара.
Ячейка куба — пространство, существующее на пересечении элемента измерения меры и элемента каждой иерархии атрибута куба.
Пространство куба — это совокупность элементов иерархий атрибутов куба с мерами куба.
Вложенный куб — это подмножество куба, полученное на основании отфильтрованного представления куба.
Кортежи
Кортеж уникальным образом определяет ячейку на основе сочетания элементов атрибута, состоящих из атрибутов каждой иерархии атрибута куба. При определении кортежа в запросе многомерных выражений или в многомерном выражении не обязательно явно включать элемент атрибута из каждой иерархии атрибута. Если элемент из иерархии атрибута не включен явно в запрос или выражение, в кортеж неявным образом включается элемент по умолчанию данной иерархии атрибута. Если в кубе явно не указано обратное, элементом по умолчанию любой иерархии атрибута считается элемент «(Все)», если он существует. Если такой элемент отсутствует в иерархии атрибута, элементом по умолчанию считается элемент верхнего уровня иерархии. Мерой по умолчанию является первая мера указанного куба, если только мера по умолчанию не определена явно.
Например, следующий кортеж определяет одну ячейку в базе данных Adventure Works, явно определяя только один элемент в измерении Measures.
(Measures.[Reseller Sales Amount])
В примере уникально определена ячейка, состоящая из элемента Reseller Sales Amount из измерения Measures и элемента по умолчанию из каждой иерархии атрибута в кубе. Элементом по умолчанию для каждой иерархии атрибута, кроме Destination Currency, является элемент «(Все)». Элементом по умолчанию для иерархии Destination Currency является элемент US Dollar (он определен в сценарии многомерных выражений в кубе Adventure Works).
Следующий запрос возвращает значение ячейки, на которую ссылается кортеж, указанный в предыдущем примере:
SELECT
Measures.[Reseller Sales Amount] ON COLUMNS
FROM [Adventure Works]
Размерностью кортежа называют последовательность или порядок его элементов. Поскольку неявные элементы всегда расположены в одном и том же порядке, размерность практически всегда зависит от элементов кортежа, определенных явно. Порядок элементов кортежа важен при определении набора кортежей. В следующем примере кортеж содержит два элемента по оси столбцов:
SELECT
([Measures].[Reseller Sales Amount],[Date].[Calendar Year].[CY 2004]) ON COLUMNS
FROM [Adventure Works]
Кортеж в запросе возвращает ячейку куба на пересечении меры Reseller Sales Amount измерения Measures и элемента CY 2004 иерархии атрибута Calendar Year в измерении Date.
Наборы
Набором называют упорядоченное множество кортежей одинаковой размерности. Для обозначения набора кортежей используются фигурные скобки {}. Пример набора:
SELECT
{
([Measures].[Reseller Sales Amount],
[Date].[Calendar Year].[CY 2003]),
([Measures].[Reseller Sales Amount],
[Date].[Calendar Year].[CY 2004])
} ON COLUMNS
FROM [Adventure Works]
В примере все кортежи набора имеют одинаковую размерность, поскольку первый элемент каждого кортежа принадлежит измерению Measures, а второй элемент — иерархии атрибута Calendar Year.
Можно создать набор с псевдонимом, называемый именованным набором. Применение именованных наборов в запросах многомерных выражений упрощает их восприятие и дальнейшее использование при работе со сложными многомерными выражениями. Для работы с именованным набором используется ключевое слово AS вместе с необходимым псевдонимом в конце идентификатора набора.
Основные понятия о запросах многомерных выражений
В языке многомерных выражений можно обращаться с запросом к таким многомерным объектам, как кубы, и возвращать многомерные наборы ячеек, содержащие данные куба.
Базовый запрос многомерных выражений — это инструкция SELECT, наиболее частый запрос в многомерных выражениях. Чтобы получить основательные знания о применении многомерных выражений для запроса многомерных данных, необходимо понять, как в инструкции многомерных выражений SELECT определяется результирующий набор, синтаксис инструкции SELECT и как с ее помощью создавать простые запросы.
В многомерном выражении инструкция SELECT указывает результирующий набор, содержащий подмножество многомерных данных, возвращаемое из куба. Чтобы указать результирующий набор, запрос многомерных выражений должен содержать следующие данные:
- число осей или наборов иерархий. В многомерном запросе можно указать до 128 осей;
- элементы каждого измерения, включаемые в каждую ось многомерного запроса;
- имя куба, задающего контекст многомерного запроса;
- элементы оси среза, по которой отсекаются данные для элементов из осей запроса.
Для указания осей запроса куба, задающего контекст запроса, и осей среза в инструкции многомерных выражений SELECT используются следующие предложения:
- предложение SELECT, определяющее оси запроса в инструкции многомерных выражений SELECT;
- предложение FROM, определяющее источник многомерных данных для их извлечения в результирующий набор инструкции многомерных выражений SELECT;
- предложение WHERE, дополнительно определяющее, какое измерение или элемент используется в качестве оси среза для выделения данных, относящихся к конкретному измерению или элементу.
Синтаксис базовой инструкции SELECT с использованием предложений SELECT, FROM и WHERE:
[ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ]
SELECT [ * | ( <SELECT query axis clause>
[ , <SELECT query axis clause> ... ] ) ]
FROM <SELECT subcube clause>
[ <SELECT slicer axis clause> ]
[ <SELECT cell property list clause> ]
Далее приведен базовый запрос многомерных выражений на основе инструкции SELECT:
SELECT
{ [Measures].[Sales Amount],
[Measures].[Tax Amount] } ON COLUMNS,
{ [Date].[Fiscal].[Fiscal Year].&[2002],
[Date].[Fiscal].[Fiscal Year].&[2003] } ON ROWS
FROM [Adventure Works]
WHERE ( [Sales Territory].[Southwest] )
Этот запрос возвращает результирующий набор, содержащий продажи за 2002 и 2003 годы и сумму налогов для юго-западных областей продаж. Запрос содержит следующие сведения о результирующем наборе:
- предложение SELECT задает оси запроса как элементы Sales Amount и Tax Amount в измерении Measures и как элементы 2002 и 2003 в измерении Date;
- предложение FROM указывает, что источником данных является куб Adventure Works;
- предложение WHERE определяет ось среза как элемент Southwest измерения Sales Territory.
Обратите внимание, что в запросе используются псевдонимы осей COLUMNS и ROWS.
Основные понятия о сценариях многомерных выражений
В службах SSAS сценарии многомерных выражений состоят из одного или нескольких многомерных выражений или инструкций, заполняющих куб вычислениями.
Сценарий многомерных выражений определяет процесс вычислений для куба. Сценарий многомерных выражений также считается частью самого куба. Поэтому изменение сценария многомерных выражений, связанного с кубом, сразу изменяет процесс вычислений для куба.
Для создания сценариев многомерных выражений можно воспользоваться конструктором кубов в среде BI Dev Studio.
Существует два типа сценариев многомерных выражений:
1. Сценарий многомерных выражений по умолчанию. При создании куба службы SSAS создают стандартный сценарий многомерных выражений для этого куба. В этом сценарии определяется этап вычисления для всего куба.
2. Пользовательский сценарий многомерных выражений. После создания куба можно добавить пользовательские сценарии многомерных выражений, расширяющие характеристики вычисления куба.
Сценарий многомерных выражений по умолчанию, создаваемый службами SSAS при определении куба, содержит одну инструкцию CALCULATE. Эта инструкция CALCULATE находится в начале сценария многомерных выражений по умолчанию и говорит о том, что весь куб должен быть рассчитан во время первого этапа вычислений.
Сценарий многомерных выражений по умолчанию также включает в себя команды, создающие именованные наборы, назначения и вычисляемые элементы, созданные в конструкторе кубов:
- службы SSAS добавляют команды непосредственно в сценарий многомерных выражений по умолчанию;
- для каждого именованного набора в кубе в сценарий многомерных выражений по умолчанию добавляется соответствующая инструкция CREATE SET.
- для каждого вычисляемого элемента в кубе в сценарий многомерных выражений по умолчанию добавляется соответствующая инструкция CREATE MEMBER.
Если с кубом не связан ни один сценарий многомерных выражений, куб вычисляется по сценарию многомерных выражений по умолчанию. Куб должен быть связан хотя бы с одним сценарием многомерных выражений, поскольку только в сценарии определяется порядок вычисления куба.