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


Занятие 4–7. Определение свойств обработки неизвестного элемента и null

Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

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

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

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

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

Примечание

Если вы добавили атрибуты Subcategory и Category при первоначальном определении куба SQL Server 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.

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

  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. Создайте пользовательскую иерархию под названием 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 для атрибутов Subcategory и Model Name в значение UnknownMember, связать атрибут Category с атрибутом Subcategory , а атрибут Product Line — с атрибутом Model Name . Эти действия приведут к тому, что SQL Server 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.

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

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

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

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

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

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

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

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

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

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

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