Волгоградский государственный университет
Опубликован: 15.03.2010 | Доступ: свободный | Студентов: 2369 / 231 | Оценка: 4.39 / 4.28 | Длительность: 18:09:00
Лекция 4:

Разработка многомерных баз данных с использованием SSAS

Кортежи

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

Например, следующий кортеж определяет одну ячейку в базе данных 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.

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

Ксения Кожанова
Ксения Кожанова

Здравствуйте! Я прошла 1 лекцию и 1 самостоятельную работу. В конце контрольные вопросы, их надо для как-то ответить или куда-то отослать?

Андрей Павлов
Андрей Павлов