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

Определение связей между измерениями и группами мер

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

Теоретическое введение

Связи измерений

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

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

Связи обычного измерения

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

При определении нового измерения куба или новой группы мер, службы SSAS попытаются определить, существует ли обычная связь, и установить настройку использования измерения в значение Regular. Связь обычного измерения можно просмотреть или отредактировать на вкладке "Использование измерения" конструктора кубов.

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

Например, может быть необходимо установить атрибут гранулярности для измерения "Время" равным атрибуту "Месяц", а не атрибуту "День", если используется группа мер "Квота на продажу" или "Бюджет".

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

Связи ссылочного измерения

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

(рис 10.1) Схема соединения ссылочного измерения с таблицей мер

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

На рисунок 10.2 показана одна таблица фактов "InternetSales" и две таблицы измерений " Customer " и " Geography ", связанные по схеме "снежинка".

(рис 10.2) Пример связи ссылочного измерения с таблицей мер

Можно создать измерение с таблицей " Customer " в качестве главной таблицы и таблицей " Geography ", включенной в качестве связанной. После этого определяется обычная связь между измерением и группой мер " InternetSales ".

Другой вариант - создать два измерения, связанные с группой мер " InternetSales ": измерение, основанное на таблице " Customer " и измерение, основанное на таблице " Geography ". После этого можно связать измерение " Geography " с группой мер " InternetSales ", используя связь ссылочного измерения, в которую входит измерение " Customer ". В этом случае, когда факты в группе мер " InternetSales " измеряются измерением " Geography ", факты измеряются по заказчикам и по географии. Если куб содержит вторую группу мер " ResellerSales ", то измерить факты в группе мер " ResellerSales " по таблице Geography невозможно, поскольку связи между группой мер " ResellerSales " и " Geography " не существует.

Ограничения на количество ссылочных измерений, которые могут быть соединены друг с другом, нет (рисунок 10.3).

(рис 10.3) Два ссылочных измерения

