Поделиться через


Урок 5-4. Определение гранулярности измерений в группе мер

Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

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

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

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

Дополнительные сведения см. в разделе Связи измерений, Определение обычной связи и ее свойств.

В задачах данного раздела требуется добавить группу мер Sales Quotas и определить помесячную степень гранулярности измерения даты в этой группе мер. Затем вы определяете связи атрибутов между атрибутом month и другими атрибутами измерения, чтобы убедиться, что SQL Server Analysis Services правильно агрегирует значения.

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

  1. Перейдите в представление источника данных Adventure Works DW 2019 .

  2. Щелкните правой кнопкой мыши в любом месте панели Организатор диаграмм , выберите пункт Создать диаграммуи назовите схему Квоты продаж.

  3. Перетащите таблицы Employee, Sales Territoryи Date с панели Таблицы на панель Диаграмма .

  4. Добавьте таблицу FactSalesQuota на панель Диаграмма , щелкнув правой кнопкой мыши на панели Диаграмма и выбрав команду Добавить или удалить таблицы.

    Обратите внимание, что таблица SalesTerritory связана с таблицей FactSalesQuota через таблицу Сотрудник .

  5. Просмотрите столбцы таблицы FactSalesQuota и исследуйте данные в этой таблице.

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

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

  7. Перейдите в куб SQL Server Analysis Services Tutorial и перейдите на вкладку Структура куба.

  8. Щелкните правой кнопкой мыши панель Меры , выберите команду Создать группу мер, в диалоговом окне Создание группы мер щелкните SalesQuotas и нажмите кнопку ОК.

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

  9. Раскройте группу мер Sales Quotas .

  10. В панели Меры выберите элемент Sales Amount Quotaи в окне свойств задайте для свойства FormatString значение Валюта .

  11. Выберите меру Число квот продаж и введите #,# в качестве значения свойства FormatString в окно свойств.

  12. Удалите меру Calendar Quarter из группы мер Sales Quotas .

    SQL Server Analysis Services обнаружил столбец, лежащий в основе меры "Календарный квартал", как столбец, содержащий меры. Однако данный столбец и столбец CalendarYear содержат значения, которые будут использованы позднее в этом разделе для связывания группы мер Sales Quotas с измерением даты.

  13. На панели Меры щелкните правой кнопкой мыши группу мер Квоты продаж и выберите команду Создать меру.

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

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

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

  15. Измените значение свойства Name для меры Число уникальных ключей сотрудников на Sales Person Count, а затем введите #,# в качестве значения свойства FormatString .

