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

Просмотр свойств обработки ошибок и неизвестного элемента в измерении 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

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

  1. Откройте конструктор представления источника данных на представлении источника данных Adventure Works DW, в области Организатор схем выберите Reseller Sales, а затем выберите команду Добавить или удалить таблицы в меню Представление источника данных среды Business Intelligence Development Studio.

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

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

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

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

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

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

  5. В меню Формат среды BI Development Studio последовательно выберите команды Автоматический макет и Схема.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Просмотр пользовательских иерархий в измерении 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.

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

    Иерархический список отсутствующих компонентов

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

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

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

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

Включение неизвестного элемента, определение связи атрибутов и указание свойства пользовательской обработки для значений 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

Выполнение просмотра измерения Product

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

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

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

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

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

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

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

  5. Выберите элемент Product Model Lines в списке Иерархия, раскройте узел All Products, раскройте элемент Assembly Components на уровне Product Line, а затем раскройте элемент Assembly Components на уровне Model Name.

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