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


Определение свойств 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

  1. Переключитесь в конструкторе измерений на измерение Product , перейдите на вкладку Структура измерения и выберите на панели Атрибуты элемент Product .

    Теперь можно просматривать и изменять свойства самого измерения.

  2. В окне "Свойства" просмотрите свойства UnknownMember и UnknownMemberName .

    Обратите внимание, что свойство UnknownMember отключено, так как для него указано значение Нет вместо Видимый или Скрытый, и что для свойства UnknownMemberName имя не задано.

  3. В окне свойств в ячейке свойств ErrorConfiguration выберите (пользовательский) и раскройте коллекцию свойств ErrorConfiguration .

    Выбор значения (пользовательский) для свойства ErrorConfiguration позволяет просмотреть используемые по умолчанию настройки конфигурации обработки ошибок; настройки при этом не изменяются.

  4. Просмотрите свойства конфигурации ошибок ключа и ошибок ключа NULL, однако не вносите изменения.

    Обратите внимание, что по умолчанию при преобразовании ключа NULL в неизвестный элемент ошибка обработки, связанная с этим преобразованием, пропускается.

    На рисунке ниже показаны параметры свойств в коллекции свойств ErrorConfiguration .

    Коллекция свойств ErrorConfiguration

  5. Перейдите на вкладку Браузер, убедитесь, что в списке Иерархия выбран пункт Линии модели продукта, а затем разверните узел All Products.

    Обратите внимание на пять элементов уровня Product Line.

  6. Разверните узел Components, а затем разверните немаркированный элемент уровня Model Name .

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

    Компоненты сборки, используемые для сборки других компонентов Компоненты

Определение атрибутов из связанных по схеме «снежинка» таблиц и пользовательской иерархии Product Category

  1. Открыть представление источника данных Designer для представления источника данных Adventure Works DW, выберите Продажи торгового посредника на панели Организатор диаграммы, а затем щелкните Добавить и удалить объекты в меню Представление источника данных SQL Server Data Tools (SSDT).

    Откроется диалоговое окно Добавление или удаление таблиц .

  2. В списке Включенные объекты выберите DimProduct (dbo), а затем нажмите кнопку Добавить связанные таблицы.

    Будут добавлены объекты DimProductSubcategory (dbo) и FactProductInventory (dbo) . Удалите FactProductInventory (dbo) , чтобы в список Включенные объекты была добавлена только таблица DimProductSubcategory (dbo) .

  3. Повторно нажмите кнопку Добавить связанные таблицы при выбранной по умолчанию (как последняя добавленная) таблице DimProductSubcategory (dbo) .

    Таблица DimProductCategory (dbo) будет добавлена в список Включенные объекты .

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

  5. В меню Формат SQL Server Data Tools наведите указатель мыши на пункт Автоматический макет и выберите пункт Схема.

    Обратите внимание, что таблицы DimProductSubcategory (dbo) и DimProductCategory (dbo) связаны друг с другом, а также с таблицей ResellerSales через таблицу Product .

  6. Перейдите в конструкторе измерений к измерению Product и откройте вкладку Структура измерения .

  7. Щелкните правой кнопкой мыши панель Представление источника данных и выберите команду Показать все таблицы.

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

  9. В области Атрибуты измените имя этого нового атрибута на Category.

  10. В окно свойств щелкните поле свойства NameColumn и нажмите кнопку обзора (...), чтобы открыть диалоговое окно Столбец имен.

  11. В списке Исходный столбец выберите EnglishProductCategoryName и нажмите кнопку ОК.

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

  13. В области Атрибуты измените имя этого нового атрибута на Subcategory.

  14. В окно свойств щелкните поле свойства NameColumn и нажмите кнопку обзора (...), чтобы открыть диалоговое окно Столбец имен.

  15. В списке Исходный столбец выберите EnglishProductSubcategoryName и нажмите кнопку ОК.

  16. Создайте определяемую пользователем иерархию с именем Категории продуктов со следующими уровнями в порядке сверху вниз: Category, Subcategoryи Название продукта.

  17. Укажите All Products в качестве значения для свойства AllMemberName пользовательской иерархии Категорий продуктов.

