Использование MS SQL Server Analysis Services 2008 для построения хранилищ данных

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

Разбить на страницы
Показывать лекцию целиком

Проектирование и реализация многомерных баз данных

Решения, проекты и элементы

И среда BI Dev Studio, и среда SQL Server Management Studio предоставляют проекты, которые, в свою очередь, организованы в решения. Решение может содержать несколько проектов, а проект обычно содержит несколько элементов. При создании проекта автоматически создается новое решение, а в существующее решение при необходимости можно добавлять проекты. Объекты, которые содержатся в проекте, зависят от его типа. Элементы в каждом контейнере проекта хранятся в виде файлов, расположенных в папках проекта в файловой системе.

Типы проектов бизнес-аналитики

В Таблица 5.1 приведены типы проектов бизнес-аналитики, которые могут быть созданы в среде BI Dev Studio.

Типы проектов бизнес-аналитики в среде BI Dev Studio
Проект Описание
Проект служб Analysis Services Содержит определения объектов для одиночной базы данных служб SSAS.
Импорт базы данных служб Analysis Services 2008 Предоставляет мастер, который можно использовать для создания нового проекта служб SSAS путем импортирования определений объектов из существующей базы данных служб SSAS.
Проект служб Integration Services Содержит определения объектов для набора пакетов служб Integration Services.
Мастер проектов отчетов Предоставляет мастер, который помогает выполнить процесс создания проекта отчета с помощью служб Reporting Services.
Проект модели отчета Содержит определения объектов для модели отчета служб Reporting Services.
Проект сервера отчетов Содержит определения объектов для одного или нескольких отчетов служб Reporting Services.

Среда SSMS также содержит несколько типов проектов, предназначенных для различных типов запросов или сценариев (Таблица 5.2 ).

Типы проектов бизнес-аналитики в SSMS
Проект Описание
Сценарии служб Analysis Services Содержит сценарии расширений интеллектуального анализа данных, многомерных выражений и XML для аналитики для служб SSAS, а также соединения с экземплярами служб SSAS, в которых эти сценарии могут выполняться.
Сценарии SQL Server Compact Содержит сценарии SQL для SQL Server Compact, а также соединения с экземплярами SQL Server Compact, в которых могут выполняться эти сценарии.
Сценарии SQL Server Содержит сценарии Transact-SQL и XQuery для экземпляра компонента SQL Server Database Engine, а также соединения с экземплярами компонента SQL Server Database Engine, в которых эти сценарии могут выполняться.

Выбор между SSMS и BI Dev Studio

Среда SSMS разработана для администрирования и настройки существующих объектов в компонентах SQL Server Database Engine, Analysis Services, Integration Services и Reporting Services. Среда BI Dev Studio предназначена для разработки решений в области бизнес-аналитики, которые включают функции служб Analysis Services, Integration Services и Reporting Services.