Связь ссылочного измерения определяется на вкладке "Использование измерения" конструктора кубов. Связь ссылочного измерения определяется путем указания следующих параметров:

  • Промежуточное измерение, с которым необходимо соединяться. Это может быть обычное измерение или другое ссылочное измерение.
  • Атрибут ссылочного измерения, который определяет самый низкий уровень, для которого измерение доступно для статистической обработки по отношению к группе мер.
  • Атрибут (внешний ключ) в промежуточном измерении, соответствующий атрибуту ссылочного измерения.
  • Обратим внимание, что столбец, соединяющий ссылочное измерение с таблицей фактов, который обычно является ключевым атрибутом ссылочного измерения, должен также быть определен в качестве атрибута в промежуточном измерении. При создании цепи ссылочных измерений необходимо начать с создания обычной связи между первым измерением в цепи и группой мер. Затем по порядку создайте все дополнительные ссылочные связи. Ссылочная связь может быть создана только с измерением, в котором существует связь с группой мер.

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

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

    Связи измерения фактов

    Иногда пользователи хотят иметь возможность вводить для мер измерения, которые образуются из элементов данных таблицы фактов, или создавать запросы к таблице фактов для получения специальных дополнительных сведений, таких как номера счетов или номера заказов на покупку, относящихся к конкретным фактам продаж. При определении измерения, основанного на подобных элементах таблиц фактов, оно называется измерением фактов. Измерения фактов также называют вырожденными измерениями. Измерения фактов полезны для группирования строк таблицы фактов, например для выбора всех строк, относящихся к определенному номеру счета. Хотя можно поместить эти сведения в отдельную таблицу измерения в реляционной базе данных, создание такой таблицы измерения не принесет пользы, потому что таблица измерения станет расти так же быстро, как и таблица фактов, что будет лишь порождать дублирование и приведет к необоснованной сложности таблицы.

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

    Например, на рисунок 10.4 приведена таблица фактов FactResellerSales из образца базы данных Adventure Works DW.

    (рис 10.4) Пример таблицы фактов с измерениями фактов

    Эта таблица содержит данные об атрибутах не только для каждой строки заказа, оформленного посредником, но и для самого заказа. Атрибуты, обведенные на рисунок 10.4 идентифицируют данные в таблице " FactResellerSales ", которые можно использовать в качестве атрибутов в измерении. В этом случае два дополнительных элемента данных - сопроводительный номер перевозчика и номер заказа на покупку, оформленного посредником, представлены столбцами атрибутов " CarrierTrackingNumber " и " CustomerPONumber ". Это весьма полезные сведения. Например, пользователи определенно будут заинтересованы в просмотре статистических сведений (например, суммарной стоимости продуктов) для всех заказов, поставляемых по одному сопроводительному номеру. Однако без измерения данные по этим двум атрибутам не могут быть ни организованы, ни статистически обработаны.

    Теоретически можно создать таблицу измерения, использующую те же самые ключевые данные, что и таблица " FactResellerSales ", и переместить два остальных столбца атрибутов, " CarrierTrackingNumber " и " CustomerPONumber ", в эту таблицу измерения. Однако при этом произойдет дублирование значительной части данных, а также излишнее усложнение хранилища данных с целью представления всего двух атрибутов в отдельном измерении.

    Службы Analysis Services позволяют указать, следует данные измерения фактов повторить в MOLAP -структуре измерения (это повышает производительность обработки запросов) или же определить измерение фактов как измерение ROLAP, чтобы сохранить место в хранилище за счет снижения производительности обработки запросов. При хранении измерения в режиме хранения MOLAP все элементы измерения, помимо хранения в секциях группы мер, хранятся в экземпляре служб Analysis Services в крайне сжатой структуре MOLAP. При хранении измерения в режиме хранения ROLAP только определение измерения хранится в структуре MOLAP, сами же элементы измерения запрашиваются из соответствующей реляционной таблицы фактов во время обработки запроса. Выбор подходящего режима хранения зависит от того, как часто обращаются с запросами к измерению фактов, сколько строк возвращает типичный запрос, каковы производительность обработки запроса и стои мость обработки. Определение измерения как ROLAP не требует, чтобы все кубы, использующие это измерение, также хранились в режиме ROLAP.

    При определении измерения фактов можно задать связь между этим измерением и группой мер как связь фактов. К связям фактов применяются следующие ограничения:

  • атрибут гранулярности должен быть ключевым столбцом для измерения, что образует связь "один к одному" между измерением и фактами в таблице фактов;
  • измерение может иметь связь фактов только с одной группой мер.
  • Связи измерений "многие ко многим"

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

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

    Для обеспечения поддержки связи измерений "многие ко многим" в представлении источника данных должна быть установлена связь по внешнему ключу между всеми участвующими таблицами, как показано на рисунок 10.5 В противном случае будет невозможно выбрать верную промежуточную группу мер при установке связи на вкладке "Использование измерения конструктора кубов".

    (рис 10.5) Логическая схема измерения "Многие ко многим"

    Связь измерений "многие ко многим" определяет взаимосвязь между измерением и группой мер, указывая промежуточную таблицу фактов, которая соединена с таблицей измерения. Таблица промежуточного измерения, в свою очередь, соединена как с промежуточной таблицей фактов, так и с таблицей фактов, на которой основана группа мер, указанная в связи. Связи "многие ко многим" между промежуточной таблицей фактов с одной стороны и таблицей измерения в связи и промежуточным измерением с другой стороны создают связи "многие ко многим" между элементами первичного измерения и мерами в группе мер, указанной этой связью.

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

    Практические задания

    Определение ссылочной связи

    При выполнении предыдущих лабораторных работ каждое определенное измерение куба основывалось на таблице, непосредственно связанной с таблицей фактов для группы мер через связь "внешний ключ - первичный ключ". В задачах этого раздела измерение " Geography " будет связано с таблицей фактов через измерение " Reseller ", которое называется ссылочным измерением. Это позволяет пользователям распределить товарооборот посредников по географии.

    Распределение показателя "Reseller Sales - Sales Amount" по измерению "Geography"

    В обозревателе решений щелкните правой кнопкой мыши куб " Analysis Services Tutorial " в папке "Кубы" и нажмите кнопку "Обозреватель".

    Удалите из области данных все иерархии. Добавьте меру " Reseller Sales - Sales Amount " в раздел данных области данных (рисунок 10.6)

    (рис 10.6) Добавление меры меру "Reseller Sales - Sales Amount" в область данных

    Из измерения " Geography "в области метаданных перетащите определяемую пользователем иерархию " Geographies " в область "Перетащите сюда поля строк в области данных" (рисунок 10.7)

    (рис 10.7) Добавление пользовательской иерархии "Geographies"

    Обратите внимание, что мера " Reseller Sales - Sales Amount " распределена по элементам атрибута " Country-Region " в иерархии " Geographies " неверно.

    Откройте конструктор представлений источника данных для представления источника данных DW Adventure Works (рисунок 10.8 )

    (рис 10.8) Представление источника данных DW Adventure Works

    В области "Организатор схем" просмотрите связь между таблицами " Geography " и " ResellerSales ". Обратите внимание, что прямой связи между этими таблицами нет. Однако между ними существует косвенная связь через таблицу " Reseller " или " SalesTerritory ".

    Дважды щелкните стрелку, представляющую связь между первичным и внешним ключами таблиц " Geography " и " Reseller ". Обратите внимание, что в диалоговом окне "Изменить связь" столбец " GeographyKey " является первичным ключом в таблице " Geography " и внешним ключом в таблице " Reseller " (рисунок 10.9)

    (рис 10.9) Диалоговое окно "Изменить связь"

    Нажмите кнопку "Отмена", перейдите в конструктор кубов для куба "Analysis Services Tutorial" и откройте вкладку "Использование измерения" (рисунок 10.9)

    (рис 10.9) Вкладка "Использование измерения" конструктора кубов

    Обратите внимание, что измерение куба " Geography " сейчас не имеет связей ни с группой мер " Internet Sales ", ни с группой мер " Reseller Sales ".

    Нажмите кнопку с многоточием (…) в ячейке " Full Name " на пересечении измерения " Customer " и группы мер " Internet Sales ". Обратите внимание, что в диалоговом окне "Задание связи" между таблицей измерения " DimCustomer " и таблицей группы мер " FactInternetSales " определена связь с типом "обычная", которая основана на столбце " CustomerKey " в каждой из этих таблиц (рисунок 10.11 Все связи, определенные до настоящего момента, имели такой тип.

    (рис 10.11) Диалоговое окно "Задание связи"

    Нажмите кнопку "Отмена". Нажмите кнопку с многоточием (…) в ячейке без имени на пересечении измерения " Geography " и группы мер " Reseller Sales " (рисунок 10.12)

    (рис 10.12) Диалоговое окно "Задание связи"

    Обратите внимание, что в диалоговом окне "Задание связи" в настоящее время не определены никакие связи между измерением куба " Geography " и группой мер " Reseller Sales ". Невозможно определить обычную связь, поскольку не существует прямой связи между таблицей измерения для измерения " Geography " и таблицей фактов для группы мер " Reseller Sales ".

    В раскрывающемся списке "Выберите тип связи" выберите значение "Ссылочная" (рисунок 10.13 Для определения ссылочной связи указывается измерение, непосредственно связанное с таблицей группы мер, которое называется промежуточным измерением и может использоваться в службах SSAS для связи ссылочного измерения с таблицей фактов. Затем следует указать атрибут, который связывает это ссылочное измерение с данным промежуточным измерением.

    (рис 10.13) Выбранный тип связи

    В списке "Промежуточное измерение" выберите значение " Reseller ". Базовая таблица для измерения " Geography " связана с таблицей фактов через базовую таблицу для измерения " Reseller ".

    В списке "Атрибут ссылочного измерения" выберите значение " Geography Key ", а затем попробуйте выбрать " Geography Key " в списке "Атрибут промежуточного измерения" (рисунок 10.14)

    (рис 10.14) Выбор атрибута промежуточного измерения

    Обратите внимание, что параметр " Geography Key " не отображается в списке "Атрибут промежуточного измерения". Это обусловлено тем, что столбец "GeographyKey" не определен в качестве атрибута измерения " Reseller Sales ". Нажмите кнопку "Отмена".

    Далее предстоит решить эту проблему, определив атрибут, основанный на столбце " GeographyKey " в измерении " Reseller ".

    Определение атрибута промежуточного измерения и ссылочной связи измерений

    Откройте измерение " Reseller " в конструкторе измерений и просмотрите столбцы в таблице " Reseller " в области "Представление источника данных", а также определенные атрибуты в измерении " Reseller " в области "Атрибуты" (рисунок 10.15)

    (рис 10.15) Измерение "Reseller" в конструкторе измерений

    Обратите внимание, что, хотя " GeographyKey " определен как столбец в таблице " Reseller ", в измерении " Reseller ", основанном на этом столбце, атрибуты измерения не определены. " GeographyKey " определен как атрибут измерения в измерении " Geography ", поскольку это ключевой столбец, связывающий базовую таблицу для этого измерения с таблицей фактов.

    Чтобы добавить атрибут " Geography Key " в измерение " Reseller ", щелкните правой кнопкой столбец " GeographyKey " в области "Представление источника данных" и в контекстном меню выберите команду "Создать атрибут из столбца" (рисунок 10.16)

    (рис 10.16) Контекстное меню столбца "Geography Key"

    В области "Атрибуты" выберите атрибут " Geography Key " и в окне свойств задайте для свойства " AttributeHierarchyOptimizedState " значение " NotOptimized ", а для свойств " AttributeHierarchyOrdered " и " AttributeHierarchyVisible " - значение " False " (рисунок 10.17)

    (рис 10.17) Свойства атрибута "Geography Key"

    Атрибут " Geography Key " в измерении " Reseller " будет использоваться только для того, чтобы связать измерение " Geography " с таблицей фактов " Reseller Sales ". Поскольку он не будет использоваться для навигации и просмотра, не имеет смысла определять его как видимый. Помимо этого, упорядочение и оптимизация иерархии атрибута отразились бы на производительности обработки данных только отрицательно. Однако чтобы служить связью между двумя измерениями, этот атрибут должен быть активирован.

    Перейдите в конструктор кубов для куба " Analysis Services Tutorial ", откройте вкладку "Использование измерения" и нажмите кнопку с многоточием (…) на пересечении группы мер " Reseller Sales " и измерения куба " Geography ". В списке "Выберите тип связи" выберите значение "Ссылочная". В списке "Промежуточное измерение" выберите значение " Reseller ". В списке "Атрибут ссылочного измерения" выберите " Geography Key ", а затем выберите " Geography Key " в списке "Атрибут промежуточного измерения" ().

    (рис 10.18) Создание ссылочной связи

    Обратите внимание, что установлен флажок "Материализовать". Это является установкой по умолчанию для многомерных измерений OLAP ( MOLAP ). Материализация связи атрибута изменения заставляет значение связи между таблицей фактов и ссылочным измерением для каждой строки при обработке материализоваться, то есть сохраняться в структуре измерения MOLAP на время обработки. Это оказывает незначительное влияние на производительность и требования к хранению данных, но увеличивает производительность запросов (иногда значительно). Нажмите кнопку ОК.

    Обратите внимание, что измерение куба " Geography " теперь связано с группой мер " Reseller Sales ". Значок указывает, что связь является ссылочной связью измерений (рисунок 10.19 )

    (рис 10.19) Ссылочная связь

    Распределение показателя "Reseller Sales" по измерению "Geography"

    Разверните проект "Analysis Services Tutorial". После успешного завершения развертывания в конструкторе кубов перейдите на вкладку "Обозреватель" и нажмите кнопку "Повторное соединение".

    Обратите внимание, что мера " Reseller Sales - Sales Amount " теперь верно распределена по элементам атрибута " Country-Region " в пользовательской иерархии " Geographies " (рисунок 10.20 )

    (рис 10.20) Распределение меры "Reseller Sales - Sales Amount" по иерархии "Geographies"

    Определение связи фактов

    В задачах этого раздела нужно добавить новое измерение куба, основанное на столбце " CustomerPONumber " (номер почтового отделения клиента) таблицы фактов " FactInternetSales ". Затем предстоит указать связь фактов между этим новым измерением куба и группой мер " Internet Sales ".

    Определение измерения фактов "Заказы через Интернет"

    В обозревателе решений щелкните правой кнопкой мыши узел "Измерения" и в контекстном меню выберите команду "Создать измерение" (рисунок 10.21 )

    (рис 10.21) Контекстное меню узла "Измерения"

    На странице "Вас приветствует мастер измерений" (рисунок 10.22) нажмите кнопку "Далее".

    (рис 10.22) Мастер измерений

    На странице "Выбор метода создания" выберите параметр "Использовать существующую таблицу" и нажмите кнопку "Далее" (рисунок 10.23 )

    (рис 10.23) Выбор метода создания измерения

    На странице "Определение исходных сведений" убедитесь, что выбрано представление источника данных "Adventure Works DW". В списке "Основная" таблица выберите таблицу "InternetSales". Убедитесь, что в списке "Ключевые столбцы" присутствуют столбцы " SalesOrderNumber " и " SalesOrderLineNumber ". В списке "Столбец имени" выберите столбец " SalesOrderLineNumber ". Нажмите кнопку "Далее" (рисунок 10.24 )

    (рис 10.24) Определение сведений об источнике данных

    На странице "Выбор связанных таблиц" снимите флажки для всех таблиц и нажмите кнопку "Далее" (рисунок 10.25 )

    (рис 10.25) Выбор связанных таблиц

    На странице "Выбор атрибутов измерения" дважды щелкните флажок в заголовке, чтобы снять все флажки. Атрибут " Sales Order Number " останется выбранным, поскольку он является ключевым атрибутом. Выберите атрибут " Customer PO Number " и нажмите кнопку "Далее" (рисунок 10.26 )

    (рис 10.26) Выбор атрибутов измерения

    На странице "Завершение работы мастера" измените имя на "Подробности заказа через Интернет" и нажмите кнопку "Готово" (рисунок 10.27 )

    (рис 10.27) Указание имени измерения

    В меню "Файл" выберите команду "Сохранить все". В области "Атрибуты" конструктора измерений для измерения "Подробности заказа через Интернет" выберите атрибут " Sales Order Number " и в окне свойств задайте для свойства " Name " значение "Описание позиции".

    (рис 10.28) Область "Атрибуты" конструктора измерений для измерения "Подробности заказа через Интернет"

    В ячейке свойства " NameColumn " нажмите кнопку обзора (…). В диалоговом окне "Столбец имени" выберите в списке "Исходная таблица" значение " Product ", в списке "Исходный столбец" - значение " EnglishProductName " и нажмите кнопку ОК (рисунок 10.29 )

    (рис 10.29) Выбор столбца, содержащего имя

    Добавьте атрибут " Sales Order Number " к данному измерению, перетащив столбец " SalesOrderNumber " из таблицы " InternetSales " области "Представление источника данных" в область "Атрибуты" (рисунок 10.30 )

    (рис 10.30) Добавление атрибута "Sales Order Number"

    Измените свойство " Name " нового атрибута " Sales Order Number " на "Номер заказа", а значение свойства " OrderBy " на " Key " (рисунок 10.31 )

    (рис 10.31) Свойства атрибута "Sales Order Number"

    В области "Иерархии" создайте пользовательскую иерархию "Заказы через Интернет", состоящую из уровней "Номер заказа" и "Описание позиции" в этом порядке.

    (рис 10.32)

    В области "Атрибуты" выберите "Подробности заказа через Интернет", а затем просмотрите значение свойства " StorageMode " в окне свойств (рисунок 10.33 )

    (рис 10.33) Свойство "StorageMode" измерения "Подробности заказа через Интернет"

    Обратите внимание, что данное измерение хранится как измерение MOLAP. Хотя изменение режима хранения на ROLAP позволит сократить время обработки и пространство для хранения, это произойдет за счет уменьшения скорости обработки запросов. При выполнении упражнений данной лабораторной работы в качестве режима хранения будет использован MOLAP.

    Чтобы добавить созданное измерение в куб " Analysis Services Tutorial ", переключитесь в Конструктор кубов. На вкладке "Структура куба" щелкните правой кнопкой мыши в области "Измерения" и выберите команду "Добавить измерение куба" (рисунок 10.34 )

    (рис 10.34) Контекстное меню области "Измерения" конструктора кубов

    В диалоговом окне "Добавление измерения куба" выберите измерение "Подробности заказа через Интернет" и нажмите кнопку ОК (рисунок 10.35 )

    (рис 10.35) Добавление созданного измерения

    Определение связи фактов для измерений фактов

    В конструкторе кубов для куба " Analysis Services Tutorial " перейдите на вкладку "Использование измерений" (рисунок 10.36 )

    (рис 10.36) Вкладка "Использование измерений" конструктора кубов

    Обратите внимание, что измерение куба "Подробности заказа через Интернет" автоматически настроено как измерение, имеющее связь фактов, что отражает его уникальный значок.

    Нажмите кнопку обзора (…) в ячейке "Описание позиции", на пересечении группы мер " Internet Sales " и измерения "Подробности заказа через Интернет", чтобы просмотреть свойства связи фактов. Будет открыто диалоговое окно "Задание связи" (рисунок 10.37 )

    (рис 10.37) Диалоговое окно "Задание связи"

    Обратите внимание, что настройка свойств невозможна. Нажмите кнопку "Отмена".

    Просмотр куба с использованием измерения фактов

    Разверните куб "Analysis Services Tutorial". После успешного завершения развертывания перейдите в конструкторе кубов на вкладку "Обозреватель", выберите куб "Analysis Services Tutorial" и нажмите кнопку "Повторное соединение".

    Очистите все меры и иерархии в области данных, а затем добавьте измерение " Internrt Sales - Sales Amount " в раздел строк области данных.

    В области метаданных разверните узлы " Customer ", " Location ", " Customer Geography ", "Элементы", " All Customers ", " Australia ", " Queensland ", " Brisbane ", "4000", щелкните правой кнопкой мыши элемент " Adam Powell " и выберите команду "Добавить в область вложенных кубов" (рисунок 10.38 )

    (рис 10.38) Добавление элемента измерения "Customer"

    Фильтр, согласно которому ограничивается число заказов, возвращаемых одному клиенту, позволяет пользователю выполнить детализацию по огромной таблице фактов, не ощущая заметного падения скорости обработки запросов (рисунок 10.39 )

    (рис 10.39) Фильтр

    Добавьте определяемую пользователем иерархию "Заказы через Интернет" из измерения "Подробности заказа через Интернет" в раздел строк области данных (рисунок 10.40 )

    (рис 10.40) Номера заказов и объемы закупок Адама Пауэлла

    Обратите внимание, что соответствующие номера заказов и объемы закупок Адама Пауэлла теперь отображаются в области данных.

    Раскройте один из номеров заказа в области строк, чтобы увидеть подробности выбранной позиции строки заказа (рисунок 10.41 )

    (рис 10.41) Подробности конкретного заказа

    Определение связи "многие ко многим"

    В задачах этого раздела предстоит определить измерение " Sales Reasons " (Причины продаж) и группу мер " Sales Reasons ", а также создать связь "многие ко многим" между измерением " Sales Reasons " и группой мер " Internet Sales " через группу мер " Sales Reasons ".

    Добавление необходимых таблиц к представлению источника данных

    Откройте конструктор представлений источника данных для представления источника данных " DW Adventure Works ".

    Щелкните правой кнопкой мыши область "Организатор схем" и в контекстном меню выберите команду "Создать диаграмму" (рисунок 10.42 и укажите "Причина заказа через Интернет" в качестве имени созданной диаграммы (рисунок 10.43 )

    (рис 10.43) Контекстное меню области "Организатор схем"(рис 10.42) Созданная диаграмма "Причина заказа через Интернет"

    Перетащите таблицу "InternetSales" из области "Таблицы" в область "Схема" (рисунок 10.44 )

    (рис 10.44) Добавленная на диаграмму таблица "InternetSales"

    Щелкните правой кнопкой мыши область "Диаграмма" и в контекстном меню выберите команду "Добавить или удалить таблицы". В диалоговом окне "Добавление или удаление таблиц" добавьте в список "Включенные объекты" таблицы " DimSalesReason " и " FactInternetSalesReason ", а затем нажмите кнопку ОК (рисунок 10.45

    (рис 10.45) Добавление таблиц

    В меню "Формат" выберите команду "Автоматический макет" | "Диаграмма" (рисунок 10.46 )

    (рис 10.46) Диаграмма "Причина заказа через Интернет"

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

    В окне свойств измените свойство " FriendlyName " таблицы " DimSalesReason " на " SalesReason ", затем измените свойство " FriendlyName " таблицы " FactInternetSalesReason " на " InternetSalesReason ".

    В области "Таблицы" раскройте узел " InternetSalesReason " (dbo.FactInternetSalesReason), щелкните столбец " SalesOrderNumber " и просмотрите в окне свойств свойство " DataType " для этого столбца данных (рисунок 10.47 )

    (рис 10.47) Свойство "DataType" столбца "SalesOrderNumber"

    Обратите внимание, что в качестве типа данных для столбца " SalesOrderNumber " указан тип данных string.

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

    В области "Таблицы" щелкните правой кнопкой мыши таблицу " InternetSalesReason " (dbo.FactInternetSalesReason) и в контекстном меню выберите команду "Просмотр данных" (рисунок 10.48 )

    (рис 10.48) Данные талицы "InternetSalesReason"

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

    Определение промежуточной группы мер

    Переключитесь в конструкторе кубов на куб Analysis Services Tutorial и откройте вкладку "Структура куба".

    Щелкните правой кнопкой мыши область "Меры" и в контекстном меню выберите команду "Создать группу мер" (рисунок 10.49 )

    (рис 10.49) Контекстное меню области "Меры" закладки "Структура куба" конструктора кубов

    В диалоговом окне "Создание группы мер" в списке "Выберите таблицу из представления источника данных" выберите таблицу " InternetSalesReason " и нажмите кнопку ОК ().

    (рис 10.50) Диалоговое окно "Создание группы мер"

    Обратите внимание, что в области "Меры" теперь отображается группа мер " Internet Sales Reason " (рисунок 10.51 )

    (рис 10.51) Добавленная группа мер

    Разверните группу мер " Internet Sales Reason ". Обратите внимание, что для этой группы мер определена единственная мера, "Число Internet Sales Reason ". Выберите меру "Число Internet Sales Reason " и просмотрите свойства этой меры в окне свойств ().

    (рис 10.52) Свойства меры "Число Internet Sales Reason"

    Обратите внимание, что свойство " AggregateFunction " для этой меры определено как " Count " (Число), а не " Sum " (Сумма). Это значение выбрано службами SSAS, что базовый тип данных был строковым. Другие два столбца в базовой таблице фактов не были выделены как меры, поскольку в службах SSAS они определены как числовые ключи, а не фактические меры.

    В окне "Свойства" измените значение свойства " Visible " меры "Число Internet Sales Reason Count " на " False ". Эта мера будет использована только для соединения измерения " Sales Reason ", которое предстоит определить после группы мер " Internet Sales ". Пользователи не смогут просматривать эту меру.

    Определение измерения "многие ко многим"

    В обозревателе решений щелкните правой кнопкой мыши узел "Измерения" и в контекстном меню выберите команду "Создать измерение". На странице "Вас приветствует мастер измерений" нажмите кнопку "Далее". На странице "Выбор метода создания" выберите параметр "Использовать существующую таблицу" и нажмите кнопку "Далее" (рисунок 10.53 )

    (рис 10.53) Выбор метода создания измерения

    На странице "Определение исходных сведений" убедитесь, что выбрано представление источника данных "Adventure Works DW". В списке "Основная таблица" выберите таблицу " SalesReason ". Убедитесь, что в списке "Ключевые столбцы" присутствует столбец " SalesReasonKey ". В списке "Столбец имени" выберите " SalesReasonName " (рисунок 10.54 )

    (рис 10.54) Определение исходных сведений для создания измерения

    Нажмите кнопку "Далее". На странице "Выбор атрибутов измерения" атрибут " Sales Reason Key " автоматически выбран, поскольку он является ключевым. Установите флажок рядом с атрибутом " Sales Reason Reason Type ", измените его имя на " Sales Reason Type " и нажмите кнопку "Далее" (рисунок 10.55 )

    (рис 10.55) Выбор атрибутов измерения

    На странице "Завершение работы мастера" нажмите кнопку "Готово", чтобы создать измерение " Sales Reason ". В меню "Файл" выберите команду "Сохранить все".

    В области "Атрибуты конструктора измерений" для измерения "Sales Reason" выберите " Sales Reason Key " и в окне свойств задайте для свойства " Name " значение " Sales Reason " (рисунок 10.56 )

    (рис 10.56) Свойства атрибута "Sales Reason Key"

    В области "Иерархии конструктора измерений" создайте пользовательскую иерархию "Sales Reasons", которая будет содержать уровни " Sales Reason Type " и " Sales Reason " (в указанном порядке) (рисунок 10.57

    (рис 10.57) Созданная пользовательская иерархия

    В окне свойств задайте значение "Все причины покупки" для свойства " AllMemberName " иерархии " Sales Reason " (рисунок 10.58 )

    (рис 10.58) Значение свойства "AllMemberName" иерархии "Sales Reason"

    Укажите значение "Все причины покупки" для свойства " AttributeAllMemberName " измерения " Sales Reason " (рисунок 10.59 )

    (рис 10.59) Значение свойства "AttributeAllMemberName" измерения "Sales Reason"

    Чтобы добавить созданное измерение в куб "Analysis Services Tutorial", переключитесь в Конструктор кубов. На вкладке "Структура куба" щелкните правой кнопкой мыши в области "Измерения" и в контекстном меню выберите команду "Добавить измерение куба" (рисунок 10.60 )

    (рис 10.60) Контекстное меню области "Измерения" конструктора кубов

    В диалоговом окне "Добавление измерения куба" выберите " Sales Reason " и нажмите кнопку ОК (рисунок 10.61 )

    (рис 10.61) Диалоговое окно "Добавление измерения куба"

    В меню "Файл" выберите команду "Сохранить все".

    Определение связи "многие ко многим"

    Переключитесь в конструкторе кубов на куб "Analysis Services Tutorial" и откройте вкладку "Использование измерений".

    (рис 10.62) Вкладка "Использование измерений" конструктора кубов

    Обратите внимание, что измерение " Sales Reason " имеет обычную связь, определенную группой мер " Internet Sales Reason ", но не имеет связи, определенной группами мер " Internet Sales " или " Reseller Sales ".

    Обратите внимание, что измерение "Подробности заказа через Интернет" имеет обычную связь, определенную группой мер " Internet Sales Reason ", которое в свою очередь имеет связь с типом "факт" с группой мер " Internet Sales ".

    Если измерение не найдено (или не найдено другое измерение со связью с обеими группами мер, " Internet Sales Reason " и " Internet Sales"), не получится определить связь "многие ко многим".

    Щелкните ячейку на пересечении группы мер " Internet Sales " и измерения " Sales Reason ", а затем нажмите кнопку обзора (...).

    В диалоговом окне "Задание связи" в списке "Выберите тип связи" укажите значение "Многие ко многим" ().

    (рис 10.63) Диалоговое окно "Задание связи"

    Требуется определить промежуточную группу мер, соединяющую измерение " Sales Reason " и группу мер " Internet Sales ". В списке "Промежуточная группа мер" выберите значение " Internet Sales Reason ". Нажмите кнопку ОК.

    Обратите внимание на значок "многие ко многим", который отражает связь между измерением " Sales Reason " и группой мер " Internet Sales " (рисунок 10.64 )

    (рис 10.64) Связь между измерением "Sales Reason" и группой мер "Internet Sales"

    Просмотр куба и измерения "многие ко многим"

    Разверните куб Analysis Services Tutorial. После успешного завершения развертывания перейдите на вкладку "Обозреватель" в конструкторе кубов для куба Analysis Services Tutorial и нажмите кнопку "Повторное соединение". Очистите все иерархии и меры в области данных. В раздел данных области "Данные" добавьте меру " Internet Sales-Sales Amount ".

    Добавьте определенную пользователем иерархию " Sales Reasons " из измерения " Sales Reason " в раздел строк области данных.

    В области метаданных разверните узлы " Customer ", " Location ", " Customer Geography ", "Элементы", " All Customers ", " Australia ", щелкните правой кнопкой мыши элемент " Queensland " и выберите команду "Добавить в область вложенных кубов".

    Раскройте каждый из элементов уровня " Sales Reason Type ", чтобы просмотреть суммы в долларах для каждой из причин, которые выдвинул заказчик из штата Квинсленд (Queensland) в обоснование покупки товара через Интернет (рисунок 10.65 )

    (рис 10.65) Суммы для каждой из причин покупки

    Обратите внимание, что итоговые суммы по каждой из причин покупки в совокупности больше, чем общая сумма продаж. Это вызвано тем, что некоторые заказчики указали несколько причин покупки.

    Определение степени гранулярности измерения в группе мер

    Для разных целей пользователям может понадобиться измерять данные фактов с разной степенью гранулярности или точности. Например, сведения о продажах через посредников или о продажах через Интернет могут записываться каждый день, в то время как данные о квотах продаж могут существовать только для уровня месяца или квартала. В таких случаях пользователям требуется, чтобы измерение времени обладало разной степенью гранулярности для каждой из этих разных таблиц фактов. Определить новое измерение базы данных как измерение времени с другой степенью гранулярности проще всего с помощью служб SSAS.

    По умолчанию, если измерение используется в группе мер, службы SSAS выполняют грануляцию данных в этом измерении на основе ключевого атрибута измерения. Например, если измерение времени включено в группу мер и применяемая по умолчанию степень гранулярности измерения времени составляет один день, то применяемая по умолчанию степень детализации этого измерения в группе мер также равна одному дню. Это применимо во многих случаях, например для групп мер " Internet Sales " и " Reseller Sales " в данном цикле лабораторных работ. Но когда такое измерение включается в иные типы групп мер, такие как квоты продаж или группа бюджетных показателей, более подходящей степенью гранулярности будет месяц или квартал.

    Чтобы указать степень гранулярности измерения куба, которая отличается от используемой по умолчанию, следует изменить атрибут гранулярности данного измерения куба как применяемого в конкретной группе мер на вкладке "Использование измерений" в конструкторе кубов. При изменении степени детализации измерения в конкретной группе мер на атрибут, отличный от ключевого атрибута данного измерения, необходимо обеспечить прямую или косвенную связь всех остальных атрибутов в этой группе мер с новым атрибутом гранулярности. Для этого следует указать связи атрибутов между другими атрибутами и атрибутом, заданным как атрибут гранулярности для этой группы мер. В этом случае следует указать дополнительные связи атрибутов, не удаляя существующие связи между атрибутами. Атрибут, указанный как атрибут гранулярности, становится ключевым атрибутом в группе мер для оставшихся атрибутов измерения. Если требуемые связи атрибутов не указаны, в службах SSAS статистические вычисления будут вестись неверно, что будет продемонстрировано в данной лабораторной работе.

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

    Добавление таблиц и определение группы мер "Sales Quotas"

    Перейдите в конструктор представлений источника данных к представлению источника данных DW Adventure Works. Щелкните правой кнопкой мыши область "Организатор диаграмм", в контекстном меню выберите команду "Создать диаграмму" и укажите " Sales Quotas " в качестве имени новой диаграммы (рисунок 10.66 )

    (рис 10.66) Новая диаграмма "Sales Quotas"

    Перетащите таблицы " Employee ", " Sales Territory " и " Date " из области "Таблицы" в область "Схема". Добавьте таблицу " FactSalesQuota " в область "Схема", щелкнув правой кнопкой мыши в области "Схема" и выбрав в контекстном меню команду "Добавить или удалить таблицы" (рисунок 10.67 )

    (рис 10.67) Схема "Sales Quotas"

    Обратите внимание, что таблица " SalesTerritory " связана с таблицей " FactSalesQuota " через таблицу " Employee ". Просмотрите столбцы таблицы " FactSalesQuota " (рисунок 10.68 )

    (рис 10.68) Столбцы таблицы "FactSalesQuota"

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

    В конструкторе представлений источника данных измените свойство " FriendlyName " таблицы " FactSalesQuota " на " SalesQuotas ".

    (рис 10.69) Свойства таблицы "FactSalesQuota"

    Переключитесь в конструктор кубов на Analysis Services Tutorial и откройте вкладку "Структура куба". Щелкните правой кнопкой мыши область "Меры", выберите команду "Создать группу мер", в диалоговом окне "Создание группы" мер щелкните " SalesQuotas " и нажмите кнопку ОК (рисунок 10.70 )

    (рис 10.70) Добавленная группа мер "Sales Quotas"

    Группа мер " Sales Quotas " будет отображена в области "Меры". В области "Измерения" обратите внимание, что определено новое измерение куба "Date" на основе измерения " Date " базы данных. Определение нового измерения куба по времени объясняется неопределенностью в вопросе, какое из существующих связанных со временем измерений куба должно быть связано в службах SSAS со столбцом " DateKey " таблицы фактов " FactSalesQuota ", которая лежит в основе группы мер " Sales Quotas ". Это будет исправлено позже, в другой задаче данной лабораторной работы.

    Раскройте группу мер " Sales Quotas ". В области "Меры" выберите элемент " Sales Amount Quota " и в окне свойств задайте для свойства " FormatString " значение " Currency " (рисунок 10.71 )

    (рис 10.71) Свойства элемента "Sales Amount Quota"

    Выберите меру "Число Sales Quotas" и в окне свойств задайте для свойства "FormatString" значение "# ##0,00;-# ##0,0".

    Удалите меру " Calendar Quarter " из группы мер " Sales Quotas ". В службах SSAS было определено, что лежащий в основе показателя " Calendar Quarter " столбец содержит меры. Однако данный столбец и столбец " CalendarYear " содержат значения, которые будут использованы позднее в этом разделе для связывания группы мер " Sales Quotas " с измерением даты.

    В области "Меры" щелкните правой кнопкой мыши группу мер " Sales Quotas " и выберите команду "Создать меру".

    Будет открыто диалоговое окно "Создать меру", содержащее доступные исходные столбцы для меры с типом использования "Сумма". В диалоговом окне "Создание меры" в списке "Использование" выберите значение "Подсчет различных объектов", убедитесь, что в списке "Исходная таблица" выбрана таблица " SalesQuotas ", выберите в списке "Исходный столбец" столбец " EmployeeKey " и нажмите кнопку ОК (рисунок 10.72 )

    (рис 10.72) Диалоговое окно "Создание меры"

    Обратите внимание, что это измерение создается в новой группе мер с именем " Sales Quotas 1 ". Меры числа различных объектов в SQL Server создаются в их собственных группах мер, чтобы повысить скорость обработки. (рисунок 10.73 )

    (рис 10.73) Измерение "Число различных объектов EmployeeKey"

    Задайте для свойства " Name " меры "Число различных объектов EmployeeKey " значение " Sales Person Count ", а для свойства FormatString введите значение "# ##0,00;-# ##0,0" (рисунок 10.74 )

    (рис 10.74) Свойства меры "Число различных объектов EmployeeKey"

    Просмотр мер в группе "Sales Quota" по датам

    Разверните куб Analysis Services Tutorial. После успешного завершения развертывания в конструкторе кубов, где открыт куб Analysis Services Tutotial, перейдите на вкладку "Обозреватель" и нажмите кнопку "Повторное соединение".

    Очистите все иерархии и меры в области "Данные", а затем очистите все члены измерения на панели "Фильтры". Разверните группу " Sales Quotas " продаж в области метаданных и добавьте в область данных меру " Sales Amount Quota ".

    Добавьте пользовательскую иерархию " Sales Territories " измерения " Sales Territory " в область столбцов (рисунок 10.75 )

    (рис 10.75) Мера "Sales Amount Quota" в разрезе иерархии "Sales Territories"

    Обратите внимание, что измерение куба "Sales Territory" ни прямо, ни косвенно не связано с таблицей фактов " Sales Quotas ".

    Далее будет определена ссылочная связь измерений между данным измерением и данной таблицей фактов.

    В области "Данные" щелкните стрелку "вниз" рядом с элементом " Sales Territory Group " и снимите все флажки, кроме флажка " North America ", чтобы изменить элементы измерения, отображаемые в элементе " Sales Territory Group ", на " North America " (рисунок 10.76 )

    (рис 10.76) Выбор элементов измерения "Sales Territory Group"

    В области метаданных раскройте узел " Date ". Добавьте в раздел строк пользовательскую иерархию " Date.Fiscal Date ", а затем щелкните стрелку "вниз" рядом с элементом " Fiscal Year " области "Данные" и снимите все флажки, за исключением "FY 2004", чтобы отобразить данные только для финансового года 2004 (рисунок 10.79)

    (рис 10.77) Выбор элементов измерения "Fiscal Year"

    В области "Данные" последовательно раскройте финансовый год "FY 2004", первое полугодие "H1 FY 2004", первый квартал "Q1 FY 2004" и месяц "July 2003" (рисунок 10.78 )

    (рис 10.78) Содержимое месяца "июль 2003"

    Обратите внимание, что на уровне " Month " появился только элемент " July 2003 " вместо элементов " July, 2003 ", " August, 2003 " и " September, 2003 " уровня " Month ", а на уровне " Date " появился только один элемент - " July 1, 2003 " вместо всех дней июля. Это обусловлено тем, что для данной таблицы фактов степень гранулярности установлена на уровне квартала, а степень гранулярности для измерения " Time " установлена на уровне дня. Это будет изменено позже, в следующей задаче данной лабораторной работы.

    Кроме того, обратите внимание, что значение " Sales Amount Quota " на уровнях месяца и дня равно соответствующему значению на уровне квартала и составляет 13 733 000,00. Это связано с тем, что самый подробный уровень данных для группы мер " Sales Quotas " соответствует кварталу. Это поведение будет изменено в следующей лабораторной работе.

    Определение свойств использования измерений для группы мер Sales Quotas

    Откройте в конструкторе измерений измерение " Employee ", щелкните правой кнопкой мыши столбец " SalesTerritoryKey " в области "Представление источника данных" и в контекстном меню выберите команду "Создать атрибут из столбца" (рисунок 10.79 )

    (рис 10.79) Контекстное меню столбца "SalesTerritoryKey"

    В области "Атрибуты" выберите атрибут " SalesTerritoryKey " и в окне свойств задайте для свойства " AttributeHierarchyOptimizedState " значение " NotOptimized ", а для свойств " AttributeHierarchyVisible " и " AttributeHierarchyOrdered " - значение "False" (рисунок 10.80 )

    (рис 10.80) Свойства атрибута "SalesTerritoryKey"

    Этот атрибут необходим для связи измерения " Sales Territory " с группами мер " Sales Quotas " и " Sales Quotas 1 " в качестве ссылочного измерения.

    В конструкторе кубов выберите куб "Analysis Services Tutorial" и откройте вкладку "Использование измерений", а затем просмотрите использование измерений в группах мер " Sales Quotas " и " Sales Quotas 1 " (рисунок 10.81 )

    (рис 10.81) Использование измерений в группах мер "Sales Quotas" и "Sales Quotas 1"

    Обратите внимание, что измерения куба "Employee" и "Date" соединены с группами мер " Sales Quotas " и " Sales Quotas 1 " обычными связями. Кроме того, обратите внимание, что измерение куба "Sales Territory" не связано ни с одной из этих групп мер.

    Щелкните ячейку на пересечении группы мер " Sales Quotas " и измерения " Sales Territory ", затем нажмите кнопку обзора (...). Будет открыто диалоговое окно "Задание связи". В списке "Выберите тип связи" выберите значение "Ссылочная". В списке "Промежуточное измерение" выберите значение " Employee ". В списке "Атрибут ссылочного измерения" выберите значение " Sales Territory Region ". В списке "Атрибут промежуточного измерения" выберите значение " Sales Territory Key " (ключевым столбцом атрибута " Sales Territory " является столбец " SalesTerritoryKey "). Убедитесь, что установлен флажок "Материализовать". Нажмите кнопку ОК (рисунок 10.82 )

    (рис 10.82) Диалоговое окно "Задание связи"

    Щелкните ячейку на пересечении группы мер "Sales Quota 1" и измерения "Sales Territory", затем нажмите кнопку обзора (...). Будет открыто диалоговое окно "Задание связи". В списке "Выберите тип связи" выберите значение "Ссылочная". В списке "Промежуточное измерение" выберите значение " Employee ". В списке "Атрибут ссылочного измерения" выберите значение " Sales Territory Region ". В списке "Атрибут промежуточного измерения" выберите значение " Sales Territory Key " (ключевым столбцом атрибута "Регион территории продаж" является столбец SalesTerritoryKey ). Убедитесь, что установлен флажок "Материализовать". Нажмите кнопку ОК.

    Удалите измерение куба "Date" (рисунок 10.83 )

    (рис 10.83) Удаление измерения "Date"

    Вместо четырех связанных со временем измерений куба в качестве даты, относительно которой будут распределяться квоты продаж, будет использоваться измерение куба "Order Date" из группы мер " Sales Quotas ". Это измерение куба также будет использоваться как первичное измерение даты в кубе.

    В списке "Измерения" переименуйте измерение куба "Date (Order Date)" в "Date (Date)" (рисунок 10.84 )

    (рис 10.84) Переименованное измерение "Order Date"

    Переименование измерения куба "Order Date" на "Date" упрощает его восприятие как первичного измерения даты в этом кубе.

    Нажмите кнопку обзора (…) в ячейке на пересечении группы мер " Sales Quotas " и измерения " Date (Date) ". В диалоговом окне "Определение связи" в списке "Выберите тип связи" выберите значение "Обычная". В списке "Атрибут гранулярности" выберите значение " Calendar Quarter " (рисунок 10.85 )

    (рис 10.85) Предупреждение о выборе в качестве атрибута гранулярности неключевого атрибута

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

    В области "Связь" диалогового окна "Задание связи" соедините столбцы измерений " CalendarYear " и " CalendarQuarter " из таблицы, лежащей в основе измерения " Date (Date) " куба, со столбцами " CalendarYear " и " CalendarQuarter " из таблицы, лежащей в основе группы мер " Sales Quota ", а затем нажмите кнопку ОК (рисунок 10.86 )

    (рис 10.86) Соединение столбцов измерения со столбцами группы мер

    Атрибут " Calendar Quarter " определен как атрибут гранулярности для измерения " Date (Date) " куба в группе мер " Sales Quotas ", однако атрибут " Date " продолжает оставаться атрибутом гранулярности для групп мер " Internet Sales " и " Reseller Sales ".

    Повторите предыдущие четыре шага для группы мер " Sales Quotas 1 ".

    Определение связи между атрибутом "Calendar Quarter" и другими атрибутами измерения даты

    Откройте в конструкторе измерений измерение " Date " и перейдите на вкладку "Связи атрибутов" (рисунок 10.87 )

    (рис 10.87) Связи атрибутов измерения "Date"

    Обратите внимание, что, хотя атрибут " Calendar Year " связан с атрибутом " Calendar Quarter " через атрибут " Calendar Semester ", атрибуты финансового календаря связаны только друг с другом. Они не соединены с атрибутом " Calendar Quarter ", и потому статистические вычисления в группе мер " Sales Quotas " будут выполняться неправильно.

    На схеме щелкните правой кнопкой мыши атрибут " Calendar Quarter ", а затем в контекстном меню выберите команду "Создать связь атрибутов".

    В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение " Calendar Quarter ". Установите поле "Связанный атрибут" в значение " Fiscal Quarter ". Нажмите кнопку ОК (рисунок 10.88 )

    (рис 10.88) Создание связи атрибутов

    Обратите внимание на предупреждение о том, что измерение Date содержит одну или несколько избыточных связей атрибутов, которые могут помешать статистической обработке данных, если в кубе в качестве атрибута гранулярности используется неключевой атрибут (рисунок 10.89 )

    (рис 10.89) Предупреждение о наличии избыточных связей

    Удалите связь атрибута " Fiscal Quarter " с атрибутом " Month Name " (рисунок 10.90 )

    (рис 10.90) Окончательная связь атрибутов

    В меню "Файл" выберите команду "Сохранить все".

    Просмотр мер в группе "Sales Quota" по датам

    Разверните проект Analysis Services Tutorial. После успешного завершения развертывания перейдите на вкладку "Обозреватель конструктора" кубов для куба Analysis Services Tutorial и нажмите кнопку "Повторное соединение" (рисунок 10.91

    (рис 10.91) Распределение меры "Sales Amount Quota" по измерениям "Sales Territory"

    Обратите внимание, что мера " Sales Amount Quota " правильно распределена по измерениям " Sales Territory ", потому что измерение Sales Territory теперь определено как ссылочное измерение.

    Кроме того, обратите внимание, что отображаются все элементы уровня финансового квартала, при этом значение каждого из элементов соответствует уровню квартала. Это обусловлено тем, что для данной таблицы фактов степень гранулярности установлена на уровне квартала, а степень гранулярности для измерения " Date " также установлена на уровне квартала. В следующей лабораторной работе будет рассмотрено, как распределять квартальную сумму пропорционально по месяцам.

    Контрольные вопросы

  • Каким образом измерение куба связано со схемой базы данных?
  • Как создается связь обычного измерения между измерением куба и группой мер?
  • Как создается связь ссылочного измерения между измерением куба и группой мер?
  • Дайте определение понятию "измерение фактов". Каким образом хранятся данные этих измерений?
  • Каким образом создается связь измерений "многие ко многим"?
  • Страницы:

    Теоретическое введение

    Связи измерений

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

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

    Связи обычного измерения

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

    При определении нового измерения куба или новой группы мер, службы SSAS попытаются определить, существует ли обычная связь, и установить настройку использования измерения в значение Regular. Связь обычного измерения можно просмотреть или отредактировать на вкладке "Использование измерения" конструктора кубов.

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

    Например, может быть необходимо установить атрибут гранулярности для измерения "Время" равным атрибуту "Месяц", а не атрибуту "День", если используется группа мер "Квота на продажу" или "Бюджет".

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

    Связи ссылочного измерения

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

    (рис 10.1) Схема соединения ссылочного измерения с таблицей мер

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

    На рисунок 10.2 показана одна таблица фактов "InternetSales" и две таблицы измерений " Customer " и " Geography ", связанные по схеме "снежинка".

    (рис 10.2) Пример связи ссылочного измерения с таблицей мер

    Можно создать измерение с таблицей " Customer " в качестве главной таблицы и таблицей " Geography ", включенной в качестве связанной. После этого определяется обычная связь между измерением и группой мер " InternetSales ".

    Другой вариант - создать два измерения, связанные с группой мер " InternetSales ": измерение, основанное на таблице " Customer " и измерение, основанное на таблице " Geography ". После этого можно связать измерение " Geography " с группой мер " InternetSales ", используя связь ссылочного измерения, в которую входит измерение " Customer ". В этом случае, когда факты в группе мер " InternetSales " измеряются измерением " Geography ", факты измеряются по заказчикам и по географии. Если куб содержит вторую группу мер " ResellerSales ", то измерить факты в группе мер " ResellerSales " по таблице Geography невозможно, поскольку связи между группой мер " ResellerSales " и " Geography " не существует.

    Ограничения на количество ссылочных измерений, которые могут быть соединены друг с другом, нет (рисунок 10.3).

    (рис 10.3) Два ссылочных измерения

    Связь ссылочного измерения определяется на вкладке "Использование измерения" конструктора кубов. Связь ссылочного измерения определяется путем указания следующих параметров:

  • Промежуточное измерение, с которым необходимо соединяться. Это может быть обычное измерение или другое ссылочное измерение.
  • Атрибут ссылочного измерения, который определяет самый низкий уровень, для которого измерение доступно для статистической обработки по отношению к группе мер.
  • Атрибут (внешний ключ) в промежуточном измерении, соответствующий атрибуту ссылочного измерения.
  • Обратим внимание, что столбец, соединяющий ссылочное измерение с таблицей фактов, который обычно является ключевым атрибутом ссылочного измерения, должен также быть определен в качестве атрибута в промежуточном измерении. При создании цепи ссылочных измерений необходимо начать с создания обычной связи между первым измерением в цепи и группой мер. Затем по порядку создайте все дополнительные ссылочные связи. Ссылочная связь может быть создана только с измерением, в котором существует связь с группой мер.

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

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

    Связи измерения фактов

    Иногда пользователи хотят иметь возможность вводить для мер измерения, которые образуются из элементов данных таблицы фактов, или создавать запросы к таблице фактов для получения специальных дополнительных сведений, таких как номера счетов или номера заказов на покупку, относящихся к конкретным фактам продаж. При определении измерения, основанного на подобных элементах таблиц фактов, оно называется измерением фактов. Измерения фактов также называют вырожденными измерениями. Измерения фактов полезны для группирования строк таблицы фактов, например для выбора всех строк, относящихся к определенному номеру счета. Хотя можно поместить эти сведения в отдельную таблицу измерения в реляционной базе данных, создание такой таблицы измерения не принесет пользы, потому что таблица измерения станет расти так же быстро, как и таблица фактов, что будет лишь порождать дублирование и приведет к необоснованной сложности таблицы.

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

    Например, на рисунок 10.4 приведена таблица фактов FactResellerSales из образца базы данных Adventure Works DW.

    (рис 10.4) Пример таблицы фактов с измерениями фактов

    Эта таблица содержит данные об атрибутах не только для каждой строки заказа, оформленного посредником, но и для самого заказа. Атрибуты, обведенные на рисунок 10.4 идентифицируют данные в таблице " FactResellerSales ", которые можно использовать в качестве атрибутов в измерении. В этом случае два дополнительных элемента данных - сопроводительный номер перевозчика и номер заказа на покупку, оформленного посредником, представлены столбцами атрибутов " CarrierTrackingNumber " и " CustomerPONumber ". Это весьма полезные сведения. Например, пользователи определенно будут заинтересованы в просмотре статистических сведений (например, суммарной стоимости продуктов) для всех заказов, поставляемых по одному сопроводительному номеру. Однако без измерения данные по этим двум атрибутам не могут быть ни организованы, ни статистически обработаны.

    Теоретически можно создать таблицу измерения, использующую те же самые ключевые данные, что и таблица " FactResellerSales ", и переместить два остальных столбца атрибутов, " CarrierTrackingNumber " и " CustomerPONumber ", в эту таблицу измерения. Однако при этом произойдет дублирование значительной части данных, а также излишнее усложнение хранилища данных с целью представления всего двух атрибутов в отдельном измерении.

    Службы Analysis Services позволяют указать, следует данные измерения фактов повторить в MOLAP -структуре измерения (это повышает производительность обработки запросов) или же определить измерение фактов как измерение ROLAP, чтобы сохранить место в хранилище за счет снижения производительности обработки запросов. При хранении измерения в режиме хранения MOLAP все элементы измерения, помимо хранения в секциях группы мер, хранятся в экземпляре служб Analysis Services в крайне сжатой структуре MOLAP. При хранении измерения в режиме хранения ROLAP только определение измерения хранится в структуре MOLAP, сами же элементы измерения запрашиваются из соответствующей реляционной таблицы фактов во время обработки запроса. Выбор подходящего режима хранения зависит от того, как часто обращаются с запросами к измерению фактов, сколько строк возвращает типичный запрос, каковы производительность обработки запроса и стои мость обработки. Определение измерения как ROLAP не требует, чтобы все кубы, использующие это измерение, также хранились в режиме ROLAP.

    При определении измерения фактов можно задать связь между этим измерением и группой мер как связь фактов. К связям фактов применяются следующие ограничения:

  • атрибут гранулярности должен быть ключевым столбцом для измерения, что образует связь "один к одному" между измерением и фактами в таблице фактов;
  • измерение может иметь связь фактов только с одной группой мер.
  • Связи измерений "многие ко многим"

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

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

    Для обеспечения поддержки связи измерений "многие ко многим" в представлении источника данных должна быть установлена связь по внешнему ключу между всеми участвующими таблицами, как показано на рисунок 10.5 В противном случае будет невозможно выбрать верную промежуточную группу мер при установке связи на вкладке "Использование измерения конструктора кубов".

    (рис 10.5) Логическая схема измерения "Многие ко многим"

    Связь измерений "многие ко многим" определяет взаимосвязь между измерением и группой мер, указывая промежуточную таблицу фактов, которая соединена с таблицей измерения. Таблица промежуточного измерения, в свою очередь, соединена как с промежуточной таблицей фактов, так и с таблицей фактов, на которой основана группа мер, указанная в связи. Связи "многие ко многим" между промежуточной таблицей фактов с одной стороны и таблицей измерения в связи и промежуточным измерением с другой стороны создают связи "многие ко многим" между элементами первичного измерения и мерами в группе мер, указанной этой связью.

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

    Практические задания

    Определение ссылочной связи

    При выполнении предыдущих лабораторных работ каждое определенное измерение куба основывалось на таблице, непосредственно связанной с таблицей фактов для группы мер через связь "внешний ключ - первичный ключ". В задачах этого раздела измерение " Geography " будет связано с таблицей фактов через измерение " Reseller ", которое называется ссылочным измерением. Это позволяет пользователям распределить товарооборот посредников по географии.

    Распределение показателя "Reseller Sales - Sales Amount" по измерению "Geography"

    В обозревателе решений щелкните правой кнопкой мыши куб " Analysis Services Tutorial " в папке "Кубы" и нажмите кнопку "Обозреватель".

    Удалите из области данных все иерархии. Добавьте меру " Reseller Sales - Sales Amount " в раздел данных области данных (рисунок 10.6)

    (рис 10.6) Добавление меры меру "Reseller Sales - Sales Amount" в область данных

    Из измерения " Geography "в области метаданных перетащите определяемую пользователем иерархию " Geographies " в область "Перетащите сюда поля строк в области данных" (рисунок 10.7)

    (рис 10.7) Добавление пользовательской иерархии "Geographies"

    Обратите внимание, что мера " Reseller Sales - Sales Amount " распределена по элементам атрибута " Country-Region " в иерархии " Geographies " неверно.

    Откройте конструктор представлений источника данных для представления источника данных DW Adventure Works (рисунок 10.8 )

    (рис 10.8) Представление источника данных DW Adventure Works

    В области "Организатор схем" просмотрите связь между таблицами " Geography " и " ResellerSales ". Обратите внимание, что прямой связи между этими таблицами нет. Однако между ними существует косвенная связь через таблицу " Reseller " или " SalesTerritory ".

    Дважды щелкните стрелку, представляющую связь между первичным и внешним ключами таблиц " Geography " и " Reseller ". Обратите внимание, что в диалоговом окне "Изменить связь" столбец " GeographyKey " является первичным ключом в таблице " Geography " и внешним ключом в таблице " Reseller " (рисунок 10.9)

    (рис 10.9) Диалоговое окно "Изменить связь"

    Нажмите кнопку "Отмена", перейдите в конструктор кубов для куба "Analysis Services Tutorial" и откройте вкладку "Использование измерения" (рисунок 10.9)

    (рис 10.9) Вкладка "Использование измерения" конструктора кубов

    Обратите внимание, что измерение куба " Geography " сейчас не имеет связей ни с группой мер " Internet Sales ", ни с группой мер " Reseller Sales ".

    Нажмите кнопку с многоточием (…) в ячейке " Full Name " на пересечении измерения " Customer " и группы мер " Internet Sales ". Обратите внимание, что в диалоговом окне "Задание связи" между таблицей измерения " DimCustomer " и таблицей группы мер " FactInternetSales " определена связь с типом "обычная", которая основана на столбце " CustomerKey " в каждой из этих таблиц (рисунок 10.11 Все связи, определенные до настоящего момента, имели такой тип.

    (рис 10.11) Диалоговое окно "Задание связи"

    Нажмите кнопку "Отмена". Нажмите кнопку с многоточием (…) в ячейке без имени на пересечении измерения " Geography " и группы мер " Reseller Sales " (рисунок 10.12)

    (рис 10.12) Диалоговое окно "Задание связи"

    Обратите внимание, что в диалоговом окне "Задание связи" в настоящее время не определены никакие связи между измерением куба " Geography " и группой мер " Reseller Sales ". Невозможно определить обычную связь, поскольку не существует прямой связи между таблицей измерения для измерения " Geography " и таблицей фактов для группы мер " Reseller Sales ".

    В раскрывающемся списке "Выберите тип связи" выберите значение "Ссылочная" (рисунок 10.13 Для определения ссылочной связи указывается измерение, непосредственно связанное с таблицей группы мер, которое называется промежуточным измерением и может использоваться в службах SSAS для связи ссылочного измерения с таблицей фактов. Затем следует указать атрибут, который связывает это ссылочное измерение с данным промежуточным измерением.

    (рис 10.13) Выбранный тип связи

    В списке "Промежуточное измерение" выберите значение " Reseller ". Базовая таблица для измерения " Geography " связана с таблицей фактов через базовую таблицу для измерения " Reseller ".

    В списке "Атрибут ссылочного измерения" выберите значение " Geography Key ", а затем попробуйте выбрать " Geography Key " в списке "Атрибут промежуточного измерения" (рисунок 10.14)

    (рис 10.14) Выбор атрибута промежуточного измерения

    Обратите внимание, что параметр " Geography Key " не отображается в списке "Атрибут промежуточного измерения". Это обусловлено тем, что столбец "GeographyKey" не определен в качестве атрибута измерения " Reseller Sales ". Нажмите кнопку "Отмена".

    Далее предстоит решить эту проблему, определив атрибут, основанный на столбце " GeographyKey " в измерении " Reseller ".

    Определение атрибута промежуточного измерения и ссылочной связи измерений

    Откройте измерение " Reseller " в конструкторе измерений и просмотрите столбцы в таблице " Reseller " в области "Представление источника данных", а также определенные атрибуты в измерении " Reseller " в области "Атрибуты" (рисунок 10.15)

    (рис 10.15) Измерение "Reseller" в конструкторе измерений

    Обратите внимание, что, хотя " GeographyKey " определен как столбец в таблице " Reseller ", в измерении " Reseller ", основанном на этом столбце, атрибуты измерения не определены. " GeographyKey " определен как атрибут измерения в измерении " Geography ", поскольку это ключевой столбец, связывающий базовую таблицу для этого измерения с таблицей фактов.

    Чтобы добавить атрибут " Geography Key " в измерение " Reseller ", щелкните правой кнопкой столбец " GeographyKey " в области "Представление источника данных" и в контекстном меню выберите команду "Создать атрибут из столбца" (рисунок 10.16)

    (рис 10.16) Контекстное меню столбца "Geography Key"

    В области "Атрибуты" выберите атрибут " Geography Key " и в окне свойств задайте для свойства " AttributeHierarchyOptimizedState " значение " NotOptimized ", а для свойств " AttributeHierarchyOrdered " и " AttributeHierarchyVisible " - значение " False " (рисунок 10.17)

    (рис 10.17) Свойства атрибута "Geography Key"

    Атрибут " Geography Key " в измерении " Reseller " будет использоваться только для того, чтобы связать измерение " Geography " с таблицей фактов " Reseller Sales ". Поскольку он не будет использоваться для навигации и просмотра, не имеет смысла определять его как видимый. Помимо этого, упорядочение и оптимизация иерархии атрибута отразились бы на производительности обработки данных только отрицательно. Однако чтобы служить связью между двумя измерениями, этот атрибут должен быть активирован.

    Перейдите в конструктор кубов для куба " Analysis Services Tutorial ", откройте вкладку "Использование измерения" и нажмите кнопку с многоточием (…) на пересечении группы мер " Reseller Sales " и измерения куба " Geography ". В списке "Выберите тип связи" выберите значение "Ссылочная". В списке "Промежуточное измерение" выберите значение " Reseller ". В списке "Атрибут ссылочного измерения" выберите " Geography Key ", а затем выберите " Geography Key " в списке "Атрибут промежуточного измерения" ().

    (рис 10.18) Создание ссылочной связи

    Обратите внимание, что установлен флажок "Материализовать". Это является установкой по умолчанию для многомерных измерений OLAP ( MOLAP ). Материализация связи атрибута изменения заставляет значение связи между таблицей фактов и ссылочным измерением для каждой строки при обработке материализоваться, то есть сохраняться в структуре измерения MOLAP на время обработки. Это оказывает незначительное влияние на производительность и требования к хранению данных, но увеличивает производительность запросов (иногда значительно). Нажмите кнопку ОК.

    Обратите внимание, что измерение куба " Geography " теперь связано с группой мер " Reseller Sales ". Значок указывает, что связь является ссылочной связью измерений (рисунок 10.19 )

    (рис 10.19) Ссылочная связь

    Распределение показателя "Reseller Sales" по измерению "Geography"

    Разверните проект "Analysis Services Tutorial". После успешного завершения развертывания в конструкторе кубов перейдите на вкладку "Обозреватель" и нажмите кнопку "Повторное соединение".

    Обратите внимание, что мера " Reseller Sales - Sales Amount " теперь верно распределена по элементам атрибута " Country-Region " в пользовательской иерархии " Geographies " (рисунок 10.20 )

    (рис 10.20) Распределение меры "Reseller Sales - Sales Amount" по иерархии "Geographies"

    Определение связи фактов

    В задачах этого раздела нужно добавить новое измерение куба, основанное на столбце " CustomerPONumber " (номер почтового отделения клиента) таблицы фактов " FactInternetSales ". Затем предстоит указать связь фактов между этим новым измерением куба и группой мер " Internet Sales ".

    Определение измерения фактов "Заказы через Интернет"

    В обозревателе решений щелкните правой кнопкой мыши узел "Измерения" и в контекстном меню выберите команду "Создать измерение" (рисунок 10.21 )

    (рис 10.21) Контекстное меню узла "Измерения"

    На странице "Вас приветствует мастер измерений" (рисунок 10.22) нажмите кнопку "Далее".

    (рис 10.22) Мастер измерений

    На странице "Выбор метода создания" выберите параметр "Использовать существующую таблицу" и нажмите кнопку "Далее" (рисунок 10.23 )

    (рис 10.23) Выбор метода создания измерения

    На странице "Определение исходных сведений" убедитесь, что выбрано представление источника данных "Adventure Works DW". В списке "Основная" таблица выберите таблицу "InternetSales". Убедитесь, что в списке "Ключевые столбцы" присутствуют столбцы " SalesOrderNumber " и " SalesOrderLineNumber ". В списке "Столбец имени" выберите столбец " SalesOrderLineNumber ". Нажмите кнопку "Далее" (рисунок 10.24 )

    (рис 10.24) Определение сведений об источнике данных

    На странице "Выбор связанных таблиц" снимите флажки для всех таблиц и нажмите кнопку "Далее" (рисунок 10.25 )

    (рис 10.25) Выбор связанных таблиц

    На странице "Выбор атрибутов измерения" дважды щелкните флажок в заголовке, чтобы снять все флажки. Атрибут " Sales Order Number " останется выбранным, поскольку он является ключевым атрибутом. Выберите атрибут " Customer PO Number " и нажмите кнопку "Далее" (рисунок 10.26 )

    (рис 10.26) Выбор атрибутов измерения

    На странице "Завершение работы мастера" измените имя на "Подробности заказа через Интернет" и нажмите кнопку "Готово" (рисунок 10.27 )

    (рис 10.27) Указание имени измерения

    В меню "Файл" выберите команду "Сохранить все". В области "Атрибуты" конструктора измерений для измерения "Подробности заказа через Интернет" выберите атрибут " Sales Order Number " и в окне свойств задайте для свойства " Name " значение "Описание позиции".

    (рис 10.28) Область "Атрибуты" конструктора измерений для измерения "Подробности заказа через Интернет"

    В ячейке свойства " NameColumn " нажмите кнопку обзора (…). В диалоговом окне "Столбец имени" выберите в списке "Исходная таблица" значение " Product ", в списке "Исходный столбец" - значение " EnglishProductName " и нажмите кнопку ОК (рисунок 10.29 )

    (рис 10.29) Выбор столбца, содержащего имя

    Добавьте атрибут " Sales Order Number " к данному измерению, перетащив столбец " SalesOrderNumber " из таблицы " InternetSales " области "Представление источника данных" в область "Атрибуты" (рисунок 10.30 )

    (рис 10.30) Добавление атрибута "Sales Order Number"

    Измените свойство " Name " нового атрибута " Sales Order Number " на "Номер заказа", а значение свойства " OrderBy " на " Key " (рисунок 10.31 )

    (рис 10.31) Свойства атрибута "Sales Order Number"

    В области "Иерархии" создайте пользовательскую иерархию "Заказы через Интернет", состоящую из уровней "Номер заказа" и "Описание позиции" в этом порядке.

    (рис 10.32)

    В области "Атрибуты" выберите "Подробности заказа через Интернет", а затем просмотрите значение свойства " StorageMode " в окне свойств (рисунок 10.33 )

    (рис 10.33) Свойство "StorageMode" измерения "Подробности заказа через Интернет"

    Обратите внимание, что данное измерение хранится как измерение MOLAP. Хотя изменение режима хранения на ROLAP позволит сократить время обработки и пространство для хранения, это произойдет за счет уменьшения скорости обработки запросов. При выполнении упражнений данной лабораторной работы в качестве режима хранения будет использован MOLAP.

    Чтобы добавить созданное измерение в куб " Analysis Services Tutorial ", переключитесь в Конструктор кубов. На вкладке "Структура куба" щелкните правой кнопкой мыши в области "Измерения" и выберите команду "Добавить измерение куба" (рисунок 10.34 )

    (рис 10.34) Контекстное меню области "Измерения" конструктора кубов

    В диалоговом окне "Добавление измерения куба" выберите измерение "Подробности заказа через Интернет" и нажмите кнопку ОК (рисунок 10.35 )

    (рис 10.35) Добавление созданного измерения

    Определение связи фактов для измерений фактов

    В конструкторе кубов для куба " Analysis Services Tutorial " перейдите на вкладку "Использование измерений" (рисунок 10.36 )

    (рис 10.36) Вкладка "Использование измерений" конструктора кубов

    Обратите внимание, что измерение куба "Подробности заказа через Интернет" автоматически настроено как измерение, имеющее связь фактов, что отражает его уникальный значок.

    Нажмите кнопку обзора (…) в ячейке "Описание позиции", на пересечении группы мер " Internet Sales " и измерения "Подробности заказа через Интернет", чтобы просмотреть свойства связи фактов. Будет открыто диалоговое окно "Задание связи" (рисунок 10.37 )

    (рис 10.37) Диалоговое окно "Задание связи"

    Обратите внимание, что настройка свойств невозможна. Нажмите кнопку "Отмена".

    Просмотр куба с использованием измерения фактов

    Разверните куб "Analysis Services Tutorial". После успешного завершения развертывания перейдите в конструкторе кубов на вкладку "Обозреватель", выберите куб "Analysis Services Tutorial" и нажмите кнопку "Повторное соединение".

    Очистите все меры и иерархии в области данных, а затем добавьте измерение " Internrt Sales - Sales Amount " в раздел строк области данных.

    В области метаданных разверните узлы " Customer ", " Location ", " Customer Geography ", "Элементы", " All Customers ", " Australia ", " Queensland ", " Brisbane ", "4000", щелкните правой кнопкой мыши элемент " Adam Powell " и выберите команду "Добавить в область вложенных кубов" (рисунок 10.38 )

    (рис 10.38) Добавление элемента измерения "Customer"

    Фильтр, согласно которому ограничивается число заказов, возвращаемых одному клиенту, позволяет пользователю выполнить детализацию по огромной таблице фактов, не ощущая заметного падения скорости обработки запросов (рисунок 10.39 )

    (рис 10.39) Фильтр

    Добавьте определяемую пользователем иерархию "Заказы через Интернет" из измерения "Подробности заказа через Интернет" в раздел строк области данных (рисунок 10.40 )

    (рис 10.40) Номера заказов и объемы закупок Адама Пауэлла

    Обратите внимание, что соответствующие номера заказов и объемы закупок Адама Пауэлла теперь отображаются в области данных.

    Раскройте один из номеров заказа в области строк, чтобы увидеть подробности выбранной позиции строки заказа (рисунок 10.41 )

    (рис 10.41) Подробности конкретного заказа

    Определение связи "многие ко многим"

    В задачах этого раздела предстоит определить измерение " Sales Reasons " (Причины продаж) и группу мер " Sales Reasons ", а также создать связь "многие ко многим" между измерением " Sales Reasons " и группой мер " Internet Sales " через группу мер " Sales Reasons ".

    Добавление необходимых таблиц к представлению источника данных

    Откройте конструктор представлений источника данных для представления источника данных " DW Adventure Works ".

    Щелкните правой кнопкой мыши область "Организатор схем" и в контекстном меню выберите команду "Создать диаграмму" (рисунок 10.42 и укажите "Причина заказа через Интернет" в качестве имени созданной диаграммы (рисунок 10.43 )

    (рис 10.43) Контекстное меню области "Организатор схем"(рис 10.42) Созданная диаграмма "Причина заказа через Интернет"

    Перетащите таблицу "InternetSales" из области "Таблицы" в область "Схема" (рисунок 10.44 )

    (рис 10.44) Добавленная на диаграмму таблица "InternetSales"

    Щелкните правой кнопкой мыши область "Диаграмма" и в контекстном меню выберите команду "Добавить или удалить таблицы". В диалоговом окне "Добавление или удаление таблиц" добавьте в список "Включенные объекты" таблицы " DimSalesReason " и " FactInternetSalesReason ", а затем нажмите кнопку ОК (рисунок 10.45

    (рис 10.45) Добавление таблиц

    В меню "Формат" выберите команду "Автоматический макет" | "Диаграмма" (рисунок 10.46 )

    (рис 10.46) Диаграмма "Причина заказа через Интернет"

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

    В окне свойств измените свойство " FriendlyName " таблицы " DimSalesReason " на " SalesReason ", затем измените свойство " FriendlyName " таблицы " FactInternetSalesReason " на " InternetSalesReason ".

    В области "Таблицы" раскройте узел " InternetSalesReason " (dbo.FactInternetSalesReason), щелкните столбец " SalesOrderNumber " и просмотрите в окне свойств свойство " DataType " для этого столбца данных (рисунок 10.47 )

    (рис 10.47) Свойство "DataType" столбца "SalesOrderNumber"

    Обратите внимание, что в качестве типа данных для столбца " SalesOrderNumber " указан тип данных string.

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

    В области "Таблицы" щелкните правой кнопкой мыши таблицу " InternetSalesReason " (dbo.FactInternetSalesReason) и в контекстном меню выберите команду "Просмотр данных" (рисунок 10.48 )

    (рис 10.48) Данные талицы "InternetSalesReason"

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

    Определение промежуточной группы мер

    Переключитесь в конструкторе кубов на куб Analysis Services Tutorial и откройте вкладку "Структура куба".

    Щелкните правой кнопкой мыши область "Меры" и в контекстном меню выберите команду "Создать группу мер" (рисунок 10.49 )

    (рис 10.49) Контекстное меню области "Меры" закладки "Структура куба" конструктора кубов

    В диалоговом окне "Создание группы мер" в списке "Выберите таблицу из представления источника данных" выберите таблицу " InternetSalesReason " и нажмите кнопку ОК ().

    (рис 10.50) Диалоговое окно "Создание группы мер"

    Обратите внимание, что в области "Меры" теперь отображается группа мер " Internet Sales Reason " (рисунок 10.51 )

    (рис 10.51) Добавленная группа мер

    Разверните группу мер " Internet Sales Reason ". Обратите внимание, что для этой группы мер определена единственная мера, "Число Internet Sales Reason ". Выберите меру "Число Internet Sales Reason " и просмотрите свойства этой меры в окне свойств ().

    (рис 10.52) Свойства меры "Число Internet Sales Reason"

    Обратите внимание, что свойство " AggregateFunction " для этой меры определено как " Count " (Число), а не " Sum " (Сумма). Это значение выбрано службами SSAS, что базовый тип данных был строковым. Другие два столбца в базовой таблице фактов не были выделены как меры, поскольку в службах SSAS они определены как числовые ключи, а не фактические меры.

    В окне "Свойства" измените значение свойства " Visible " меры "Число Internet Sales Reason Count " на " False ". Эта мера будет использована только для соединения измерения " Sales Reason ", которое предстоит определить после группы мер " Internet Sales ". Пользователи не смогут просматривать эту меру.

    Определение измерения "многие ко многим"

    В обозревателе решений щелкните правой кнопкой мыши узел "Измерения" и в контекстном меню выберите команду "Создать измерение". На странице "Вас приветствует мастер измерений" нажмите кнопку "Далее". На странице "Выбор метода создания" выберите параметр "Использовать существующую таблицу" и нажмите кнопку "Далее" (рисунок 10.53 )

    (рис 10.53) Выбор метода создания измерения

    На странице "Определение исходных сведений" убедитесь, что выбрано представление источника данных "Adventure Works DW". В списке "Основная таблица" выберите таблицу " SalesReason ". Убедитесь, что в списке "Ключевые столбцы" присутствует столбец " SalesReasonKey ". В списке "Столбец имени" выберите " SalesReasonName " (рисунок 10.54 )

    (рис 10.54) Определение исходных сведений для создания измерения

    Нажмите кнопку "Далее". На странице "Выбор атрибутов измерения" атрибут " Sales Reason Key " автоматически выбран, поскольку он является ключевым. Установите флажок рядом с атрибутом " Sales Reason Reason Type ", измените его имя на " Sales Reason Type " и нажмите кнопку "Далее" (рисунок 10.55 )

    (рис 10.55) Выбор атрибутов измерения

    На странице "Завершение работы мастера" нажмите кнопку "Готово", чтобы создать измерение " Sales Reason ". В меню "Файл" выберите команду "Сохранить все".

    В области "Атрибуты конструктора измерений" для измерения "Sales Reason" выберите " Sales Reason Key " и в окне свойств задайте для свойства " Name " значение " Sales Reason " (рисунок 10.56 )

    (рис 10.56) Свойства атрибута "Sales Reason Key"

    В области "Иерархии конструктора измерений" создайте пользовательскую иерархию "Sales Reasons", которая будет содержать уровни " Sales Reason Type " и " Sales Reason " (в указанном порядке) (рисунок 10.57

    (рис 10.57) Созданная пользовательская иерархия

    В окне свойств задайте значение "Все причины покупки" для свойства " AllMemberName " иерархии " Sales Reason " (рисунок 10.58 )

    (рис 10.58) Значение свойства "AllMemberName" иерархии "Sales Reason"

    Укажите значение "Все причины покупки" для свойства " AttributeAllMemberName " измерения " Sales Reason " (рисунок 10.59 )

    (рис 10.59) Значение свойства "AttributeAllMemberName" измерения "Sales Reason"

    Чтобы добавить созданное измерение в куб "Analysis Services Tutorial", переключитесь в Конструктор кубов. На вкладке "Структура куба" щелкните правой кнопкой мыши в области "Измерения" и в контекстном меню выберите команду "Добавить измерение куба" (рисунок 10.60 )

    (рис 10.60) Контекстное меню области "Измерения" конструктора кубов

    В диалоговом окне "Добавление измерения куба" выберите " Sales Reason " и нажмите кнопку ОК (рисунок 10.61 )

    (рис 10.61) Диалоговое окно "Добавление измерения куба"

    В меню "Файл" выберите команду "Сохранить все".

    Определение связи "многие ко многим"

    Переключитесь в конструкторе кубов на куб "Analysis Services Tutorial" и откройте вкладку "Использование измерений".

    (рис 10.62) Вкладка "Использование измерений" конструктора кубов

    Обратите внимание, что измерение " Sales Reason " имеет обычную связь, определенную группой мер " Internet Sales Reason ", но не имеет связи, определенной группами мер " Internet Sales " или " Reseller Sales ".

    Обратите внимание, что измерение "Подробности заказа через Интернет" имеет обычную связь, определенную группой мер " Internet Sales Reason ", которое в свою очередь имеет связь с типом "факт" с группой мер " Internet Sales ".

    Если измерение не найдено (или не найдено другое измерение со связью с обеими группами мер, " Internet Sales Reason " и " Internet Sales"), не получится определить связь "многие ко многим".

    Щелкните ячейку на пересечении группы мер " Internet Sales " и измерения " Sales Reason ", а затем нажмите кнопку обзора (...).

    В диалоговом окне "Задание связи" в списке "Выберите тип связи" укажите значение "Многие ко многим" ().

    (рис 10.63) Диалоговое окно "Задание связи"

    Требуется определить промежуточную группу мер, соединяющую измерение " Sales Reason " и группу мер " Internet Sales ". В списке "Промежуточная группа мер" выберите значение " Internet Sales Reason ". Нажмите кнопку ОК.

    Обратите внимание на значок "многие ко многим", который отражает связь между измерением " Sales Reason " и группой мер " Internet Sales " (рисунок 10.64 )

    (рис 10.64) Связь между измерением "Sales Reason" и группой мер "Internet Sales"

    Просмотр куба и измерения "многие ко многим"

    Разверните куб Analysis Services Tutorial. После успешного завершения развертывания перейдите на вкладку "Обозреватель" в конструкторе кубов для куба Analysis Services Tutorial и нажмите кнопку "Повторное соединение". Очистите все иерархии и меры в области данных. В раздел данных области "Данные" добавьте меру " Internet Sales-Sales Amount ".

    Добавьте определенную пользователем иерархию " Sales Reasons " из измерения " Sales Reason " в раздел строк области данных.

    В области метаданных разверните узлы " Customer ", " Location ", " Customer Geography ", "Элементы", " All Customers ", " Australia ", щелкните правой кнопкой мыши элемент " Queensland " и выберите команду "Добавить в область вложенных кубов".

    Раскройте каждый из элементов уровня " Sales Reason Type ", чтобы просмотреть суммы в долларах для каждой из причин, которые выдвинул заказчик из штата Квинсленд (Queensland) в обоснование покупки товара через Интернет (рисунок 10.65 )

    (рис 10.65) Суммы для каждой из причин покупки

    Обратите внимание, что итоговые суммы по каждой из причин покупки в совокупности больше, чем общая сумма продаж. Это вызвано тем, что некоторые заказчики указали несколько причин покупки.

    Определение степени гранулярности измерения в группе мер

    Для разных целей пользователям может понадобиться измерять данные фактов с разной степенью гранулярности или точности. Например, сведения о продажах через посредников или о продажах через Интернет могут записываться каждый день, в то время как данные о квотах продаж могут существовать только для уровня месяца или квартала. В таких случаях пользователям требуется, чтобы измерение времени обладало разной степенью гранулярности для каждой из этих разных таблиц фактов. Определить новое измерение базы данных как измерение времени с другой степенью гранулярности проще всего с помощью служб SSAS.

    По умолчанию, если измерение используется в группе мер, службы SSAS выполняют грануляцию данных в этом измерении на основе ключевого атрибута измерения. Например, если измерение времени включено в группу мер и применяемая по умолчанию степень гранулярности измерения времени составляет один день, то применяемая по умолчанию степень детализации этого измерения в группе мер также равна одному дню. Это применимо во многих случаях, например для групп мер " Internet Sales " и " Reseller Sales " в данном цикле лабораторных работ. Но когда такое измерение включается в иные типы групп мер, такие как квоты продаж или группа бюджетных показателей, более подходящей степенью гранулярности будет месяц или квартал.

    Чтобы указать степень гранулярности измерения куба, которая отличается от используемой по умолчанию, следует изменить атрибут гранулярности данного измерения куба как применяемого в конкретной группе мер на вкладке "Использование измерений" в конструкторе кубов. При изменении степени детализации измерения в конкретной группе мер на атрибут, отличный от ключевого атрибута данного измерения, необходимо обеспечить прямую или косвенную связь всех остальных атрибутов в этой группе мер с новым атрибутом гранулярности. Для этого следует указать связи атрибутов между другими атрибутами и атрибутом, заданным как атрибут гранулярности для этой группы мер. В этом случае следует указать дополнительные связи атрибутов, не удаляя существующие связи между атрибутами. Атрибут, указанный как атрибут гранулярности, становится ключевым атрибутом в группе мер для оставшихся атрибутов измерения. Если требуемые связи атрибутов не указаны, в службах SSAS статистические вычисления будут вестись неверно, что будет продемонстрировано в данной лабораторной работе.

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

    Добавление таблиц и определение группы мер "Sales Quotas"

    Перейдите в конструктор представлений источника данных к представлению источника данных DW Adventure Works. Щелкните правой кнопкой мыши область "Организатор диаграмм", в контекстном меню выберите команду "Создать диаграмму" и укажите " Sales Quotas " в качестве имени новой диаграммы (рисунок 10.66 )

    (рис 10.66) Новая диаграмма "Sales Quotas"

    Перетащите таблицы " Employee ", " Sales Territory " и " Date " из области "Таблицы" в область "Схема". Добавьте таблицу " FactSalesQuota " в область "Схема", щелкнув правой кнопкой мыши в области "Схема" и выбрав в контекстном меню команду "Добавить или удалить таблицы" (рисунок 10.67 )

    (рис 10.67) Схема "Sales Quotas"

    Обратите внимание, что таблица " SalesTerritory " связана с таблицей " FactSalesQuota " через таблицу " Employee ". Просмотрите столбцы таблицы " FactSalesQuota " (рисунок 10.68 )

    (рис 10.68) Столбцы таблицы "FactSalesQuota"

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

    В конструкторе представлений источника данных измените свойство " FriendlyName " таблицы " FactSalesQuota " на " SalesQuotas ".

    (рис 10.69) Свойства таблицы "FactSalesQuota"

    Переключитесь в конструктор кубов на Analysis Services Tutorial и откройте вкладку "Структура куба". Щелкните правой кнопкой мыши область "Меры", выберите команду "Создать группу мер", в диалоговом окне "Создание группы" мер щелкните " SalesQuotas " и нажмите кнопку ОК (рисунок 10.70 )

    (рис 10.70) Добавленная группа мер "Sales Quotas"

    Группа мер " Sales Quotas " будет отображена в области "Меры". В области "Измерения" обратите внимание, что определено новое измерение куба "Date" на основе измерения " Date " базы данных. Определение нового измерения куба по времени объясняется неопределенностью в вопросе, какое из существующих связанных со временем измерений куба должно быть связано в службах SSAS со столбцом " DateKey " таблицы фактов " FactSalesQuota ", которая лежит в основе группы мер " Sales Quotas ". Это будет исправлено позже, в другой задаче данной лабораторной работы.

    Раскройте группу мер " Sales Quotas ". В области "Меры" выберите элемент " Sales Amount Quota " и в окне свойств задайте для свойства " FormatString " значение " Currency " (рисунок 10.71 )

    (рис 10.71) Свойства элемента "Sales Amount Quota"

    Выберите меру "Число Sales Quotas" и в окне свойств задайте для свойства "FormatString" значение "# ##0,00;-# ##0,0".

    Удалите меру " Calendar Quarter " из группы мер " Sales Quotas ". В службах SSAS было определено, что лежащий в основе показателя " Calendar Quarter " столбец содержит меры. Однако данный столбец и столбец " CalendarYear " содержат значения, которые будут использованы позднее в этом разделе для связывания группы мер " Sales Quotas " с измерением даты.

    В области "Меры" щелкните правой кнопкой мыши группу мер " Sales Quotas " и выберите команду "Создать меру".

    Будет открыто диалоговое окно "Создать меру", содержащее доступные исходные столбцы для меры с типом использования "Сумма". В диалоговом окне "Создание меры" в списке "Использование" выберите значение "Подсчет различных объектов", убедитесь, что в списке "Исходная таблица" выбрана таблица " SalesQuotas ", выберите в списке "Исходный столбец" столбец " EmployeeKey " и нажмите кнопку ОК (рисунок 10.72 )

    (рис 10.72) Диалоговое окно "Создание меры"

    Обратите внимание, что это измерение создается в новой группе мер с именем " Sales Quotas 1 ". Меры числа различных объектов в SQL Server создаются в их собственных группах мер, чтобы повысить скорость обработки. (рисунок 10.73 )

    (рис 10.73) Измерение "Число различных объектов EmployeeKey"

    Задайте для свойства " Name " меры "Число различных объектов EmployeeKey " значение " Sales Person Count ", а для свойства FormatString введите значение "# ##0,00;-# ##0,0" (рисунок 10.74 )

    (рис 10.74) Свойства меры "Число различных объектов EmployeeKey"

    Просмотр мер в группе "Sales Quota" по датам

    Разверните куб Analysis Services Tutorial. После успешного завершения развертывания в конструкторе кубов, где открыт куб Analysis Services Tutotial, перейдите на вкладку "Обозреватель" и нажмите кнопку "Повторное соединение".

    Очистите все иерархии и меры в области "Данные", а затем очистите все члены измерения на панели "Фильтры". Разверните группу " Sales Quotas " продаж в области метаданных и добавьте в область данных меру " Sales Amount Quota ".

    Добавьте пользовательскую иерархию " Sales Territories " измерения " Sales Territory " в область столбцов (рисунок 10.75 )

    (рис 10.75) Мера "Sales Amount Quota" в разрезе иерархии "Sales Territories"

    Обратите внимание, что измерение куба "Sales Territory" ни прямо, ни косвенно не связано с таблицей фактов " Sales Quotas ".

    Далее будет определена ссылочная связь измерений между данным измерением и данной таблицей фактов.

    В области "Данные" щелкните стрелку "вниз" рядом с элементом " Sales Territory Group " и снимите все флажки, кроме флажка " North America ", чтобы изменить элементы измерения, отображаемые в элементе " Sales Territory Group ", на " North America " (рисунок 10.76 )

    (рис 10.76) Выбор элементов измерения "Sales Territory Group"

    В области метаданных раскройте узел " Date ". Добавьте в раздел строк пользовательскую иерархию " Date.Fiscal Date ", а затем щелкните стрелку "вниз" рядом с элементом " Fiscal Year " области "Данные" и снимите все флажки, за исключением "FY 2004", чтобы отобразить данные только для финансового года 2004 (рисунок 10.79)

    (рис 10.77) Выбор элементов измерения "Fiscal Year"

    В области "Данные" последовательно раскройте финансовый год "FY 2004", первое полугодие "H1 FY 2004", первый квартал "Q1 FY 2004" и месяц "July 2003" (рисунок 10.78 )

    (рис 10.78) Содержимое месяца "июль 2003"

    Обратите внимание, что на уровне " Month " появился только элемент " July 2003 " вместо элементов " July, 2003 ", " August, 2003 " и " September, 2003 " уровня " Month ", а на уровне " Date " появился только один элемент - " July 1, 2003 " вместо всех дней июля. Это обусловлено тем, что для данной таблицы фактов степень гранулярности установлена на уровне квартала, а степень гранулярности для измерения " Time " установлена на уровне дня. Это будет изменено позже, в следующей задаче данной лабораторной работы.

    Кроме того, обратите внимание, что значение " Sales Amount Quota " на уровнях месяца и дня равно соответствующему значению на уровне квартала и составляет 13 733 000,00. Это связано с тем, что самый подробный уровень данных для группы мер " Sales Quotas " соответствует кварталу. Это поведение будет изменено в следующей лабораторной работе.

    Определение свойств использования измерений для группы мер Sales Quotas

    Откройте в конструкторе измерений измерение " Employee ", щелкните правой кнопкой мыши столбец " SalesTerritoryKey " в области "Представление источника данных" и в контекстном меню выберите команду "Создать атрибут из столбца" (рисунок 10.79 )

    (рис 10.79) Контекстное меню столбца "SalesTerritoryKey"

    В области "Атрибуты" выберите атрибут " SalesTerritoryKey " и в окне свойств задайте для свойства " AttributeHierarchyOptimizedState " значение " NotOptimized ", а для свойств " AttributeHierarchyVisible " и " AttributeHierarchyOrdered " - значение "False" (рисунок 10.80 )

    (рис 10.80) Свойства атрибута "SalesTerritoryKey"

    Этот атрибут необходим для связи измерения " Sales Territory " с группами мер " Sales Quotas " и " Sales Quotas 1 " в качестве ссылочного измерения.

    В конструкторе кубов выберите куб "Analysis Services Tutorial" и откройте вкладку "Использование измерений", а затем просмотрите использование измерений в группах мер " Sales Quotas " и " Sales Quotas 1 " (рисунок 10.81 )

    (рис 10.81) Использование измерений в группах мер "Sales Quotas" и "Sales Quotas 1"

    Обратите внимание, что измерения куба "Employee" и "Date" соединены с группами мер " Sales Quotas " и " Sales Quotas 1 " обычными связями. Кроме того, обратите внимание, что измерение куба "Sales Territory" не связано ни с одной из этих групп мер.

    Щелкните ячейку на пересечении группы мер " Sales Quotas " и измерения " Sales Territory ", затем нажмите кнопку обзора (...). Будет открыто диалоговое окно "Задание связи". В списке "Выберите тип связи" выберите значение "Ссылочная". В списке "Промежуточное измерение" выберите значение " Employee ". В списке "Атрибут ссылочного измерения" выберите значение " Sales Territory Region ". В списке "Атрибут промежуточного измерения" выберите значение " Sales Territory Key " (ключевым столбцом атрибута " Sales Territory " является столбец " SalesTerritoryKey "). Убедитесь, что установлен флажок "Материализовать". Нажмите кнопку ОК (рисунок 10.82 )

    (рис 10.82) Диалоговое окно "Задание связи"

    Щелкните ячейку на пересечении группы мер "Sales Quota 1" и измерения "Sales Territory", затем нажмите кнопку обзора (...). Будет открыто диалоговое окно "Задание связи". В списке "Выберите тип связи" выберите значение "Ссылочная". В списке "Промежуточное измерение" выберите значение " Employee ". В списке "Атрибут ссылочного измерения" выберите значение " Sales Territory Region ". В списке "Атрибут промежуточного измерения" выберите значение " Sales Territory Key " (ключевым столбцом атрибута "Регион территории продаж" является столбец SalesTerritoryKey ). Убедитесь, что установлен флажок "Материализовать". Нажмите кнопку ОК.

    Удалите измерение куба "Date" (рисунок 10.83 )

    (рис 10.83) Удаление измерения "Date"

    Вместо четырех связанных со временем измерений куба в качестве даты, относительно которой будут распределяться квоты продаж, будет использоваться измерение куба "Order Date" из группы мер " Sales Quotas ". Это измерение куба также будет использоваться как первичное измерение даты в кубе.

    В списке "Измерения" переименуйте измерение куба "Date (Order Date)" в "Date (Date)" (рисунок 10.84 )

    (рис 10.84) Переименованное измерение "Order Date"

    Переименование измерения куба "Order Date" на "Date" упрощает его восприятие как первичного измерения даты в этом кубе.

    Нажмите кнопку обзора (…) в ячейке на пересечении группы мер " Sales Quotas " и измерения " Date (Date) ". В диалоговом окне "Определение связи" в списке "Выберите тип связи" выберите значение "Обычная". В списке "Атрибут гранулярности" выберите значение " Calendar Quarter " (рисунок 10.85 )

    (рис 10.85) Предупреждение о выборе в качестве атрибута гранулярности неключевого атрибута

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

    В области "Связь" диалогового окна "Задание связи" соедините столбцы измерений " CalendarYear " и " CalendarQuarter " из таблицы, лежащей в основе измерения " Date (Date) " куба, со столбцами " CalendarYear " и " CalendarQuarter " из таблицы, лежащей в основе группы мер " Sales Quota ", а затем нажмите кнопку ОК (рисунок 10.86 )

    (рис 10.86) Соединение столбцов измерения со столбцами группы мер

    Атрибут " Calendar Quarter " определен как атрибут гранулярности для измерения " Date (Date) " куба в группе мер " Sales Quotas ", однако атрибут " Date " продолжает оставаться атрибутом гранулярности для групп мер " Internet Sales " и " Reseller Sales ".

    Повторите предыдущие четыре шага для группы мер " Sales Quotas 1 ".

    Определение связи между атрибутом "Calendar Quarter" и другими атрибутами измерения даты

    Откройте в конструкторе измерений измерение " Date " и перейдите на вкладку "Связи атрибутов" (рисунок 10.87 )

    (рис 10.87) Связи атрибутов измерения "Date"

    Обратите внимание, что, хотя атрибут " Calendar Year " связан с атрибутом " Calendar Quarter " через атрибут " Calendar Semester ", атрибуты финансового календаря связаны только друг с другом. Они не соединены с атрибутом " Calendar Quarter ", и потому статистические вычисления в группе мер " Sales Quotas " будут выполняться неправильно.

    На схеме щелкните правой кнопкой мыши атрибут " Calendar Quarter ", а затем в контекстном меню выберите команду "Создать связь атрибутов".

    В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение " Calendar Quarter ". Установите поле "Связанный атрибут" в значение " Fiscal Quarter ". Нажмите кнопку ОК (рисунок 10.88 )

    (рис 10.88) Создание связи атрибутов

    Обратите внимание на предупреждение о том, что измерение Date содержит одну или несколько избыточных связей атрибутов, которые могут помешать статистической обработке данных, если в кубе в качестве атрибута гранулярности используется неключевой атрибут (рисунок 10.89 )

    (рис 10.89) Предупреждение о наличии избыточных связей

    Удалите связь атрибута " Fiscal Quarter " с атрибутом " Month Name " (рисунок 10.90 )

    (рис 10.90) Окончательная связь атрибутов

    В меню "Файл" выберите команду "Сохранить все".

    Просмотр мер в группе "Sales Quota" по датам

    Разверните проект Analysis Services Tutorial. После успешного завершения развертывания перейдите на вкладку "Обозреватель конструктора" кубов для куба Analysis Services Tutorial и нажмите кнопку "Повторное соединение" (рисунок 10.91

    (рис 10.91) Распределение меры "Sales Amount Quota" по измерениям "Sales Territory"

    Обратите внимание, что мера " Sales Amount Quota " правильно распределена по измерениям " Sales Territory ", потому что измерение Sales Territory теперь определено как ссылочное измерение.

    Кроме того, обратите внимание, что отображаются все элементы уровня финансового квартала, при этом значение каждого из элементов соответствует уровню квартала. Это обусловлено тем, что для данной таблицы фактов степень гранулярности установлена на уровне квартала, а степень гранулярности для измерения " Date " также установлена на уровне квартала. В следующей лабораторной работе будет рассмотрено, как распределять квартальную сумму пропорционально по месяцам.

    Контрольные вопросы

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