Повторное просмотр мер в группе мер квоты продаж по дате

  1. В меню Сборка выберите команду Развернуть Analysis Services Tutorial.

  2. После успешного завершения развертывания откройте вкладку Браузер в кубе Designer куба SQL Server Analysis Services Tutorial и нажмите кнопку Повторное подключение.

  3. Щелкните ярлык Excel, а затем выберите Включить.

  4. В списке полей сводной таблицы разверните группу мер Sales Quotas , а затем перетащите меру Sales Amount Quota в область значений.

  5. Разверните измерение Территория продаж и перетащите определенную пользователем иерархию Территории продаж в область меток строк.

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

    Измерение куба

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

  6. Переместите определенную пользователем иерархию Sales Territories из области «Метки строк» в область «Метки столбцов».

  7. В списке полей сводной таблицы выберите определенную пользователем иерархию Территории продаж и щелкните стрелку вниз справа.

    Иерархия sales Territories в списке полей

  8. В фильтре установите флажок «Выбрать все», чтобы сбросить все выбранные элементы, а затем выберите только North America.

    Область фильтров для выбора Северная Америка

  9. В списке полей сводной таблицы разверните узел Дата.

  10. Перетащите определенную пользователем иерархию Date.Fiscal Дата в область «Метки строк».

  11. Внутри сводной таблицы щелкните стрелку вниз рядом с названием «Метки строк». Снимите флажки для всех годов, кроме FY 2008.

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

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

    На следующем рисунке показаны значения элемента Sales Amount Quota.

    Значения квоты суммы продаж

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

  1. Откройте в конструкторе измерений измерение Сотрудник , щелкните правой кнопкой мыши столбец SalesTerritoryKey на панели Представление источника данных и выберите команду Создать атрибут из столбца.

  2. В панели Атрибуты выберите атрибут SalesTerritoryKeyи в окне свойств задайте для свойства AttributeHierarchyVisible значение False , затем для свойства AttributeHierarchyOptimizedState задайте значение NotOptimized, а для свойства AttributeHierarchyOrdered — значение False.

    Этот атрибут необходим для связи измерения Территория продаж с группами мер Квоты продаж и Квоты продаж 1 в качестве ссылочного измерения.

  3. В кубе Designer для куба SQL Server Analysis Services Tutorial перейдите на вкладку Использование измерения, а затем просмотрите сведения об использовании измерения в группах мер "Квоты продаж" и "Квоты продаж 1".

    Обратите внимание, что измерения куба Сотрудник и Дата соединены с группами мер Квоты продаж и Квоты продаж 1 обычными связями. Кроме того, обратите внимание, что измерение куба Территория продаж не связано ни с одной из этих групп мер.

  4. Щелкните ячейку на пересечении измерения "Территория продаж " и группы мер "Квоты продаж ", а затем нажмите кнопку обзора (...). Откроется диалоговое окно Определение связи .

  5. В списке Выберите тип связи выберите значение Ссылочная.

  6. В списке Промежуточное измерение выберите значение Employee.

  7. В списке Атрибут ссылочного измерения выберите значение Sales Territory Region.

  8. В списке Атрибут промежуточного измерения выберите значение Sales Territory Key. (Ключевым столбцом атрибута «Регион территории продаж» является столбец SalesTerritoryKey.)

  9. Убедитесь, что установлен флажок Материализовать .

  10. Нажмите кнопку ОК.

  11. Щелкните ячейку на пересечении измерения Территория продаж и группы мер Квоты продаж 1 , а затем нажмите кнопку обзора (...). Откроется диалоговое окно Определение связи .

  12. В списке Выберите тип связи выберите значение Ссылочная.

  13. В списке Промежуточное измерение выберите значение Employee.

  14. В списке Атрибут ссылочного измерения выберите значение Sales Territory Region.

  15. В списке Атрибут промежуточного измерения выберите значение Sales Territory Key. (Ключевым столбцом атрибута «Регион территории продаж» является столбец SalesTerritoryKey.)

  16. Убедитесь, что установлен флажок Материализовать .

  17. Нажмите кнопку ОК.

  18. Удалите измерение куба Date .

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

  19. В списке Измерения переименуйте измерение куба Order Date в Date.

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

  20. Нажмите кнопку обзора (...) в ячейке на пересечении группы мер Квоты продаж и измерения Дата .

  21. В диалоговом окне Определение связи в списке Выберите тип связи выберите значение Обычная .

  22. В списке Атрибут гранулярности выберите значение Calendar Quarter.

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

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

    Примечание

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

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

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

  1. Перейдите в Designer измерения для измерения Дата, а затем перейдите на вкладку Связи атрибутов.

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

  2. На диаграмме щелкните правой кнопкой мыши атрибут Календарный квартал , а затем выберите команду Создать связь атрибутов.

  3. В диалоговом окне Создание связи атрибутов поле Исходный атрибут имеет значение Calendar Quarter. Установите поле Связанный атрибут в значение Fiscal Quarter.

  4. Нажмите кнопку ОК.

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

  5. Удалите связь атрибута Финансовый квартал с атрибутом Название месяца .

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

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

  1. В меню Сборка выберите команду Развернуть Analysis Services Tutorial.

  2. После успешного завершения развертывания перейдите на вкладку Браузер в кубе Designer куба SQL Server Analysis Services Tutorial и нажмите кнопку Повторно подключиться.

  3. Щелкните ярлык Excel, а затем выберите Включить.

  4. Перетащите меру Sales Amount Quota в область значений.

  5. Перетащите определенную пользователем иерархию Sales Territories в область «Метки столбцов», а затем примените фильтр по значению North America.

  6. Перетащите пользовательскую иерархию Date.FiscalDate в область «Метки строк», а затем щелкните стрелку вниз рядом с названием Метки столбцов в сводной таблице и снимите все флажки, кроме FY 2008, чтобы отобразить данные только для финансового года 2008.

  7. Щелкните ОК.

  8. Последовательно разверните элементы FY 2008, H1 FY 2008и Q1 FY 2008.

    На следующем рисунке показана сводная таблица для куба SQL Server Analysis Services Tutorial с группой мер "Квота продаж", измеренной правильно.

    Обратите внимание, что все элементы уровня финансового квартала имеют значение, соответствующее уровню квартала. Возьмем для примера Q1 FY 2008 . Квота $ 9 180 000,00 для Q1 FY 2008 также является значением каждого элемента этого квартала. Это обусловлено тем, что для данной таблицы фактов степень гранулярности установлена на уровне квартала, а степень гранулярности для измерения Date также установлена на уровне квартала. На занятии 6 рассматривается, как распределять квартальную сумму пропорционально по месяцам.

    Правильное измерение группы мер квоты продаж

Следующее занятие

Занятие 6: Определение вычислений

См. также:

Связи измерений
Определение обычной связи и ее свойств
Работа с диаграммами в конструкторе представлений источника данных (службы Analysis Services)