Основные различия между SSMS и BI Dev Studio заключаются в следующем:

  • среда SSMS предоставляет интегрированную среду для соединения с экземплярами служб SSAS, SQL Server и Reporting Services, чтобы настраивать объекты, а также проводить администрирование объектов и управлять ими в пределах экземпляра служб SSAS. С использованием этих сценариев можно также использовать среду SSMS для создания или изменения объектов служб SSAS, но среда SSMS не предоставляет графический интерфейс для конструирования и определения объектов;
  • среда BI Dev Studio предоставляет интегрированную среду разработки для разработки решений бизнес-аналитики. Среду BI Dev Studio можно использовать в проектном режиме, использующем определения на основе XML объектов служб SSAS, Integration Services и Reporting Services, содержащихся в проектах и решениях. Использование среды BI Dev Studio в проектном режиме означает, что изменения объектов служб SSAS в среде BI Dev Studio применяются к определениям объектов на основе XML, но не применяются непосредственно к объекту в экземпляре служб SSAS до тех пор, пока решение не будет развернуто. Среду BI Dev Studio можно также использовать в оперативном режиме, т. е. напрямую подключаться к экземпляру служб SSAS и работать с объектами существующей базы данных.
  • Создание проекта служб Analysis Services в среде BI Dev Studio

    Создание проекта служб SSAS в среде BI Dev Studio выполняется либо с помощью шаблона проекта служб SSAS, либо с помощью мастера импорта базы данных служб Analysis Services 9.0 считывается содержимое базы данных служб SSAS, и на его основе создается проект служб SSAS.

    Если в настоящий момент в среде BI Dev Studio не загружено ни одно решение, при создании нового проекта служб SSAS будет автоматически создано новое решение. В противном случае новый проект служб SSAS может быть добавлен к существующему решению или создан в новом решении.

    Для создания проекта служб SSAS в среде BI Dev Studio необходимо выполнить следующие шаги:

  • создание проекта служб SSAS выполняется путем выбора шаблона проекта служб SSAS или с помощью мастера импорта базы данных служб Analysis Services 9.0 в группе шаблонов бизнес-аналитики диалогового окна "Добавление нового проекта", а также задания имени и размещения для нового проекта (рис 5.1(рис 5.1) Создание проекта служб SSAS
  • если определить проект служб SSAS, основанный на шаблоне проекта служб SSAS, проект шаблона будет открыт в среде BI Dev Studio, в которой можно определить источники данных, представления источников данных, кубов, измерений, ролей и других объектов служб SSAS. Можно сконструировать эти объекты, основанные на существующих источниках данных, или сформировать специальную реляционную структуру базы данных, основанную на кубе и конструкторе измерений. Также можно сконструировать куб и объекты измерения, основанные на кубе и шаблонах измерений (рис 5.2(рис 5.2) Обозреватель решений проекта Analysis Services в BI Dev Studio
  • если вновь определенный проект служб SSAS был основан на существующей базе данных служб SSAS, метаданные для этой базы данных будут открыты в проекте служб SSAS в среде BI Dev Studio, в которой можно изменить метаданные существующей базы данных. Однако до тех пор, пока изменения не будут развернуты, они не повлияют на существующие базы данных служб SSAS;
  • Создаются другие проекты, требуемые для решения бизнес-аналитики.
  • Добавляются дополнительные файлы, например текстовые файлы, содержащие примечания к проекту, в папку "Разное" проекта служб SSAS в окне обозревателя решений (рис 5.3(рис 5.3) Добавление дополнительных файлов в папку "Разное" обозревателя решений
  • определяются свойства развертывания проекта, чтобы задать сервер, на котором будут развернуты метаданные проекта как обработанные объекты, и указать другие свойства развертывания (рис 5.4(рис 5.4) Определение свойств развертывания проекта
  • Собирается (рис 5.5(рис 5.6) Построение решения(рис 5.5) Развертывание решения
  • просмотр и тестирование развернутого проекта;
  • при необходимости изменяются определения объектов, и повторяется сборка и развертывание.
  • Папки проекта служб Analysis Services

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

    Папки проекта служб SSAS
    Папка Описание
    Источники данных Содержит источники данных для проекта служб SSAS. Эти объекты создаются в мастере источников данных и редактируются в конструкторе источников данных.
    Представления источников данных Содержит представления источников данных для проекта служб SSAS. Эти объекты создаются в мастере представлений источников данных и редактируются в конструкторе представлений источников данных.
    Кубы Содержит кубы для проекта служб SSAS. Эти объекты создаются в мастере кубов и редактируются в конструкторе кубов.
    Измерения Содержит измерения для проекта служб SSAS. Эти объекты создаются в мастере измерений или мастере кубов и редактируются в конструкторе измерений.
    Структуры интеллектуального анализа данных Содержит структуры интеллектуального анализа данных для проекта служб SSAS. Эти объекты создаются в мастере моделей интеллектуального анализа данных и редактируются в конструкторе моделей интеллектуального анализа данных.
    Роли Содержит роли базы данных для проекта служб SSAS. Создание и управление ролями осуществляется в конструкторе ролей.
    Сборки Содержит ссылки на библиотеки COM и сборки платформы Microsoft .NET Framework для проекта служб SSAS. Ссылки создаются при помощи диалогового окна Добавление ссылки.
    Прочее Содержит все типы файлов, за исключением типов файлов служб SSAS.

    Типы файлов проекта Analysis Services

    Решение в среде BI Dev Studio может содержать несколько типов файлов, в зависимости от того, какие проекты включены в решение и какие элементы включены в каждый из проектов для этого решения (Таблица 5.4). Обычно файлы для каждого проекта в решении среды BI Dev Studio хранятся в папке решения, в отдельной папке для каждого проекта.

    Типы файлов проекта Analysis Services
    Тип файла Описание
    Файл определения проекта служб SSAS (DWPROJ) Содержит метаданные об элементах, конфигурациях и ссылках на сборки, определенные и включенные в проект служб SSAS.
    Пользовательские настройки проекта служб SSAS (DWPROJ.USER) Содержит данные о конфигурации проекта служб SSAS для конкретного пользователя.
    Файл источника данных (DS) Содержит элементы языка сценариев служб SSAS (ASSL), определяющие метаданные для источника данных.
    Файл представления источника данных (DSV) Содержит элементы ASSL, определяющие метаданные для представления источника данных.
    Файл куба (CUBE) Содержит элементы ASSL, определяющие метаданные для куба, включая группы мер, меры и измерения куба.
    Файл секций (PARTITIONS) Содержит элементы ASSL, определяющие метаданные для секций указанного куба.
    Файл измерения (DIM) Содержит элементы ASSL, определяющие метаданные для измерения базы данных.
    Файл структуры интеллектуального анализа данных (DMM) Содержит элементы ASSL, определяющие метаданные для структуры интеллектуального анализа данных и связанных с ней моделей интеллектуального анализа данных.
    Файл базы данных (DATABASE) Содержит элементы ASSL, определяющие метаданные для базы данных, включая типы учетных записей, переводы и разрешения базы данных.
    Файл роли базы данных (ROLE) Содержит элементы ASSL, определяющие метаданные для роли базы данных, включая членов роли.

    Запросы к многомерным базам данных

    Многомерные выражения применяются для запросов многомерных данных или для работы с кубами.

    Ключевые понятия многомерных выражений

    Рассмотрим специфические для служб SSAS понятия и термины, связанные с многомерным моделированием.

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

    Атрибут измерения привязан к одному или более столбцам в таблице измерения и состоит из элементов. Атрибут измерения может содержать имена заказчиков, названия месяцев, названия продуктов.

    Элемент - это значение атрибута измерения, в том числе измерения мер. Иерархия может содержать конечные элементы, родительские элементы, элементы данных и элемент "(Все)".

    Мера - это значение из таблицы фактов (синонимом меры является термин факт). Значение в измерении мер часто называют общим термином элемент. Мерами обычно являются числовые значения, но могут быть и строковые.

    Измерение мер - это измерение, содержащее все меры куба. Измерение мер является измерением специального типа, в котором элементы обычно статистически вычислены (обычно по сумме или количеству) на основе текущего элемента каждого атрибута измерения, для которого существует данная мера.

    Группа мер - это коллекция связанных мер в кубе служб SSAS (обычно меры из одной таблицы фактов). В службах SSAS куб может содержать несколько групп мер.

    Элемент "(Все)" - это вычисленное значение всех элементов в иерархии атрибута или определенной пользователем иерархии.

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

    Элемент данных - это дочерний элемент, связанный с родительским элементом в иерархии типа "родители-потомки". Элемент данных содержит значение данных для родительского элемента вместо статистического значения потомков родительского элемента.

    Родительский элемент - это элемент иерархии типа "родители-потомки", содержащий статистическое значение его дочерних элементов.

    Конечный элемент - это элемент иерархии, у которого нет дочерних элементов.

    Дочерний элемент - это элемент иерархии ниже верхнего уровня.

    Ключевой атрибут измерения базы данных - это атрибут, с которым связаны все неключевые атрибуты измерения (напрямую или косвенно). Ключевой атрибут часто является атрибутом гранулярности.

    Атрибут гранулярности - атрибут измерения куба, связывающий измерение с фактами в группе мер в измерении мер. Если атрибут гранулярности и ключевой атрибут - это разные атрибуты, то неключевые атрибуты должны быть напрямую или косвенно связаны с атрибутом гранулярности. Внутри куба атрибут гранулярности определяет гранулярность измерения.

    Измерение куба - это экземпляр измерения базы данных в кубе.

    Иерархия атрибута - это иерархия элементов атрибута, содержащая следующие уровни.

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

    Несбалансированная иерархия (неровная) - это иерархия, в которой между верхним и конечным уровнями расположено разное количество уровней. Примером неровной иерархии является иерархия типа "родители-потомки". Несбалансированная иерархия также называется неровной иерархией.

    Иерархия типа "родители-потомки" - это иерархия атрибута специального типа, в которой атрибут измерения имеет тип parent. Иерархия типа "родители-потомки" является несбалансированной иерархией из дочерних и родительских элементов. Иерархия типа "родители-потомки" содержит следующие уровни:

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

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

    Связь атрибутов - это связь между атрибутами типа "один ко многим", например связь между атрибутами измерения области и города.

    Свойство элемента - это свойство элемента атрибута, например пол заказчика или цвет товара.

    Ячейка куба - пространство, существующее на пересечении элемента измерения меры и элемента каждой иерархии атрибута куба.

    Пространство куба - это совокупность элементов иерархий атрибутов куба с мерами куба.

    Вложенный куб - это подмножество куба, полученное на основании отфильтрованного представления куба.

    Кортежи

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

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

    Существует два типа сценариев многомерных выражений:

  • Сценарий многомерных выражений по умолчанию. При создании куба службы SSAS создают стандартный сценарий многомерных выражений для этого куба. В этом сценарии определяется этап вычисления для всего куба.
  • Пользовательский сценарий многомерных выражений. После создания куба можно добавить пользовательские сценарии многомерных выражений, расширяющие характеристики вычисления куба.
  • Сценарий многомерных выражений по умолчанию, создаваемый службами SSAS при определении куба, содержит одну инструкцию CALCULATE. Эта инструкция CALCULATE находится в начале сценария многомерных выражений по умолчанию и говорит о том, что весь куб должен быть рассчитан во время первого этапа вычислений.

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

  • службы SSAS добавляют команды непосредственно в сценарий многомерных выражений по умолчанию;
  • для каждого именованного набора в кубе в сценарий многомерных выражений по умолчанию добавляется соответствующая инструкция CREATE SET.
  • для каждого вычисляемого элемента в кубе в сценарий многомерных выражений по умолчанию добавляется соответствующая инструкция CREATE MEMBER.
  • Если с кубом не связан ни один сценарий многомерных выражений, куб вычисляется по сценарию многомерных выражений по умолчанию. Куб должен быть связан хотя бы с одним сценарием многомерных выражений, поскольку только в сценарии определяется порядок вычисления куба.

    Страницы:

    Проектирование и реализация многомерных баз данных

    Решения, проекты и элементы

    И среда BI Dev Studio, и среда SQL Server Management Studio предоставляют проекты, которые, в свою очередь, организованы в решения. Решение может содержать несколько проектов, а проект обычно содержит несколько элементов. При создании проекта автоматически создается новое решение, а в существующее решение при необходимости можно добавлять проекты. Объекты, которые содержатся в проекте, зависят от его типа. Элементы в каждом контейнере проекта хранятся в виде файлов, расположенных в папках проекта в файловой системе.

    Типы проектов бизнес-аналитики

    В Таблица 5.1 приведены типы проектов бизнес-аналитики, которые могут быть созданы в среде BI Dev Studio.

    Типы проектов бизнес-аналитики в среде BI Dev Studio
    Проект Описание
    Проект служб Analysis Services Содержит определения объектов для одиночной базы данных служб SSAS.
    Импорт базы данных служб Analysis Services 2008 Предоставляет мастер, который можно использовать для создания нового проекта служб SSAS путем импортирования определений объектов из существующей базы данных служб SSAS.
    Проект служб Integration Services Содержит определения объектов для набора пакетов служб Integration Services.
    Мастер проектов отчетов Предоставляет мастер, который помогает выполнить процесс создания проекта отчета с помощью служб Reporting Services.
    Проект модели отчета Содержит определения объектов для модели отчета служб Reporting Services.
    Проект сервера отчетов Содержит определения объектов для одного или нескольких отчетов служб Reporting Services.

    Среда SSMS также содержит несколько типов проектов, предназначенных для различных типов запросов или сценариев (Таблица 5.2 ).

    Типы проектов бизнес-аналитики в SSMS
    Проект Описание
    Сценарии служб Analysis Services Содержит сценарии расширений интеллектуального анализа данных, многомерных выражений и XML для аналитики для служб SSAS, а также соединения с экземплярами служб SSAS, в которых эти сценарии могут выполняться.
    Сценарии SQL Server Compact Содержит сценарии SQL для SQL Server Compact, а также соединения с экземплярами SQL Server Compact, в которых могут выполняться эти сценарии.
    Сценарии SQL Server Содержит сценарии Transact-SQL и XQuery для экземпляра компонента SQL Server Database Engine, а также соединения с экземплярами компонента SQL Server Database Engine, в которых эти сценарии могут выполняться.

    Выбор между SSMS и BI Dev Studio

    Среда SSMS разработана для администрирования и настройки существующих объектов в компонентах SQL Server Database Engine, Analysis Services, Integration Services и Reporting Services. Среда BI Dev Studio предназначена для разработки решений в области бизнес-аналитики, которые включают функции служб Analysis Services, Integration Services и Reporting Services.

    Основные различия между SSMS и BI Dev Studio заключаются в следующем:

  • среда SSMS предоставляет интегрированную среду для соединения с экземплярами служб SSAS, SQL Server и Reporting Services, чтобы настраивать объекты, а также проводить администрирование объектов и управлять ими в пределах экземпляра служб SSAS. С использованием этих сценариев можно также использовать среду SSMS для создания или изменения объектов служб SSAS, но среда SSMS не предоставляет графический интерфейс для конструирования и определения объектов;
  • среда BI Dev Studio предоставляет интегрированную среду разработки для разработки решений бизнес-аналитики. Среду BI Dev Studio можно использовать в проектном режиме, использующем определения на основе XML объектов служб SSAS, Integration Services и Reporting Services, содержащихся в проектах и решениях. Использование среды BI Dev Studio в проектном режиме означает, что изменения объектов служб SSAS в среде BI Dev Studio применяются к определениям объектов на основе XML, но не применяются непосредственно к объекту в экземпляре служб SSAS до тех пор, пока решение не будет развернуто. Среду BI Dev Studio можно также использовать в оперативном режиме, т. е. напрямую подключаться к экземпляру служб SSAS и работать с объектами существующей базы данных.
  • Создание проекта служб Analysis Services в среде BI Dev Studio

    Создание проекта служб SSAS в среде BI Dev Studio выполняется либо с помощью шаблона проекта служб SSAS, либо с помощью мастера импорта базы данных служб Analysis Services 9.0 считывается содержимое базы данных служб SSAS, и на его основе создается проект служб SSAS.

    Если в настоящий момент в среде BI Dev Studio не загружено ни одно решение, при создании нового проекта служб SSAS будет автоматически создано новое решение. В противном случае новый проект служб SSAS может быть добавлен к существующему решению или создан в новом решении.

    Для создания проекта служб SSAS в среде BI Dev Studio необходимо выполнить следующие шаги:

  • создание проекта служб SSAS выполняется путем выбора шаблона проекта служб SSAS или с помощью мастера импорта базы данных служб Analysis Services 9.0 в группе шаблонов бизнес-аналитики диалогового окна "Добавление нового проекта", а также задания имени и размещения для нового проекта (рис 5.1(рис 5.1) Создание проекта служб SSAS
  • если определить проект служб SSAS, основанный на шаблоне проекта служб SSAS, проект шаблона будет открыт в среде BI Dev Studio, в которой можно определить источники данных, представления источников данных, кубов, измерений, ролей и других объектов служб SSAS. Можно сконструировать эти объекты, основанные на существующих источниках данных, или сформировать специальную реляционную структуру базы данных, основанную на кубе и конструкторе измерений. Также можно сконструировать куб и объекты измерения, основанные на кубе и шаблонах измерений (рис 5.2(рис 5.2) Обозреватель решений проекта Analysis Services в BI Dev Studio
  • если вновь определенный проект служб SSAS был основан на существующей базе данных служб SSAS, метаданные для этой базы данных будут открыты в проекте служб SSAS в среде BI Dev Studio, в которой можно изменить метаданные существующей базы данных. Однако до тех пор, пока изменения не будут развернуты, они не повлияют на существующие базы данных служб SSAS;
  • Создаются другие проекты, требуемые для решения бизнес-аналитики.
  • Добавляются дополнительные файлы, например текстовые файлы, содержащие примечания к проекту, в папку "Разное" проекта служб SSAS в окне обозревателя решений (рис 5.3(рис 5.3) Добавление дополнительных файлов в папку "Разное" обозревателя решений
  • определяются свойства развертывания проекта, чтобы задать сервер, на котором будут развернуты метаданные проекта как обработанные объекты, и указать другие свойства развертывания (рис 5.4(рис 5.4) Определение свойств развертывания проекта
  • Собирается (рис 5.5(рис 5.6) Построение решения(рис 5.5) Развертывание решения
  • просмотр и тестирование развернутого проекта;
  • при необходимости изменяются определения объектов, и повторяется сборка и развертывание.
  • Папки проекта служб Analysis Services

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

    Папки проекта служб SSAS
    Папка Описание
    Источники данных Содержит источники данных для проекта служб SSAS. Эти объекты создаются в мастере источников данных и редактируются в конструкторе источников данных.
    Представления источников данных Содержит представления источников данных для проекта служб SSAS. Эти объекты создаются в мастере представлений источников данных и редактируются в конструкторе представлений источников данных.
    Кубы Содержит кубы для проекта служб SSAS. Эти объекты создаются в мастере кубов и редактируются в конструкторе кубов.
    Измерения Содержит измерения для проекта служб SSAS. Эти объекты создаются в мастере измерений или мастере кубов и редактируются в конструкторе измерений.
    Структуры интеллектуального анализа данных Содержит структуры интеллектуального анализа данных для проекта служб SSAS. Эти объекты создаются в мастере моделей интеллектуального анализа данных и редактируются в конструкторе моделей интеллектуального анализа данных.
    Роли Содержит роли базы данных для проекта служб SSAS. Создание и управление ролями осуществляется в конструкторе ролей.
    Сборки Содержит ссылки на библиотеки COM и сборки платформы Microsoft .NET Framework для проекта служб SSAS. Ссылки создаются при помощи диалогового окна Добавление ссылки.
    Прочее Содержит все типы файлов, за исключением типов файлов служб SSAS.

    Типы файлов проекта Analysis Services

    Решение в среде BI Dev Studio может содержать несколько типов файлов, в зависимости от того, какие проекты включены в решение и какие элементы включены в каждый из проектов для этого решения (Таблица 5.4). Обычно файлы для каждого проекта в решении среды BI Dev Studio хранятся в папке решения, в отдельной папке для каждого проекта.

    Типы файлов проекта Analysis Services
    Тип файла Описание
    Файл определения проекта служб SSAS (DWPROJ) Содержит метаданные об элементах, конфигурациях и ссылках на сборки, определенные и включенные в проект служб SSAS.
    Пользовательские настройки проекта служб SSAS (DWPROJ.USER) Содержит данные о конфигурации проекта служб SSAS для конкретного пользователя.
    Файл источника данных (DS) Содержит элементы языка сценариев служб SSAS (ASSL), определяющие метаданные для источника данных.
    Файл представления источника данных (DSV) Содержит элементы ASSL, определяющие метаданные для представления источника данных.
    Файл куба (CUBE) Содержит элементы ASSL, определяющие метаданные для куба, включая группы мер, меры и измерения куба.
    Файл секций (PARTITIONS) Содержит элементы ASSL, определяющие метаданные для секций указанного куба.
    Файл измерения (DIM) Содержит элементы ASSL, определяющие метаданные для измерения базы данных.
    Файл структуры интеллектуального анализа данных (DMM) Содержит элементы ASSL, определяющие метаданные для структуры интеллектуального анализа данных и связанных с ней моделей интеллектуального анализа данных.
    Файл базы данных (DATABASE) Содержит элементы ASSL, определяющие метаданные для базы данных, включая типы учетных записей, переводы и разрешения базы данных.
    Файл роли базы данных (ROLE) Содержит элементы ASSL, определяющие метаданные для роли базы данных, включая членов роли.

    Запросы к многомерным базам данных

    Многомерные выражения применяются для запросов многомерных данных или для работы с кубами.

    Ключевые понятия многомерных выражений

    Рассмотрим специфические для служб SSAS понятия и термины, связанные с многомерным моделированием.

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

    Атрибут измерения привязан к одному или более столбцам в таблице измерения и состоит из элементов. Атрибут измерения может содержать имена заказчиков, названия месяцев, названия продуктов.

    Элемент - это значение атрибута измерения, в том числе измерения мер. Иерархия может содержать конечные элементы, родительские элементы, элементы данных и элемент "(Все)".

    Мера - это значение из таблицы фактов (синонимом меры является термин факт). Значение в измерении мер часто называют общим термином элемент. Мерами обычно являются числовые значения, но могут быть и строковые.

    Измерение мер - это измерение, содержащее все меры куба. Измерение мер является измерением специального типа, в котором элементы обычно статистически вычислены (обычно по сумме или количеству) на основе текущего элемента каждого атрибута измерения, для которого существует данная мера.

    Группа мер - это коллекция связанных мер в кубе служб SSAS (обычно меры из одной таблицы фактов). В службах SSAS куб может содержать несколько групп мер.

    Элемент "(Все)" - это вычисленное значение всех элементов в иерархии атрибута или определенной пользователем иерархии.

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

    Элемент данных - это дочерний элемент, связанный с родительским элементом в иерархии типа "родители-потомки". Элемент данных содержит значение данных для родительского элемента вместо статистического значения потомков родительского элемента.

    Родительский элемент - это элемент иерархии типа "родители-потомки", содержащий статистическое значение его дочерних элементов.

    Конечный элемент - это элемент иерархии, у которого нет дочерних элементов.

    Дочерний элемент - это элемент иерархии ниже верхнего уровня.

    Ключевой атрибут измерения базы данных - это атрибут, с которым связаны все неключевые атрибуты измерения (напрямую или косвенно). Ключевой атрибут часто является атрибутом гранулярности.

    Атрибут гранулярности - атрибут измерения куба, связывающий измерение с фактами в группе мер в измерении мер. Если атрибут гранулярности и ключевой атрибут - это разные атрибуты, то неключевые атрибуты должны быть напрямую или косвенно связаны с атрибутом гранулярности. Внутри куба атрибут гранулярности определяет гранулярность измерения.

    Измерение куба - это экземпляр измерения базы данных в кубе.

    Иерархия атрибута - это иерархия элементов атрибута, содержащая следующие уровни.

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

    Несбалансированная иерархия (неровная) - это иерархия, в которой между верхним и конечным уровнями расположено разное количество уровней. Примером неровной иерархии является иерархия типа "родители-потомки". Несбалансированная иерархия также называется неровной иерархией.

    Иерархия типа "родители-потомки" - это иерархия атрибута специального типа, в которой атрибут измерения имеет тип parent. Иерархия типа "родители-потомки" является несбалансированной иерархией из дочерних и родительских элементов. Иерархия типа "родители-потомки" содержит следующие уровни:

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

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

    Связь атрибутов - это связь между атрибутами типа "один ко многим", например связь между атрибутами измерения области и города.

    Свойство элемента - это свойство элемента атрибута, например пол заказчика или цвет товара.

    Ячейка куба - пространство, существующее на пересечении элемента измерения меры и элемента каждой иерархии атрибута куба.

    Пространство куба - это совокупность элементов иерархий атрибутов куба с мерами куба.

    Вложенный куб - это подмножество куба, полученное на основании отфильтрованного представления куба.

    Кортежи

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

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

    Существует два типа сценариев многомерных выражений:

  • Сценарий многомерных выражений по умолчанию. При создании куба службы SSAS создают стандартный сценарий многомерных выражений для этого куба. В этом сценарии определяется этап вычисления для всего куба.
  • Пользовательский сценарий многомерных выражений. После создания куба можно добавить пользовательские сценарии многомерных выражений, расширяющие характеристики вычисления куба.
  • Сценарий многомерных выражений по умолчанию, создаваемый службами SSAS при определении куба, содержит одну инструкцию CALCULATE. Эта инструкция CALCULATE находится в начале сценария многомерных выражений по умолчанию и говорит о том, что весь куб должен быть рассчитан во время первого этапа вычислений.

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

  • службы SSAS добавляют команды непосредственно в сценарий многомерных выражений по умолчанию;
  • для каждого именованного набора в кубе в сценарий многомерных выражений по умолчанию добавляется соответствующая инструкция CREATE SET.
  • для каждого вычисляемого элемента в кубе в сценарий многомерных выражений по умолчанию добавляется соответствующая инструкция CREATE MEMBER.
  • Если с кубом не связан ни один сценарий многомерных выражений, куб вычисляется по сценарию многомерных выражений по умолчанию. Куб должен быть связан хотя бы с одним сценарием многомерных выражений, поскольку только в сценарии определяется порядок вычисления куба.

    Вернуться к учебному плану