Определение свойств Unknown Member и Null Processing
Когда службы Analysis Services обрабатывают измерение, все значения, отличные от базовых столбцов в таблицах или представлениях в представлении источника данных, заполняют атрибуты в измерении. Если службы Analysis Services обнаруживает значение NULL во время обработки, по умолчанию оно преобразуется в нуль для числовых столбцов или в пустую строку для строковых столбцов. Можно изменить значения по умолчанию или преобразовывать значения NULL в процессе извлечения, преобразования или загрузки данных (если они выполняются) из базового реляционного хранилища данных. Кроме того, службы Analysis Services могут преобразовать значение NULL в заданное значение, настроив три свойства: UnknownMember и UnknownMemberName для измерения и свойство NullProcessing для ключевого атрибута измерения.
Мастер измерений и мастер кубов включают эти свойства в том случае, если ключевой атрибут измерения допускает значения NULL или корневой атрибут измерения, связанного по схеме «снежинка», основан на столбце, который допускает значения NULL. В этих случаях свойству NullProcessing ключевого атрибута будет присвоено значение UnknownMember , а свойству UnknownMember — значение Visible.
Однако при добавочной сборке измерений, связанных по схеме "снежинка" (как в измерении Product на занятиях учебника), или при определении измерений с помощью конструктора измерений и их последующей интеграции в куб может потребоваться ручная установка свойств UnknownMember и NullProcessing .
В задачах в этом разделе вы добавите атрибуты категории продуктов и подкатегории продукта в измерение Product из таблиц со снежинками, которые будут добавлены в представление источника данных Adventure Works DW. Затем вы включите свойство UnknownMember для измерения Product, укажите Assembly Components
в качестве значения для свойства UnknownMemberName , свяжете Subcategory
атрибуты и Category
с атрибутом имени продукта, а затем определите пользовательскую обработку ошибок для атрибута ключа элемента, который связывает таблицы со снежинками.
Примечание
Если вы добавили атрибуты Subcategory и Category при первоначальном определении куба Analysis Services Tutorial с помощью мастера кубов, эти действия будут выполнены автоматически.
Просмотр свойств обработки ошибок и неизвестного элемента в измерении Product
Переключитесь в конструкторе измерений на измерение Product , перейдите на вкладку Структура измерения и выберите на панели Атрибуты элемент Product .
Теперь можно просматривать и изменять свойства самого измерения.
В окне "Свойства" просмотрите свойства UnknownMember и UnknownMemberName .
Обратите внимание, что свойство UnknownMember отключено, так как для него указано значение Нет вместо Видимый или Скрытый, и что для свойства UnknownMemberName имя не задано.
В окне свойств в ячейке свойств ErrorConfiguration выберите (пользовательский) и раскройте коллекцию свойств ErrorConfiguration .
Выбор значения (пользовательский) для свойства ErrorConfiguration позволяет просмотреть используемые по умолчанию настройки конфигурации обработки ошибок; настройки при этом не изменяются.
Просмотрите свойства конфигурации ошибок ключа и ошибок ключа NULL, однако не вносите изменения.
Обратите внимание, что по умолчанию при преобразовании ключа NULL в неизвестный элемент ошибка обработки, связанная с этим преобразованием, пропускается.
На рисунке ниже показаны параметры свойств в коллекции свойств ErrorConfiguration .
Перейдите на вкладку Браузер, убедитесь, что в списке Иерархия выбран пункт Линии модели продукта, а затем разверните узел
All Products
.Обратите внимание на пять элементов уровня Product Line.
Разверните узел Components, а затем разверните немаркированный элемент уровня Model Name .
Этот уровень содержит компоненты сборки, используемые при построении других компонентов, начиная с продукта Adjustable Race , как показано на рисунке ниже.
Определение атрибутов из связанных по схеме «снежинка» таблиц и пользовательской иерархии Product Category
Открыть представление источника данных Designer для представления источника данных Adventure Works DW, выберите Продажи торгового посредника на панели Организатор диаграммы, а затем щелкните Добавить и удалить объекты в меню Представление источника данных SQL Server Data Tools (SSDT).
Откроется диалоговое окно Добавление или удаление таблиц .
В списке Включенные объекты выберите DimProduct (dbo), а затем нажмите кнопку Добавить связанные таблицы.
Будут добавлены объекты DimProductSubcategory (dbo) и FactProductInventory (dbo) . Удалите FactProductInventory (dbo) , чтобы в список Включенные объекты была добавлена только таблица DimProductSubcategory (dbo) .
Повторно нажмите кнопку Добавить связанные таблицы при выбранной по умолчанию (как последняя добавленная) таблице DimProductSubcategory (dbo) .
Таблица DimProductCategory (dbo) будет добавлена в список Включенные объекты .
Нажмите кнопку ОК.
В меню Формат SQL Server Data Tools наведите указатель мыши на пункт Автоматический макет и выберите пункт Схема.
Обратите внимание, что таблицы DimProductSubcategory (dbo) и DimProductCategory (dbo) связаны друг с другом, а также с таблицей ResellerSales через таблицу Product .
Перейдите в конструкторе измерений к измерению Product и откройте вкладку Структура измерения .
Щелкните правой кнопкой мыши панель Представление источника данных и выберите команду Показать все таблицы.
На панели Представление источника данных найдите таблицу DimProductCategory , щелкните в ней правой кнопкой мыши столбец ProductCategoryKey и выберите команду Создать атрибут из столбца.
В области Атрибуты измените имя этого нового атрибута на
Category
.В окно свойств щелкните поле свойства NameColumn и нажмите кнопку обзора (...), чтобы открыть диалоговое окно Столбец имен.
В списке Исходный столбец выберите EnglishProductCategoryName и нажмите кнопку ОК.
На панели Представление источника данных найдите таблицу DimProductSubcategory , щелкните в ней правой кнопкой мыши столбец ProductSubcategoryKey и выберите команду Создать атрибут из столбца.
В области Атрибуты измените имя этого нового атрибута на
Subcategory
.В окно свойств щелкните поле свойства NameColumn и нажмите кнопку обзора (...), чтобы открыть диалоговое окно Столбец имен.
В списке Исходный столбец выберите EnglishProductSubcategoryName и нажмите кнопку ОК.
Создайте определяемую пользователем иерархию с именем Категории продуктов со следующими уровнями в порядке сверху вниз:
Category
,Subcategory
и Название продукта.Укажите
All Products
в качестве значения для свойства AllMemberName пользовательской иерархии Категорий продуктов.
Просмотр пользовательских иерархий в измерении Product
На панели инструментов вкладки Структура измерения в конструкторе измерений для измерения Product нажмите кнопку Обработка.
Нажмите кнопку Да , чтобы собрать и развернуть проект, а затем кнопку Выполнить , чтобы выполнить обработку измерения Product .
По завершении обработки разверните узел Обработка измерения "Product" завершена успешно в диалоговом окне Ход обработки , разверните узел Обработка атрибута измерения "Product Name" завершена, а затем разверните узел Запросы SQL 1.
Щелкните запрос SELECT DISTINCT, а затем Просмотр подробностей.
Обратите внимание, что к предложению SELECT DISTINCT было добавлено предложение WHERE, удаляющее продукты, для которых не задано значение в столбце ProductSubcategoryKey, как показано на следующем рисунке.
Три раза нажмите кнопку Закрыть , чтобы закрыть все диалоговые окна.
Перейдите на вкладку Браузер конструктора измерений для измерения Product и нажмите кнопку Повтор соединения.
Убедитесь, что строки модели продукта отображаются в списке Иерархия , разверните
All Products
узел , а затем — Компоненты.Выберите Категории продуктов в списке Иерархия , разверните
All Products
, а затем — Компоненты.Обратите внимание, что не отображается ни один из компонентов сборки.
Чтобы изменить поведение, упомянутое в предыдущей задаче, необходимо включить свойство UnknownMember измерения Products, задать значение для свойства UnknownMemberName , задать для свойства NullProcessing для Subcategory
атрибутов и Model Name значение UnknownMember, определить Category
атрибут как связанный Subcategory
атрибут атрибута, а затем определить атрибут Product Line как связанный атрибут атрибута model Name . Эти действия приведут к тому, что службы Analysis Services будут использовать неизвестное значение имени члена для каждого продукта, у которых нет значения для столбца SubcategoryKey , как показано в следующей задаче.
Включение неизвестного элемента, определение связей атрибутов и указание свойств пользовательской обработки для значений NULL
В конструкторе измерений для измерения Product перейдите на вкладку Структура измерения , а затем на панели Атрибуты выберите атрибут Product .
В окне Свойстваизмените свойство UnknownMember на Visible, а затем измените значение свойства UnknownMemberName на
Assembly Components
.Смена значения свойства UnknownMember на Видимый или Скрытый включит свойство UnknownMember для этого измерения.
Перейдите на вкладку Связи атрибутов .
На схеме щелкните правой
Subcategory
кнопкой мыши атрибут и выберите Создать связь атрибутов.В диалоговом окне Создание связи атрибутовисходный атрибут имеет значение
Subcategory
. Задайте для связанного атрибута значениеCategory
. Оставьте для типа связи значение Гибкая.Нажмите кнопку ОК.
На панели Атрибуты выберите элемент Subcategory.
В окне "Свойства" разверните свойство KeyColumns , а затем свойство DimProductSubcategory.ProductSubcategoryKey (Integer) .
Установите для свойства NullProcessing значение UnknownMember.
На панели Атрибуты выберите элемент Model Name.
В окне "Свойства" разверните свойство KeyColumns , а затем свойство Product.ModelName (WChar) .
Установите для свойства NullProcessing значение UnknownMember.
Из-за этих изменений, когда службы Analysis Services обнаруживает значение NULL для
Subcategory
атрибута или атрибута Имя модели во время обработки, неизвестное значение члена будет заменено значением ключа, а определяемые пользователем иерархии будут созданы правильно.
Повторный просмотр измерения Product
В меню Сборка выберите команду Развернуть Analysis Services Tutorial.
После успешного развертывания перейдите на вкладку Браузер в конструкторе измерений для измерения Product и нажмите кнопку Повтор соединения.
Убедитесь, что в списке Иерархия выбран пункт Категории продуктов, а затем разверните узел
All Products
.Обратите внимание, что элемент Assembly Components отображается в качестве нового элемента на уровне категории.
Assembly Components
Разверните элемент уровня,Category
а затем развернитеAssembly Components
элементSubcategory
уровня.Обратите внимание, что все компоненты сборки отображаются на уровне Product Name , как показано на рисунке ниже.
Следующее занятие
Занятие 5.: Определение связей между измерениями и группами мер