Просмотр пользовательских иерархий в измерении Product

  1. На панели инструментов вкладки Структура измерения в конструкторе измерений для измерения Product нажмите кнопку Обработка.

  2. Нажмите кнопку Да , чтобы собрать и развернуть проект, а затем кнопку Выполнить , чтобы выполнить обработку измерения Product .

  3. По завершении обработки разверните узел Обработка измерения "Product" завершена успешно в диалоговом окне Ход обработки , разверните узел Обработка атрибута измерения "Product Name" завершена, а затем разверните узел Запросы SQL 1.

  4. Щелкните запрос SELECT DISTINCT, а затем Просмотр подробностей.

    Обратите внимание, что к предложению SELECT DISTINCT было добавлено предложение WHERE, удаляющее продукты, для которых не задано значение в столбце ProductSubcategoryKey, как показано на следующем рисунке.

    Предложение SELECT DISTINCT, показывающее предложение WHERE

  5. Три раза нажмите кнопку Закрыть , чтобы закрыть все диалоговые окна.

  6. Перейдите на вкладку Браузер конструктора измерений для измерения Product и нажмите кнопку Повтор соединения.

  7. Убедитесь, что строки модели продукта отображаются в списке Иерархия , разверните All Productsузел , а затем — Компоненты.

  8. Выберите Категории продуктов в списке Иерархия , разверните All Products, а затем — Компоненты.

    Обратите внимание, что не отображается ни один из компонентов сборки.

Чтобы изменить поведение, упомянутое в предыдущей задаче, необходимо включить свойство UnknownMember измерения Products, задать значение для свойства UnknownMemberName , задать для свойства NullProcessing для Subcategory атрибутов и Model Name значение UnknownMember, определить Category атрибут как связанный Subcategory атрибут атрибута, а затем определить атрибут Product Line как связанный атрибут атрибута model Name . Эти действия приведут к тому, что службы Analysis Services будут использовать неизвестное значение имени члена для каждого продукта, у которых нет значения для столбца SubcategoryKey , как показано в следующей задаче.

Включение неизвестного элемента, определение связей атрибутов и указание свойств пользовательской обработки для значений NULL

  1. В конструкторе измерений для измерения Product перейдите на вкладку Структура измерения , а затем на панели Атрибуты выберите атрибут Product .

  2. В окне Свойстваизмените свойство UnknownMember на Visible, а затем измените значение свойства UnknownMemberName на Assembly Components.

    Смена значения свойства UnknownMember на Видимый или Скрытый включит свойство UnknownMember для этого измерения.

  3. Перейдите на вкладку Связи атрибутов .

  4. На схеме щелкните правой Subcategory кнопкой мыши атрибут и выберите Создать связь атрибутов.

  5. В диалоговом окне Создание связи атрибутовисходный атрибут имеет значение Subcategory. Задайте для связанного атрибута значение Category. Оставьте для типа связи значение Гибкая.

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

  7. На панели Атрибуты выберите элемент Subcategory.

  8. В окне "Свойства" разверните свойство KeyColumns , а затем свойство DimProductSubcategory.ProductSubcategoryKey (Integer) .

  9. Установите для свойства NullProcessing значение UnknownMember.

  10. На панели Атрибуты выберите элемент Model Name.

  11. В окне "Свойства" разверните свойство KeyColumns , а затем свойство Product.ModelName (WChar) .

  12. Установите для свойства NullProcessing значение UnknownMember.

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

Повторный просмотр измерения Product

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

  2. После успешного развертывания перейдите на вкладку Браузер в конструкторе измерений для измерения Product и нажмите кнопку Повтор соединения.

  3. Убедитесь, что в списке Иерархия выбран пункт Категории продуктов, а затем разверните узел All Products.

    Обратите внимание, что элемент Assembly Components отображается в качестве нового элемента на уровне категории.

  4. Assembly Components Разверните элемент уровня, Category а затем разверните Assembly Components элемент Subcategory уровня.

    Обратите внимание, что все компоненты сборки отображаются на уровне Product Name , как показано на рисунке ниже.

    Уровень имени продукта, показывающий компоненты сборки

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

Занятие 5.: Определение связей между измерениями и группами мер