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


Определение свойств Unknown Member и Null Processing

В процессе обработки измерения службами Службы Analysis Services его атрибуты заполняются всеми уникальными значениями, полученными из базовых столбцов представлений и таблиц в представлении источника данных. Если при обработке службы Службы Analysis Services обнаруживают значение NULL, по умолчанию оно преобразуется в нулевое значение для числовых столбцов или в пустую строку — для строковых. Можно изменить значения по умолчанию или преобразовывать значения NULL в процессе извлечения, преобразования или загрузки (если они выполняются) данных из базового реляционного хранилища данных. Кроме того, службы Службы Analysis Services могут быть настроены для преобразования значения NULL в указанное значение настройкой 3 свойств: UnknownMember и UnknownMemberName для измерения и свойства NullProcessing для ключевого атрибута измерения.

Мастер измерений и мастер кубов включают эти свойства в том случае, если ключевой атрибут измерения допускает значения NULL или корневой атрибут измерения, связанного по схеме «снежинка», основан на столбце, который допускает значения NULL. В этих случаях свойству NullProcessing ключевого атрибута будет присвоено значение UnknownMember, а свойству UnknownMember — значение Visible.

Однако при добавочном построении измерений, связанных по схеме «снежинка» (как в измерении Product на занятиях учебника), или при определении измерений с помощью конструктора измерений и их последующей интеграции в куб может потребоваться ручная установка свойств UnknownMember и NullProcessing.

В задачах этого раздела будут добавлены атрибуты категории и подкатегории товара в измерение Product из таблиц, связанных по схеме «снежинка», которые, в свою очередь, будут добавлены в представление источника данных Adventure Works DW. Затем необходимо включить свойство UnknownMember для измерения Product, для свойства UnknownMemberName — указать значение Assembly Components, связать атрибуты Subcategory и Category с атрибутом названия продукта, а затем определить пользовательскую обработку ошибок для ключевого атрибута элемента, который связывает таблицы, связанные по схеме «снежинка».

ПримечаниеПримечание

Если изначально куб Службы Analysis Services Tutorial был определен с помощью мастера кубов, при добавлении атрибутов Subcategory и Category эти шаги будут выполнены автоматически.

Просмотр свойств обработки ошибок и неизвестного элемента в измерении Product

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Таблица dbo.DimProductSubcategory (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. На панели Представление источника данных найдите таблицу DimProductCategory, щелкните правой кнопкой мыши столбец ProductCategoryKey в этой таблице и выберите команду Создать атрибут из столбца.

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

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

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

  16. Создайте новую пользовательскую иерархию пользователей под названием Product Categories со следующими уровнями (сверху вниз): Category, Subcategory и Product Name.

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

Просмотр пользовательских иерархий в измерении 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. Убедитесь, что в списке Иерархия имеется значение Product Model Lines, и последовательно разверните узлы All Products и Components.

  8. В списке Иерархия выберите значение Product Categories и последовательно раскройте узлы All Products и Components.

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

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

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

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

  2. В окне Свойства задайте для свойства UnknownMember значение Видимый, а для свойства 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 для атрибута Subcategory или Model Name встретится значение NULL, значение неизвестного элемента будет заменено значением ключа и определенные пользователем иерархии будут созданы правильно.

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

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

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

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

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

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

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

    Уровень «Название продукта» с компонентами сборки

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

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