Определение свойств 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
Переключитесь в конструктор измерений на измерение Product, перейдите на вкладку Структура измерения и выберите в области Атрибуты элемент Product.
Теперь можно просматривать и изменять свойства самого измерения.
В окне «Свойства» просмотрите свойства UnknownMember и UnknownMemberName.
Обратите внимание, что свойство UnknownMember отключено, поскольку для него указано значение Нет вместо Видимый или Скрытый, и что для свойства UnknownMemberName никакое имя не задано.
В окне свойств в ячейке свойств ErrorConfiguration выберите (пользовательский) и раскройте коллекцию свойств ErrorConfiguration.
Выбор значения (пользовательский) для свойства ErrorConfiguration позволяет просмотреть используемые по умолчанию настройки конфигурации обработки ошибок; настройки при этом не изменяются.
Просмотрите свойства конфигурации ошибок ключа и ошибок ключа NULL, однако не вносите изменения.
Обратите внимание, что по умолчанию при преобразовании ключа NULL в неизвестный элемент ошибка обработки, связанная с этим преобразованием, пропускается.
На следующем рисунке показаны параметры свойств в коллекции свойств ErrorConfiguration.
.gif)
Перейдите на вкладку Обозреватель и убедитесь, что в списке Иерархия выбран параметр Product Model Lines, а затем раскройте узел All Products.
Обратите внимание на пять элементов уровня Product Line.
Раскройте узел Components, а затем раскройте немаркированный элемент уровня Model Name.
Этот уровень содержит компоненты сборки, используемые при построении других компонентов, начиная с продукта Adjustable Race, как показано на следующем рисунке.
.gif)
Определение атрибутов из связанных по схеме «снежинка» таблиц и пользовательской иерархии Product Category
Определение атрибутов из связанных по схеме «снежинка» таблиц и пользовательской иерархии Product Category
Откройте конструктор представления источника данных на представлении источника данных Adventure Works DW, в области Организатор схем выберите Reseller Sales, а затем выберите команду Добавить или удалить таблицы в меню Представление источника данных среды Business Intelligence Development Studio.
Откроется диалоговое окно Добавление или удаление таблиц.
В списке Включенные объекты выберите dbo.DimProduct, а затем нажмите кнопку Добавить связанные таблицы.
Таблица dbo.DimProductSubcategory будет добавлена в список Включенные объекты.
Повторно нажмите кнопку Добавить связанные таблицы. При этом таблица dbo.DimProductSubcategory должна быть выбрана по умолчанию как последняя добавленная.
Таблица dbo.DimProductSubcategory будет добавлена в список Включенные объекты.
Нажмите кнопку ОК.
В меню Формат среды BI Development Studio последовательно выберите команды Автоматический макет и Схема.
Обратите внимание, что таблицы dbo.DimProductSubcategory и dbo.DimProductCategory связаны друг с другом, а также с таблицей ResellerSales через таблицу Product.
Перейдите в конструктор измерений на измерение Product и откройте вкладку Структура измерения.
Щелкните правой кнопкой мыши область Представление источника данных и выберите команду Показать все таблицы.
В области Представление источника данных найдите таблицу DimProductCategory, щелкните правой кнопкой мыши столбец ProductCategoryKey в этой таблице и выберите команду Создать атрибут из столбца.
В области Атрибуты измените имя нового атрибута на Category.
В окне «Свойства» щелкните в поле свойства NameColumn, а затем нажмите кнопку обзора (…), чтобы открыть диалоговое окно Столбец имени.
В списке Исходный столбец выберите EnglishProductSubcategoryName и нажмите кнопку ОК.
В области Представление источника данных найдите таблицу DimProductCategory, щелкните правой кнопкой мыши столбец ProductCategoryKey в этой таблице и выберите команду Создать атрибут из столбца.
В области Атрибуты измените имя нового атрибута на Subcategory.
В окне свойств щелкните поле свойства NameColumn, затем нажмите кнопку обзора (…), чтобы открыть диалоговое окно Столбец имени.
В списке Исходный столбец выберите EnglishProductSubcategoryName и нажмите кнопку ОК.
Создайте новую пользовательскую иерархию пользователей под названием Product Categories со следующими уровнями (сверху вниз): Category, Subcategory и Product Name.
Укажите для свойства AllMemberName пользовательской иерархии Product Categories значение All Products.
Просмотр пользовательских иерархий в измерении Product
Просмотр пользовательских иерархий в измерении Product
На панели инструментов вкладки Структура измерения в окне Конструктор измерений для измерения Product нажмите кнопку Обработка.
Нажмите кнопку Да, чтобы создать и развернуть проект, а затем нажмите кнопку Выполнить, чтобы выполнить обработку измерения Product.
По завершении обработки раскройте узел Обработка измерения "Product" завершена успешно в диалоговом окне Ход обработки, раскройте узел Обработка атрибута измерения "Product Name" завершена успешно, а затем раскройте узел Запросы SQL 1.
Щелкните запрос SELECT DISTINCT, а затем — Просмотреть подробности.
Обратите внимание, что к предложению SELECT DISTINCT было добавлено предложение WHERE, удаляющее продукты, для которых не задано значение в столбце ProductSubcategoryKey, как показано на следующем рисунке.
.gif)
Три раза нажмите кнопку Закрыть, чтобы закрыть все диалоговые окна.
Перейдите на вкладку Обозреватель конструктора измерений для измерения Product и нажмите кнопку Повтор соединения.
Убедитесь, что значение Product Model Lines появляется в списке Иерархия, и последовательно раскройте узлы All Products и Components.
Обратите внимание, что список компонентов сборки пуст из-за предложения WHERE в инструкции SELECT DISTINCT, как показано на следующем рисунке.
.gif)
В списке Иерархия выберите значение Product Categories и последовательно раскройте узлы All Products и Components.
Обратите внимание, что не отображается ни один из компонентов сборки.
Чтобы изменить характер работы, описанный в предыдущей задаче, в измерении Products следует включить свойство UnknownMember, установить значение свойства UnknownMemberName, установить параметр NullProcessing в значение UnknownMember для атрибутов Subcategory и Model Name, связать атрибут Category с атрибутом Subcategory и атрибут Product Line с атрибутом Model Name. В результате выполнения этих действий службы Analysis Services станут использовать значение имени неизвестного элемента для товаров, не имеющих значений в столбце SubcategoryKey, как будет показано в следующей задаче.
Включение неизвестного элемента, определение связей атрибутов и указание свойств пользовательской обработки для значений NULL
Включение неизвестного элемента, определение связи атрибутов и указание свойства пользовательской обработки для значений NULL
В конструкторе измерений для измерения Product перейдите на вкладку Структура измерения, затем в области Атрибуты выберите атрибут Product.
В окне Свойства задайте для свойства UnknownMember значение Видимый, а для свойства 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 для атрибута Subcategory или Model Name встретится значение NULL, значение неизвестного элемента будет заменено значением ключа и определенные пользователем иерархии будут созданы правильно.
Повторный просмотр измерения Product
Выполнение просмотра измерения Product
В меню Сборка выберите команду Развернуть Analysis Services Tutorial.
После успешного развертывания перейдите на вкладку Обозреватель в конструкторе измерений для измерения Product и нажмите кнопку Повтор соединения.
Убедитесь, что в списке Иерархия выбран параметр Product Categories и раскройте узел All Products.
Обратите внимание, что элемент Assembly Components отображается в качестве нового элемента на уровне категории.
Раскройте элемент Assembly Components на уровне Category, а затем раскройте элемент Assembly Components на уровне Subcategory.
Обратите внимание, что все компоненты сборки отображаются на уровне Product Name, как показано на следующем рисунке.
.gif)
Выберите элемент Product Model Lines в списке Иерархия, раскройте узел All Products, раскройте элемент Assembly Components на уровне Product Line, а затем раскройте элемент Assembly Components на уровне Model Name.
Обратите внимание, что все компоненты сборки теперь отображаются на уровне Product Name.
Примечание