Использование измерений определяет связи между измерением куба и группами мер в нем. Измерение куба представляет собой экземпляр измерения базы данных, используемый в конкретном кубе. Куб может содержать (и часто содержит) измерения, которые не связаны непосредственно с группой мер, но которые могут быть косвенно связаны с ней через другое измерение или группу мер. При добавлении к кубу измерения базы данных или группы мер службы
Связь между измерением и группой мер состоит из таблиц измерений и фактов, участвующих в связи, и атрибута гранулярности, указывающего детализацию измерения в конкретной группе мер.
Связь обычного измерения между измерением куба и группой мер существует, когда ключевой столбец для измерения соединен непосредственно с таблицей фактов. Эта прямая связь основана на связи между первичным и внешним ключами в базовой реляционной базе данных, но также может быть основана на логической связи, определенной в представлении источника данных. Связь обычного измерения представляет связь между таблицами измерений и таблицей фактов в традиционной структуре схемы "звезда".
При определении нового измерения куба или новой группы мер, службы
При определении связи измерения куба с группой мер также указывается атрибут гранулярности для этой связи. Атрибут гранулярности определяет самый низкий уровень детализации, доступный в кубе для измерения, который обычно является ключевым атрибутом для этого измерения. Однако в некоторых случаях может быть необходимо изменить размер гранул гранулярности конкретного измерения куба в конкретной группе мер.
Например, может быть необходимо установить атрибут гранулярности для измерения "Время" равным атрибуту "Месяц", а не атрибуту "День", если используется группа мер "Квота на продажу" или "Бюджет".
При указании того, что атрибут гранулярности не является ключевым атрибутом, необходимо гарантировать, что все остальные атрибуты в измерении непосредственно или косвенно связаны с этим другим атрибутом через связи атрибутов. Если это не так, службы
Связь ссылочного измерения между измерением куба и группой мер существует в том случае, когда ключевой столбец измерения косвенно соединен с таблицей фактов по ключу в другой таблице измерения, как показано на рисунок 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) Два ссылочных измеренияСвязь ссылочного измерения определяется на вкладке "Использование измерения" конструктора кубов. Связь ссылочного измерения определяется путем указания следующих параметров:
Обратим внимание, что столбец, соединяющий ссылочное измерение с таблицей фактов, который обычно является ключевым атрибутом ссылочного измерения, должен также быть определен в качестве атрибута в промежуточном измерении. При создании цепи ссылочных измерений необходимо начать с создания обычной связи между первым измерением в цепи и группой мер. Затем по порядку создайте все дополнительные ссылочные связи. Ссылочная связь может быть создана только с измерением, в котором существует связь с группой мер.
При создании связи ссылочного измерения связь атрибутов измерения материализуется по умолчанию. Материализация связи атрибута измерения заставляет значение связи между таблицей фактов и ссылочным измерением для каждой строки материализоваться, то есть сохраняться, в структуре измерения во время обработки. Это оказывает незначительное влияние на производительность и требования к хранению данных, но увеличивает производительность запросов.
В ссылочном измерении гранулярность указывается путем идентификации атрибута, определяющего связь между ссылочным измерением и группой мер, соответствующей главной таблице измерения. Когда несколько ссылочных измерений последовательно соединены вместе, ссылки определяют связь между самым внешним измерением и группой мер.
Иногда пользователи хотят иметь возможность вводить для мер измерения, которые образуются из элементов данных таблицы фактов, или создавать запросы к таблице фактов для получения специальных дополнительных сведений, таких как номера счетов или номера заказов на покупку, относящихся к конкретным фактам продаж. При определении измерения, основанного на подобных элементах таблиц фактов, оно называется измерением фактов. Измерения фактов также называют
Измерения фактов, обычно называемые
Например, на рисунок 10.4 приведена таблица фактов FactResellerSales из образца базы данных Adventure Works DW.
(рис 10.4) Пример таблицы фактов с измерениями фактовЭта таблица содержит данные об атрибутах не только для каждой строки заказа, оформленного посредником, но и для самого заказа. Атрибуты, обведенные на рисунок 10.4 идентифицируют данные в таблице " FactResellerSales ", которые можно использовать в качестве атрибутов в измерении. В этом случае два дополнительных элемента данных - сопроводительный номер перевозчика и номер заказа на покупку, оформленного посредником, представлены столбцами атрибутов " CarrierTrackingNumber " и " CustomerPONumber ". Это весьма полезные сведения. Например, пользователи определенно будут заинтересованы в просмотре статистических сведений (например, суммарной стоимости продуктов) для всех заказов, поставляемых по одному сопроводительному номеру. Однако без измерения данные по этим двум атрибутам не могут быть ни организованы, ни статистически обработаны.
Теоретически можно создать таблицу измерения, использующую те же самые ключевые данные, что и таблица " FactResellerSales ", и переместить два остальных столбца атрибутов, " CarrierTrackingNumber " и " CustomerPONumber ", в эту таблицу измерения. Однако при этом произойдет дублирование значительной части данных, а также излишнее усложнение хранилища данных с целью представления всего двух атрибутов в отдельном измерении.
Службы Analysis Services позволяют указать, следует данные измерения фактов повторить в -структуре измерения (это повышает производительность обработки запросов) или же определить измерение фактов как измерение , чтобы сохранить место в хранилище за счет снижения производительности обработки запросов. При хранении измерения в режиме хранения все элементы измерения, помимо хранения в секциях группы мер, хранятся в экземпляре служб Analysis Services в крайне сжатой структуре . При хранении измерения в режиме хранения только определение измерения хранится в структуре , сами же элементы измерения запрашиваются из соответствующей реляционной таблицы фактов во время обработки запроса. Выбор подходящего режима хранения зависит от того, как часто обращаются с запросами к измерению фактов, сколько строк возвращает типичный запрос, каковы производительность обработки запроса и стои
мость обработки. Определение измерения как не требует, чтобы все кубы, использующие это измерение, также хранились в режиме .
При определении измерения фактов можно задать связь между этим измерением и группой мер как связь фактов. К связям фактов применяются следующие ограничения:
В большинстве измерений каждый факт соединяется с одним и только одним элементом измерения, а один элемент измерения может быть связан с несколькими фактами. В терминах реляционных баз данных такая связь имеет название "один ко многим". Однако часто полезно соединять один факт с несколькими элементами измерения.
Например, клиент банка может иметь несколько счетов (чековый, сберегательный, кредитный и инвестиционный), в то время как счет также может иметь нескольких владельцев или совладельцев. Измерение "Клиент", построенное на основе таких связей, имело бы несколько элементов, относящихся к одной транзакции по счету.
Для обеспечения поддержки связи измерений "многие ко многим" в представлении источника данных должна быть установлена связь по внешнему ключу между всеми участвующими таблицами, как показано на рисунок 10.5 В противном случае будет невозможно выбрать верную промежуточную группу мер при установке связи на вкладке "Использование измерения конструктора кубов".
(рис 10.5) Логическая схема измерения "Многие ко многим"Связь измерений "многие ко многим" определяет взаимосвязь между измерением и группой мер, указывая промежуточную таблицу фактов, которая соединена с таблицей измерения. Таблица промежуточного измерения, в свою очередь, соединена как с промежуточной таблицей фактов, так и с таблицей фактов, на которой основана группа мер, указанная в связи. Связи "многие ко многим" между промежуточной таблицей фактов с одной стороны и таблицей измерения в связи и промежуточным измерением с другой стороны создают связи "многие ко многим" между элементами первичного измерения и мерами в группе мер, указанной этой связью.
Измерения "многие ко многим" расширяют модель измерений за пределы классической схемы "звезда" и поддерживают сложную аналитику, когда измерения не связаны непосредственно с таблицей фактов.
При выполнении предыдущих лабораторных работ каждое определенное измерение куба основывалось на таблице, непосредственно связанной с таблицей фактов для группы мер через связь "внешний ключ - первичный ключ". В задачах этого раздела измерение " Geography " будет связано с таблицей фактов через измерение " Reseller ", которое называется ссылочным измерением. Это позволяет пользователям распределить товарооборот посредников по географии.
В обозревателе решений щелкните правой кнопкой мыши куб " 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 Для определения ссылочной связи указывается измерение, непосредственно связанное с таблицей группы мер, которое называется промежуточным измерением и может использоваться в службах
(рис 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 ( ). Материализация связи атрибута изменения заставляет значение связи между таблицей фактов и ссылочным измерением для каждой строки при обработке материализоваться, то есть сохраняться в структуре измерения на время обработки. Это оказывает незначительное влияние на производительность и требования к хранению данных, но увеличивает производительность запросов (иногда значительно). Нажмите кнопку ОК.
Обратите внимание, что измерение куба " Geography " теперь связано с группой мер " Reseller Sales ". Значок указывает, что связь является ссылочной связью измерений (рисунок 10.19 )
(рис 10.19) Ссылочная связь
Разверните проект "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" измерения "Подробности заказа через Интернет"Обратите внимание, что данное измерение хранится как измерение
Чтобы добавить созданное измерение в куб " 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 " (Сумма). Это значение выбрано службами
В окне "Свойства" измените значение свойства " 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) Суммы для каждой из причин покупкиОбратите внимание, что итоговые суммы по каждой из причин покупки в совокупности больше, чем общая сумма продаж. Это вызвано тем, что некоторые заказчики указали несколько причин покупки.
Для разных целей пользователям может понадобиться измерять данные фактов с разной степенью гранулярности или точности. Например, сведения о продажах через посредников или о продажах через Интернет могут записываться каждый день, в то время как данные о квотах продаж могут существовать только для уровня месяца или квартала. В таких случаях пользователям требуется, чтобы измерение времени обладало разной степенью гранулярности для каждой из этих разных таблиц фактов. Определить новое измерение базы данных как измерение времени с другой степенью гранулярности проще всего с помощью служб
По умолчанию, если измерение используется в группе мер, службы Internet Sales " и " Reseller Sales " в данном цикле лабораторных работ. Но когда такое измерение включается в иные типы групп мер, такие как квоты продаж или группа бюджетных показателей, более подходящей степенью гранулярности будет месяц или квартал.
Чтобы указать степень гранулярности измерения куба, которая отличается от используемой по умолчанию, следует изменить атрибут гранулярности данного измерения куба как применяемого в конкретной группе мер на вкладке "Использование измерений" в конструкторе кубов. При изменении степени детализации измерения в конкретной группе мер на атрибут, отличный от ключевого атрибута данного измерения, необходимо обеспечить прямую или косвенную связь всех остальных атрибутов в этой группе мер с новым атрибутом гранулярности. Для этого следует указать связи атрибутов между другими атрибутами и атрибутом, заданным как атрибут гранулярности для этой группы мер. В этом случае следует указать дополнительные связи атрибутов, не удаляя существующие связи между атрибутами. Атрибут, указанный как атрибут гранулярности, становится ключевым атрибутом в группе мер для оставшихся атрибутов измерения. Если требуемые связи атрибутов не указаны, в службах
В задачах данного раздела требуется добавить группу мер " Sales " и определить помесячную степень гранулярности измерения даты в этой группе мер. Затем предстоит определить связи между атрибутом месяца и другими атрибутами измерения, чтобы обеспечить правильность статистических вычислений в службах
Перейдите в конструктор представлений источника данных к представлению источника данных DW Adventure Works. Щелкните правой кнопкой мыши область "Организатор диаграмм", в контекстном меню выберите команду "Создать диаграмму" и укажите " Sales " в качестве имени новой диаграммы (рисунок 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 " будет отображена в области "Меры". В области "Измерения" обратите внимание, что определено новое измерение куба "Date" на основе измерения " Date " базы данных. Определение нового измерения куба по времени объясняется неопределенностью в вопросе, какое из существующих связанных со временем измерений куба должно быть связано в службах DateKey " таблицы фактов " FactSalesQuota ", которая лежит в основе группы мер " Sales ". Это будет исправлено позже, в другой задаче данной лабораторной работы.
Раскройте группу мер " Sales ". В области "Меры" выберите элемент " Sales Amount Quota " и в окне свойств задайте для свойства " FormatString " значение " Currency " (рисунок 10.71 )
(рис 10.71) Свойства элемента "Sales Amount Quota"Выберите меру "Число Sales
Удалите меру " Calendar Quarter " из группы мер " Sales ". В службах Calendar Quarter " столбец содержит меры. Однако данный столбец и столбец " CalendarYear " содержат значения, которые будут использованы позднее в этом разделе для связывания группы мер " Sales " с измерением даты.
В области "Меры" щелкните правой кнопкой мыши группу мер " Sales " и выберите команду "Создать меру".
Будет открыто диалоговое окно "Создать меру", содержащее доступные исходные столбцы для меры с типом использования "Сумма". В диалоговом окне "Создание меры" в списке "Использование" выберите значение "Подсчет различных объектов", убедитесь, что в списке "Исходная таблица" выбрана таблица " SalesQuotas ", выберите в списке "Исходный столбец" столбец " EmployeeKey " и нажмите кнопку ОК (рисунок 10.72 )
(рис 10.72) Диалоговое окно "Создание меры"Обратите внимание, что это измерение создается в новой группе мер с именем " Sales ". Меры числа различных объектов в SQL Server создаются в их собственных группах мер, чтобы повысить скорость обработки. (рисунок 10.73 )
(рис 10.73) Измерение "Число различных объектов EmployeeKey"Задайте для свойства " Name " меры "Число различных объектов EmployeeKey " значение " Sales Person Count ", а для свойства FormatString введите значение "# ##0,00;-# ##0,0" (рисунок 10.74 )
(рис 10.74) Свойства меры "Число различных объектов EmployeeKey" Разверните куб Analysis Services Tutorial. После успешного завершения развертывания в конструкторе кубов, где открыт куб Analysis Services Tutotial, перейдите на вкладку "Обозреватель" и нажмите кнопку "Повторное соединение".
Очистите все иерархии и меры в области "Данные", а затем очистите все члены измерения на панели "Фильтры". Разверните группу " Sales " продаж в области метаданных и добавьте в область данных меру " Sales Amount Quota ".
Добавьте пользовательскую иерархию " Sales Territories " измерения " Sales Territory " в область столбцов (рисунок 10.75 )
(рис 10.75) Мера "Sales Amount Quota" в разрезе иерархии "Sales Territories"Обратите внимание, что измерение куба "Sales Territory" ни прямо, ни косвенно не связано с таблицей фактов " Sales ".
Далее будет определена ссылочная связь измерений между данным измерением и данной таблицей фактов.
В области "Данные" щелкните стрелку "вниз" рядом с элементом " 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 " соответствует кварталу. Это поведение будет изменено в следующей лабораторной работе.
Откройте в конструкторе измерений измерение " Employee ", щелкните правой кнопкой мыши столбец " SalesTerritoryKey " в области "Представление источника данных" и в контекстном меню выберите команду "Создать атрибут из столбца" (рисунок 10.79 )
(рис 10.79) Контекстное меню столбца "SalesTerritoryKey"В области "Атрибуты" выберите атрибут " SalesTerritoryKey " и в окне свойств задайте для свойства " AttributeHierarchyOptimizedState " значение " NotOptimized ", а для свойств " AttributeHierarchyVisible " и " AttributeHierarchyOrdered " - значение "False" (рисунок 10.80 )
(рис 10.80) Свойства атрибута "SalesTerritoryKey"Этот атрибут необходим для связи измерения " Sales Territory " с группами мер " Sales " и " Sales " в качестве ссылочного измерения.
В конструкторе кубов выберите куб "Analysis Services Tutorial" и откройте вкладку "Использование измерений", а затем просмотрите использование измерений в группах мер " Sales " и " Sales " (рисунок 10.81 )
(рис 10.81) Использование измерений в группах мер "Sales Quotas" и "Sales Quotas 1"Обратите внимание, что измерения куба "Employee" и "Date" соединены с группами мер " Sales " и " Sales " обычными связями. Кроме того, обратите внимание, что измерение куба "Sales Territory" не связано ни с одной из этих групп мер.
Щелкните ячейку на пересечении группы мер " Sales " и измерения " 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 ". Это измерение куба также будет использоваться как первичное измерение даты в кубе.
В списке "Измерения" переименуйте измерение куба "Date (Order Date)" в "Date (Date)" (рисунок 10.84 )
(рис 10.84) Переименованное измерение "Order Date"Переименование измерения куба "Order Date" на "Date" упрощает его восприятие как первичного измерения даты в этом кубе.
Нажмите кнопку обзора (…) в ячейке на пересечении группы мер " Sales " и измерения " 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 ", однако атрибут " Date " продолжает оставаться атрибутом гранулярности для групп мер " Internet Sales " и " Reseller Sales ".
Повторите предыдущие четыре шага для группы мер " Sales ".
Откройте в конструкторе измерений измерение " Date " и перейдите на вкладку "Связи атрибутов" (рисунок 10.87 )
(рис 10.87) Связи атрибутов измерения "Date"Обратите внимание, что, хотя атрибут " Calendar Year " связан с атрибутом " Calendar Quarter " через атрибут " Calendar Semester ", атрибуты финансового календаря связаны только друг с другом. Они не соединены с атрибутом " Calendar Quarter ", и потому статистические вычисления в группе мер " Sales " будут выполняться неправильно.
На схеме щелкните правой кнопкой мыши атрибут " Calendar Quarter ", а затем в контекстном меню выберите команду "Создать связь атрибутов".
В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение " Calendar Quarter ". Установите поле "Связанный атрибут" в значение " Fiscal Quarter ". Нажмите кнопку ОК (рисунок 10.88 )
(рис 10.88) Создание связи атрибутовОбратите внимание на предупреждение о том, что измерение Date содержит одну или несколько избыточных связей атрибутов, которые могут помешать статистической обработке данных, если в кубе в качестве атрибута гранулярности используется неключевой атрибут (рисунок 10.89 )
(рис 10.89) Предупреждение о наличии избыточных связейУдалите связь атрибута " Fiscal Quarter " с атрибутом " Month Name " (рисунок 10.90 )
(рис 10.90) Окончательная связь атрибутовВ меню "Файл" выберите команду "Сохранить все".
Разверните проект Analysis Services Tutorial. После успешного завершения развертывания перейдите на вкладку "Обозреватель конструктора" кубов для куба Analysis Services Tutorial и нажмите кнопку "Повторное соединение" (рисунок 10.91
(рис 10.91) Распределение меры "Sales Amount Quota" по измерениям "Sales Territory"Обратите внимание, что мера " Sales Amount Quota " правильно распределена по измерениям " Sales Territory ", потому что измерение Sales Territory теперь определено как ссылочное измерение.
Кроме того, обратите внимание, что отображаются все элементы уровня финансового квартала, при этом значение каждого из элементов соответствует уровню квартала. Это обусловлено тем, что для данной таблицы фактов степень гранулярности установлена на уровне квартала, а степень гранулярности для измерения " Date " также установлена на уровне квартала. В следующей лабораторной работе будет рассмотрено, как распределять квартальную сумму пропорционально по месяцам.
Использование измерений определяет связи между измерением куба и группами мер в нем. Измерение куба представляет собой экземпляр измерения базы данных, используемый в конкретном кубе. Куб может содержать (и часто содержит) измерения, которые не связаны непосредственно с группой мер, но которые могут быть косвенно связаны с ней через другое измерение или группу мер. При добавлении к кубу измерения базы данных или группы мер службы
Связь между измерением и группой мер состоит из таблиц измерений и фактов, участвующих в связи, и атрибута гранулярности, указывающего детализацию измерения в конкретной группе мер.
Связь обычного измерения между измерением куба и группой мер существует, когда ключевой столбец для измерения соединен непосредственно с таблицей фактов. Эта прямая связь основана на связи между первичным и внешним ключами в базовой реляционной базе данных, но также может быть основана на логической связи, определенной в представлении источника данных. Связь обычного измерения представляет связь между таблицами измерений и таблицей фактов в традиционной структуре схемы "звезда".
При определении нового измерения куба или новой группы мер, службы
При определении связи измерения куба с группой мер также указывается атрибут гранулярности для этой связи. Атрибут гранулярности определяет самый низкий уровень детализации, доступный в кубе для измерения, который обычно является ключевым атрибутом для этого измерения. Однако в некоторых случаях может быть необходимо изменить размер гранул гранулярности конкретного измерения куба в конкретной группе мер.
Например, может быть необходимо установить атрибут гранулярности для измерения "Время" равным атрибуту "Месяц", а не атрибуту "День", если используется группа мер "Квота на продажу" или "Бюджет".
При указании того, что атрибут гранулярности не является ключевым атрибутом, необходимо гарантировать, что все остальные атрибуты в измерении непосредственно или косвенно связаны с этим другим атрибутом через связи атрибутов. Если это не так, службы
Связь ссылочного измерения между измерением куба и группой мер существует в том случае, когда ключевой столбец измерения косвенно соединен с таблицей фактов по ключу в другой таблице измерения, как показано на рисунок 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) Два ссылочных измеренияСвязь ссылочного измерения определяется на вкладке "Использование измерения" конструктора кубов. Связь ссылочного измерения определяется путем указания следующих параметров:
Обратим внимание, что столбец, соединяющий ссылочное измерение с таблицей фактов, который обычно является ключевым атрибутом ссылочного измерения, должен также быть определен в качестве атрибута в промежуточном измерении. При создании цепи ссылочных измерений необходимо начать с создания обычной связи между первым измерением в цепи и группой мер. Затем по порядку создайте все дополнительные ссылочные связи. Ссылочная связь может быть создана только с измерением, в котором существует связь с группой мер.
При создании связи ссылочного измерения связь атрибутов измерения материализуется по умолчанию. Материализация связи атрибута измерения заставляет значение связи между таблицей фактов и ссылочным измерением для каждой строки материализоваться, то есть сохраняться, в структуре измерения во время обработки. Это оказывает незначительное влияние на производительность и требования к хранению данных, но увеличивает производительность запросов.
В ссылочном измерении гранулярность указывается путем идентификации атрибута, определяющего связь между ссылочным измерением и группой мер, соответствующей главной таблице измерения. Когда несколько ссылочных измерений последовательно соединены вместе, ссылки определяют связь между самым внешним измерением и группой мер.
Иногда пользователи хотят иметь возможность вводить для мер измерения, которые образуются из элементов данных таблицы фактов, или создавать запросы к таблице фактов для получения специальных дополнительных сведений, таких как номера счетов или номера заказов на покупку, относящихся к конкретным фактам продаж. При определении измерения, основанного на подобных элементах таблиц фактов, оно называется измерением фактов. Измерения фактов также называют
Измерения фактов, обычно называемые
Например, на рисунок 10.4 приведена таблица фактов FactResellerSales из образца базы данных Adventure Works DW.
(рис 10.4) Пример таблицы фактов с измерениями фактовЭта таблица содержит данные об атрибутах не только для каждой строки заказа, оформленного посредником, но и для самого заказа. Атрибуты, обведенные на рисунок 10.4 идентифицируют данные в таблице " FactResellerSales ", которые можно использовать в качестве атрибутов в измерении. В этом случае два дополнительных элемента данных - сопроводительный номер перевозчика и номер заказа на покупку, оформленного посредником, представлены столбцами атрибутов " CarrierTrackingNumber " и " CustomerPONumber ". Это весьма полезные сведения. Например, пользователи определенно будут заинтересованы в просмотре статистических сведений (например, суммарной стоимости продуктов) для всех заказов, поставляемых по одному сопроводительному номеру. Однако без измерения данные по этим двум атрибутам не могут быть ни организованы, ни статистически обработаны.
Теоретически можно создать таблицу измерения, использующую те же самые ключевые данные, что и таблица " FactResellerSales ", и переместить два остальных столбца атрибутов, " CarrierTrackingNumber " и " CustomerPONumber ", в эту таблицу измерения. Однако при этом произойдет дублирование значительной части данных, а также излишнее усложнение хранилища данных с целью представления всего двух атрибутов в отдельном измерении.
Службы Analysis Services позволяют указать, следует данные измерения фактов повторить в -структуре измерения (это повышает производительность обработки запросов) или же определить измерение фактов как измерение , чтобы сохранить место в хранилище за счет снижения производительности обработки запросов. При хранении измерения в режиме хранения все элементы измерения, помимо хранения в секциях группы мер, хранятся в экземпляре служб Analysis Services в крайне сжатой структуре . При хранении измерения в режиме хранения только определение измерения хранится в структуре , сами же элементы измерения запрашиваются из соответствующей реляционной таблицы фактов во время обработки запроса. Выбор подходящего режима хранения зависит от того, как часто обращаются с запросами к измерению фактов, сколько строк возвращает типичный запрос, каковы производительность обработки запроса и стои
мость обработки. Определение измерения как не требует, чтобы все кубы, использующие это измерение, также хранились в режиме .
При определении измерения фактов можно задать связь между этим измерением и группой мер как связь фактов. К связям фактов применяются следующие ограничения:
В большинстве измерений каждый факт соединяется с одним и только одним элементом измерения, а один элемент измерения может быть связан с несколькими фактами. В терминах реляционных баз данных такая связь имеет название "один ко многим". Однако часто полезно соединять один факт с несколькими элементами измерения.
Например, клиент банка может иметь несколько счетов (чековый, сберегательный, кредитный и инвестиционный), в то время как счет также может иметь нескольких владельцев или совладельцев. Измерение "Клиент", построенное на основе таких связей, имело бы несколько элементов, относящихся к одной транзакции по счету.
Для обеспечения поддержки связи измерений "многие ко многим" в представлении источника данных должна быть установлена связь по внешнему ключу между всеми участвующими таблицами, как показано на рисунок 10.5 В противном случае будет невозможно выбрать верную промежуточную группу мер при установке связи на вкладке "Использование измерения конструктора кубов".
(рис 10.5) Логическая схема измерения "Многие ко многим"Связь измерений "многие ко многим" определяет взаимосвязь между измерением и группой мер, указывая промежуточную таблицу фактов, которая соединена с таблицей измерения. Таблица промежуточного измерения, в свою очередь, соединена как с промежуточной таблицей фактов, так и с таблицей фактов, на которой основана группа мер, указанная в связи. Связи "многие ко многим" между промежуточной таблицей фактов с одной стороны и таблицей измерения в связи и промежуточным измерением с другой стороны создают связи "многие ко многим" между элементами первичного измерения и мерами в группе мер, указанной этой связью.
Измерения "многие ко многим" расширяют модель измерений за пределы классической схемы "звезда" и поддерживают сложную аналитику, когда измерения не связаны непосредственно с таблицей фактов.
При выполнении предыдущих лабораторных работ каждое определенное измерение куба основывалось на таблице, непосредственно связанной с таблицей фактов для группы мер через связь "внешний ключ - первичный ключ". В задачах этого раздела измерение " Geography " будет связано с таблицей фактов через измерение " Reseller ", которое называется ссылочным измерением. Это позволяет пользователям распределить товарооборот посредников по географии.
В обозревателе решений щелкните правой кнопкой мыши куб " 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 Для определения ссылочной связи указывается измерение, непосредственно связанное с таблицей группы мер, которое называется промежуточным измерением и может использоваться в службах
(рис 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 ( ). Материализация связи атрибута изменения заставляет значение связи между таблицей фактов и ссылочным измерением для каждой строки при обработке материализоваться, то есть сохраняться в структуре измерения на время обработки. Это оказывает незначительное влияние на производительность и требования к хранению данных, но увеличивает производительность запросов (иногда значительно). Нажмите кнопку ОК.
Обратите внимание, что измерение куба " Geography " теперь связано с группой мер " Reseller Sales ". Значок указывает, что связь является ссылочной связью измерений (рисунок 10.19 )
(рис 10.19) Ссылочная связь
Разверните проект "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" измерения "Подробности заказа через Интернет"Обратите внимание, что данное измерение хранится как измерение
Чтобы добавить созданное измерение в куб " 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 " (Сумма). Это значение выбрано службами
В окне "Свойства" измените значение свойства " 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) Суммы для каждой из причин покупкиОбратите внимание, что итоговые суммы по каждой из причин покупки в совокупности больше, чем общая сумма продаж. Это вызвано тем, что некоторые заказчики указали несколько причин покупки.
Для разных целей пользователям может понадобиться измерять данные фактов с разной степенью гранулярности или точности. Например, сведения о продажах через посредников или о продажах через Интернет могут записываться каждый день, в то время как данные о квотах продаж могут существовать только для уровня месяца или квартала. В таких случаях пользователям требуется, чтобы измерение времени обладало разной степенью гранулярности для каждой из этих разных таблиц фактов. Определить новое измерение базы данных как измерение времени с другой степенью гранулярности проще всего с помощью служб
По умолчанию, если измерение используется в группе мер, службы Internet Sales " и " Reseller Sales " в данном цикле лабораторных работ. Но когда такое измерение включается в иные типы групп мер, такие как квоты продаж или группа бюджетных показателей, более подходящей степенью гранулярности будет месяц или квартал.
Чтобы указать степень гранулярности измерения куба, которая отличается от используемой по умолчанию, следует изменить атрибут гранулярности данного измерения куба как применяемого в конкретной группе мер на вкладке "Использование измерений" в конструкторе кубов. При изменении степени детализации измерения в конкретной группе мер на атрибут, отличный от ключевого атрибута данного измерения, необходимо обеспечить прямую или косвенную связь всех остальных атрибутов в этой группе мер с новым атрибутом гранулярности. Для этого следует указать связи атрибутов между другими атрибутами и атрибутом, заданным как атрибут гранулярности для этой группы мер. В этом случае следует указать дополнительные связи атрибутов, не удаляя существующие связи между атрибутами. Атрибут, указанный как атрибут гранулярности, становится ключевым атрибутом в группе мер для оставшихся атрибутов измерения. Если требуемые связи атрибутов не указаны, в службах
В задачах данного раздела требуется добавить группу мер " Sales " и определить помесячную степень гранулярности измерения даты в этой группе мер. Затем предстоит определить связи между атрибутом месяца и другими атрибутами измерения, чтобы обеспечить правильность статистических вычислений в службах
Перейдите в конструктор представлений источника данных к представлению источника данных DW Adventure Works. Щелкните правой кнопкой мыши область "Организатор диаграмм", в контекстном меню выберите команду "Создать диаграмму" и укажите " Sales " в качестве имени новой диаграммы (рисунок 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 " будет отображена в области "Меры". В области "Измерения" обратите внимание, что определено новое измерение куба "Date" на основе измерения " Date " базы данных. Определение нового измерения куба по времени объясняется неопределенностью в вопросе, какое из существующих связанных со временем измерений куба должно быть связано в службах DateKey " таблицы фактов " FactSalesQuota ", которая лежит в основе группы мер " Sales ". Это будет исправлено позже, в другой задаче данной лабораторной работы.
Раскройте группу мер " Sales ". В области "Меры" выберите элемент " Sales Amount Quota " и в окне свойств задайте для свойства " FormatString " значение " Currency " (рисунок 10.71 )
(рис 10.71) Свойства элемента "Sales Amount Quota"Выберите меру "Число Sales
Удалите меру " Calendar Quarter " из группы мер " Sales ". В службах Calendar Quarter " столбец содержит меры. Однако данный столбец и столбец " CalendarYear " содержат значения, которые будут использованы позднее в этом разделе для связывания группы мер " Sales " с измерением даты.
В области "Меры" щелкните правой кнопкой мыши группу мер " Sales " и выберите команду "Создать меру".
Будет открыто диалоговое окно "Создать меру", содержащее доступные исходные столбцы для меры с типом использования "Сумма". В диалоговом окне "Создание меры" в списке "Использование" выберите значение "Подсчет различных объектов", убедитесь, что в списке "Исходная таблица" выбрана таблица " SalesQuotas ", выберите в списке "Исходный столбец" столбец " EmployeeKey " и нажмите кнопку ОК (рисунок 10.72 )
(рис 10.72) Диалоговое окно "Создание меры"Обратите внимание, что это измерение создается в новой группе мер с именем " Sales ". Меры числа различных объектов в SQL Server создаются в их собственных группах мер, чтобы повысить скорость обработки. (рисунок 10.73 )
(рис 10.73) Измерение "Число различных объектов EmployeeKey"Задайте для свойства " Name " меры "Число различных объектов EmployeeKey " значение " Sales Person Count ", а для свойства FormatString введите значение "# ##0,00;-# ##0,0" (рисунок 10.74 )
(рис 10.74) Свойства меры "Число различных объектов EmployeeKey"Разверните куб Analysis Services Tutorial. После успешного завершения развертывания в конструкторе кубов, где открыт куб Analysis Services Tutotial, перейдите на вкладку "Обозреватель" и нажмите кнопку "Повторное соединение".
Очистите все иерархии и меры в области "Данные", а затем очистите все члены измерения на панели "Фильтры". Разверните группу " Sales " продаж в области метаданных и добавьте в область данных меру " Sales Amount Quota ".
Добавьте пользовательскую иерархию " Sales Territories " измерения " Sales Territory " в область столбцов (рисунок 10.75 )
(рис 10.75) Мера "Sales Amount Quota" в разрезе иерархии "Sales Territories"Обратите внимание, что измерение куба "Sales Territory" ни прямо, ни косвенно не связано с таблицей фактов " Sales ".
Далее будет определена ссылочная связь измерений между данным измерением и данной таблицей фактов.
В области "Данные" щелкните стрелку "вниз" рядом с элементом " 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 " соответствует кварталу. Это поведение будет изменено в следующей лабораторной работе.
Откройте в конструкторе измерений измерение " Employee ", щелкните правой кнопкой мыши столбец " SalesTerritoryKey " в области "Представление источника данных" и в контекстном меню выберите команду "Создать атрибут из столбца" (рисунок 10.79 )
(рис 10.79) Контекстное меню столбца "SalesTerritoryKey"В области "Атрибуты" выберите атрибут " SalesTerritoryKey " и в окне свойств задайте для свойства " AttributeHierarchyOptimizedState " значение " NotOptimized ", а для свойств " AttributeHierarchyVisible " и " AttributeHierarchyOrdered " - значение "False" (рисунок 10.80 )
(рис 10.80) Свойства атрибута "SalesTerritoryKey"Этот атрибут необходим для связи измерения " Sales Territory " с группами мер " Sales " и " Sales " в качестве ссылочного измерения.
В конструкторе кубов выберите куб "Analysis Services Tutorial" и откройте вкладку "Использование измерений", а затем просмотрите использование измерений в группах мер " Sales " и " Sales " (рисунок 10.81 )
(рис 10.81) Использование измерений в группах мер "Sales Quotas" и "Sales Quotas 1"Обратите внимание, что измерения куба "Employee" и "Date" соединены с группами мер " Sales " и " Sales " обычными связями. Кроме того, обратите внимание, что измерение куба "Sales Territory" не связано ни с одной из этих групп мер.
Щелкните ячейку на пересечении группы мер " Sales " и измерения " 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 ". Это измерение куба также будет использоваться как первичное измерение даты в кубе.
В списке "Измерения" переименуйте измерение куба "Date (Order Date)" в "Date (Date)" (рисунок 10.84 )
(рис 10.84) Переименованное измерение "Order Date"Переименование измерения куба "Order Date" на "Date" упрощает его восприятие как первичного измерения даты в этом кубе.
Нажмите кнопку обзора (…) в ячейке на пересечении группы мер " Sales " и измерения " 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 ", однако атрибут " Date " продолжает оставаться атрибутом гранулярности для групп мер " Internet Sales " и " Reseller Sales ".
Повторите предыдущие четыре шага для группы мер " Sales ".
Откройте в конструкторе измерений измерение " Date " и перейдите на вкладку "Связи атрибутов" (рисунок 10.87 )
(рис 10.87) Связи атрибутов измерения "Date"Обратите внимание, что, хотя атрибут " Calendar Year " связан с атрибутом " Calendar Quarter " через атрибут " Calendar Semester ", атрибуты финансового календаря связаны только друг с другом. Они не соединены с атрибутом " Calendar Quarter ", и потому статистические вычисления в группе мер " Sales " будут выполняться неправильно.
На схеме щелкните правой кнопкой мыши атрибут " Calendar Quarter ", а затем в контекстном меню выберите команду "Создать связь атрибутов".
В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение " Calendar Quarter ". Установите поле "Связанный атрибут" в значение " Fiscal Quarter ". Нажмите кнопку ОК (рисунок 10.88 )
(рис 10.88) Создание связи атрибутовОбратите внимание на предупреждение о том, что измерение Date содержит одну или несколько избыточных связей атрибутов, которые могут помешать статистической обработке данных, если в кубе в качестве атрибута гранулярности используется неключевой атрибут (рисунок 10.89 )
(рис 10.89) Предупреждение о наличии избыточных связейУдалите связь атрибута " Fiscal Quarter " с атрибутом " Month Name " (рисунок 10.90 )
(рис 10.90) Окончательная связь атрибутовВ меню "Файл" выберите команду "Сохранить все".
Разверните проект Analysis Services Tutorial. После успешного завершения развертывания перейдите на вкладку "Обозреватель конструктора" кубов для куба Analysis Services Tutorial и нажмите кнопку "Повторное соединение" (рисунок 10.91
(рис 10.91) Распределение меры "Sales Amount Quota" по измерениям "Sales Territory"Обратите внимание, что мера " Sales Amount Quota " правильно распределена по измерениям " Sales Territory ", потому что измерение Sales Territory теперь определено как ссылочное измерение.
Кроме того, обратите внимание, что отображаются все элементы уровня финансового квартала, при этом значение каждого из элементов соответствует уровню квартала. Это обусловлено тем, что для данной таблицы фактов степень гранулярности установлена на уровне квартала, а степень гранулярности для измерения " Date " также установлена на уровне квартала. В следующей лабораторной работе будет рассмотрено, как распределять квартальную сумму пропорционально по месяцам.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.