Использование MS SQL Server Analysis Services 2008 для построения хранилищ данных

Изменение мер, атрибутов и иерархий

Разбить на страницы
Показывать лекцию целиком

Теоретическое введение

Настройка свойств мер

Меры имеют свойства, позволяющие определять и управлять их работой и отображением для пользователей. Меры наследуют определенные свойства у группы мер, элементами которых они являются, если только эти свойства не переопределены на уровне мер. Свойства мер определяют статистическое вычисление, тип данных, отображаемые для пользователей имена, папку отображения, строку форматирования, выражения меры, базовые исходные столбцы и видимость для пользователей (Таблица 4.1).

Свойства мер
Свойство Определение
AggregateFunction Определяет, как выполняется статистическое вычисление мер.
DataType Указывает тип данных столбца базовой таблицы фактов, к которым привязана мера.
Description Содержит описание меры, которое может быть видно в клиентских приложениях.
DisplayFolder Указывает папку отображения, в которой будет представлена мера при подключении пользователя к кубу. Если куб содержит множество мер, папки отображения позволяют разбить их по категориям мер, упростив доступ к ним.
FormatString Определяет формат представления.
ID Отображает уникальный идентификатор (ID) меры. Это свойство доступно только для чтения.
MeasureExpression Многомерное выражение (MDX), определяющее меру.
Name Имя меры.
Source Столбец в представлении источника данных, к которому привязана мера.
Visible Определяет, отображается мера или скрыта.

Статистические функции

Службы SSAS предоставляют функции для статистической обработки мер и измерений, содержащихся в группах мер. По умолчанию меры суммируются вдоль каждого измерения. Однако свойство AggregateFunction позволяет изменить это. Аддитивность агрегата определяет, как осуществляется статистическое вычисление меры по всем измерениям в кубе. Статистические функции подразделяются на три уровня аддитивности:

  • аддитивная мера, также называемая полностью аддитивной мерой, может быть статистически вычислена вдоль всех измерений в кубе, которые включены в группу мер, содержащую меру, без ограничений.
  • полуаддитивная мера может быть статистически вычислена вдоль некоторых, но не всех измерений, которые включены в группу мер, содержащую эту меру. Например, мера, представляющая количество, доступное для описи, может быть статистически вычислена вдоль измерения географии для получения суммарного количества, доступного на всех складах; но эта мера не может быть статистически вычислена вдоль измерения времени, поскольку она представляет собой периодический моментальный снимок доступных количеств. При статистическом вычислении подобной меры вдоль измерения времени получились бы неверные результаты.
  • неаддитивная мера не может быть статистически вычислена вдоль какого-либо измерения в группе мер, содержащей эту меру. Вместо этого мера должна быть индивидуально вычислена для каждой ячейки в кубе, представляющей эту меру. Например, вычисляемую меру, возвращающую процентное значение, такое как маржа прибыли, нельзя вычислить на основе процентных значений дочерних элементов в каком-либо измерении.
  • В Таблица 8.2 приведен список статистических функций в службах SSAS и описание аддитивности, а также ожидаемого результата функции.

    Статистические функции SSAS
    Статистическая функция Аддитивность Возвращаемое значение
    Sum Аддитивная Вычисляет сумму значений всех дочерних элементов. Это статистическое вычисление по умолчанию.
    Count Аддитивная Получает количество всех дочерних элементов.
    Min Полуаддитивная Получает самое низкое значение для всех дочерних элементов.
    Max Полуаддитивная Получает самое высокое значение для всех дочерних элементов.
    DistinctCount Неаддитивная Получает количество всех уникальных дочерних элементов.
    None Неаддитивная Статистическое вычисление не выполняется, и все значения для конечных и неконечных элементов в измерении получаются непосредственно из таблицы фактов для группы мер, содержащей эту меру. Если из таблицы фактов невозможно считать значение для элемента, то значение для этого элемента устанавливается равным NULL.
    ByAccount Полуаддитивная Вычисляет агрегат в соответствии со статистической функцией, присвоенной типу счета для элемента измерения счетов. Если в группе мер не существует измерения типа счета, то обрабатывается так же, как статистическая функция None.
    AverageOfChildren Полуаддитивная Вычисляет среднее значений всех непустых дочерних элементов.
    FirstChild Полуаддитивная Получает значение первого дочернего элемента.
    LastChild Полуаддитивная Получает значение последнего дочернего элемента.
    FirstNonEmpty Полуаддитивная Получает значение первого непустого дочернего элемента.
    LastNonEmpty Полуаддитивная Получает значение последнего непустого дочернего элемента.

    Форматы отображения

    Можно выбрать формат, используемый для отображения значений меры пользователям, используя свойство FormatString меры.

    Помимо имеющегося списка форматов отображения, можно указать множество дополнительных форматов, не содержащихся в этом списке. Можно указать любой именованный или определенный пользователем формат, допустимый в языке Microsoft Visual Basic.

    Определение именованных вычислений в представлении источника данных

    Именованное вычисление является выражением SQL, представленным в виде вычисляемого столбца. Данное выражение выглядит и работает как столбец таблицы. Именованное вычисление позволяет расширить реляционную схему таблиц или представлений, существующих в представлении источника данных, не изменяя таблицы или представления в базовом источнике данных. Например, общее вычисляемое значение, полученное из столбцов таблицы фактов, может быть представлено в виде единственного именованного вычисления в представлении источника данных, вместо изменения основной таблицы баз данных, или создания представления в основной базе данных. Именованные вычисления также можно использовать вместо вычисляемых элементов в каждом кубе, основанном на представлении источника данных. Именованные вычисления рассчитываются в процессе обработки, тогда как вычисляемые элементы рассчитываются во время запроса.

    Именованные вычисления также часто используются для создания понятного имени для элемента измерения.

    При создании именованного вычисления указывается имя, выражение SQL и (необязательно) описание вычисления. Выражение SQL может ссылаться на другие таблицы в представлении источника данных. После определения именованного вычисления выражение в именованном вычислении отправляется поставщику источника данных и проверяется в виде указанной ниже инструкции SQL, в которой <Expression> содержит выражение, определяющее именованное вычисление.

    SELECT 
       <Table Name in Data Source>;.*, 
       <Expression>  AS <Column Name>  
    FROM 
       <Table Name in Data Source>  AS <Table Name in Data Source View>

    Тип данных столбца определяется типом данных скалярного значения, возвращенного выражением. Если поставщик не обнаружит каких-либо ошибок в выражении, то столбец будет добавлен к таблице.

    Столбцы, указанные в выражении, не должны иметь квалификатора вовсе или должны иметь только такой квалификатор, который соответствует имени таблицы. Например, для ссылки на столбец SaleAmount в таблице можно использовать SaleAmount или Sales.SaleAmount, но dbo.Sales.SaleAmount возвращает ошибку.

    Связи атрибутов

    В службах SSAS атрибуты играют роль строительных блоков, из которых создается измерение. Измерение содержит набор атрибутов, организованных на основе связей между ними.

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

    Связь атрибутов дает следующие преимущества:

  • снижает объем памяти, необходимый для обработки измерения. Это ускоряет обработку измерений, секций и запросов;
  • повышает производительность запросов, поскольку ускоряется доступ к хранилищу и лучше оптимизируются планы выполнения;
  • приводит к выбору более эффективных алгоритмов создания статистических схем (при условии, что пользовательские иерархии были определены по путям связей).
  • В службах SSAS атрибуты измерения всегда прямо или косвенно связаны с ключевым атрибутом. Когда измерение определяется по схеме "звезда", где все атрибуты измерения наследуются из одной реляционной таблицы, то связи между ключевыми и не ключевыми атрибутами определяются автоматически. Когда измерение определяется по схеме "снежинка", где атрибуты измерения наследуются от разных реляционных таблиц, связи атрибутов автоматически определяются следующим образом:

  • между ключевым атрибутом и каждым не ключевым атрибутом, привязанным к столбцу главной таблицы измерения;
  • между ключевым атрибутом и атрибутами, привязанными к внешнему ключу вспомогательной таблицы, которая связывает таблицы базового измерения;
  • между атрибутом, привязанным к внешнему ключу вспомогательной таблицы, и каждым не ключевым атрибутом, привязанным к столбцам вспомогательной таблицы;
  • Однако по ряду причин может понадобиться изменить связи атрибутов, определенные по умолчанию, например чтобы определить естественную иерархию, пользовательский порядок сортировки или степень гранулярности измерения на основе неключевого атрибута.

    Иерархия является естественной, когда каждый атрибут пользовательской иерархии имеет связь типа "один ко многим" с атрибутом, находящимся непосредственно под ним. Допустим, измерение "Customer" основано на реляционной таблице, содержащей восемь столбцов:

  • CustomerKey ;
  • CustomerName ;
  • Age ;
  • Gender ;
  • Email ;
  • City ;
  • Country ;
  • Region ;
  • Соответствующее измерение служб SSAS содержит семь атрибутов:

  • Customer (основанное на CustomerKey и CustomerName );
  • Age, Gender, Email, City, Region, Country.
  • Представляющие естественные иерархии связи создают, связывая атрибуты текущего и нижестоящего уровня. В службах SSAS это свойство определяет естественную иерархию и возможное статистическое вычисление. В измерении " Customer " естественная иерархия применяется для атрибутов " Country ", " Region ", " City " и" Customer ". Естественная иерархия атрибутов { Country, Region, City, Customer } описывается добавлением следующих связей атрибутов:

  • атрибут " Country " как связь атрибутов к атрибуту " Region ";
  • атрибут " Region " как связь атрибутов к атрибуту " City ";
  • атрибут " City " как связь атрибутов к атрибуту " Customer ".
  • Для перемещения по данным куба можно также создать пользовательскую иерархию, не представленную естественной иерархией данных (такая иерархия называется нерегламентированной или иерархией отчетов). Например, пользовательская иерархия может быть создана на основе { Age, Gender }. Пользователи не смогут увидеть разницу в поведении, отличить эти иерархии, хотя естественная иерархия предоставляет преимущество благодаря скрытым от пользователя статистическим выражениям и структурам индексирования, которые отвечают за естественные связи в исходных данных.

    Свойство " SourceAttribute " уровня определяет, какой из атрибутов описывает уровень. Свойство " KeyColumns " атрибута определяет столбец в представлении источника данных, который является источником элементов. Свойство " NameColumn " атрибута может указывать на другой столбец имен для элементов.

    Для определения уровня в пользовательской иерархии в среде BI Dev Studio применяется конструктор измерений, позволяющий выбрать атрибут измерения, столбец в таблице измерения или столбец из связанной таблицы, которая содержится в представлении источника данных куба.

    При создании атрибута необходимо проверить, чтобы атрибут, на который ссылается связь, имел не более одного значения для каждого элемента атрибута, к которому он принадлежит. Например, если определить связь между атрибутами " City " и " State ", каждый город будет принадлежать одному штату.

    Создание пользовательских иерархий

    SSAS позволяют создавать пользовательские иерархии. Иерархия - это набор уровней на основе атрибутов. Например, иерархия, связанная со временем, может содержать такие уровни, как "Год", "Месяц" и "День". В некоторых иерархиях каждый атрибут однозначно задает атрибут родительского элемента. Такую иерархию иногда называют естественной. Конечные пользователи могут использовать иерархии для просмотра данных в кубе. Иерархии задаются с помощью области "Иерархии" конструктора измерений в среде разработки BI Dev Studio.

    Настройка уровня "All" для иерархий атрибутов

    В службах SSAS уровень " All " является дополнительным, сформированным системой. Он содержит только один элемент, значение которого является результатом статистической обработки значений всех членов на ближайшем подчиненном уровне. Этот элемент называется " All ". Он создается системой и отсутствует в таблице измерений. Поскольку элемент уровня " All " находится на вершине иерархии, его значение является результатом статистической обработки значений всех элементов иерархии. Элемент ( All ) часто служит в качестве члена иерархии по умолчанию.

    Практические задания

    Изменение мер

    На этом этапе будут настроены свойства форматирования мер валюты и процентов в кубе Analysis Services Tutorial.

    Свойство FormatString позволяет определить параметры форматирования, управляющие способом отображения мер для пользователей.

    Перейдите на вкладку "Структура куба" конструктора кубов для куба Analysis Services Tutorial, раскройте группу мер "Продажи через Интернет" на панели "Меры", щелкните правой кнопкой мыши элемент Order Quantity и в контекстном меню выберите пункт "Свойства" (рисунок 8.1).

    (рис 8.1) Контекстное меню элемента OrderQuantity меры "Продажи через Интернет"

    В окне свойств нажмите кнопку "Автоматически скрывать" (рисунок 8.2), чтобы оставить окно свойств постоянно открытым. Если окно свойств остается постоянно открытым, изменять свойства нескольких элементов куба проще.

    (рис 8.2) Кнопка "Автоматически скрывать" окна "Свойства"

    В окне "Свойства" в качестве значения свойства FormatString введите #,# (рисунок 8.3).

    (рис 8.3) Значение свойства FormatString

    На панели инструментов вкладки "Структура куба" нажмите кнопку "Показывать сетку мер" (рисунок 8.4). Сетка просмотра позволяет выбрать несколько мер одновременно.

    (рис 8.4) Кнопка "Показывать сетку мер" на панели инструментов вкладки "Структура куба"

    Выберите следующие меры. Можно выбрать несколько мер. Для этого щелкните каждую из них, удерживая нажатой клавишу CTRL (рисунок 8.5):

  • Unit Price ;
  • Extended Amount ;
  • Discount Amount ;
  • Product Standard Cost ;
  • Total Product Cost ;
  • Sales Amount ;
  • Tax Amt ;
  • Freight.
  • (рис 8.5) Выбранные меры

    В окне свойств в раскрывающемся списке FormatString выберите значение Currency (Валюта) (рисунок 8.6).

    (рис 8.6) Значение свойства FormatString для выбранных мер

    В списке мер (рисунок 8.7) выберите меру Unit Price Discount Pct, а затем выберите значение Percent (Процент) в раскрывающемся списке FormatString (рисунок 8.8).

    (рис 8.8) Выбранная мера Unit Price Discount Pct (рис 8.7) Значение свойства FormatString для меры Unit Price Discount Pct

    В окне свойств измените свойство Name меры Unit Price Discount Pct на "Процент скидки на единицу товара" (рисунок 8.9).

    (рис 8.9) Новое имя меры Unit Price Discount Pct

    На панели "Меры" щелкните Tax Amt и измените имя меры на "Размер налога" (рисунок 8.10).

    (рис 8.10) Новое имя меры Tax Amt

    Аналогичным образом переименуйте меры (рисунок 8.11):

  • Unit Price - Цена единицы продукта;
  • Extended Amount - Стоимость заказа;
  • Discount Amount - Размер скидки;
  • Product Standard Cost - Стандартная стоимость продукта;
  • Total Product Cost - Полная стоимость продукта;
  • Sales Amount - Сумма продаж;
  • Freight - Стоимость доставки;
  • Order Quantity - Заказанное количество.
  • (рис 8.11) Переименованные меры

    В окне свойств нажмите кнопку "Автоматически скрыть", чтобы скрыть окно свойств, а затем нажмите кнопку "Показывать дерево мер" на вкладке панели инструментов "Структура куба" (рисунок 8.12).

    (рис 8.12) Кнопка "Показывать дерево мер" на вкладке панели инструментов "Структура куба"

    В меню "Файл" выберите команду "Сохранить все".

    Изменение измерения "Клиент"

    Существует много способов повысить удобство использования и функциональность измерений куба. Далее будет изменено измерение "Клиент".

    Переименование атрибутов

    Откройте измерение "Клиент" в конструкторе измерений среды BI Dev Studio. Для этого дважды щелкните измерение "Клиент" в узле "Измерения" обозревателя решений ( рисунок 8.13).

    (рис 8.13) Измерение "Клиент" в конструкторе измерений

    В области "Атрибуты" щелкните правой кнопкой мыши атрибут " English Country Region Name " и выберите команду " Переименовать ". Измените имя атрибута на " Страна-Регион " (рисунок 8.14).

    (рис 8.14) Переименованный атрибут "English Country Region Name"

    Аналогичным образом измените имена следующих атрибутов (рисунок 8.15):

  • Имя атрибута " English Education " замените на " Образование ";
  • Имя атрибута " English Occupation " замените на " Место проживания ";
  • Имя атрибута " State Province Name " замените на " Штат-Провинция ".
  • (рис 8.15) Переименованные атрибуты измерения "Клиент"

    В меню "Файл" выберите команду " Сохранить все ".

    Создание иерархии

    Новую иерархию можно создать, перетащив атрибут из области "Атрибуты" в область "Иерархии". Перетащите атрибут " Страна-Регион " из области " Атрибуты " в область " Иерархии " (рисунок 8.16).

    (рис 8.16) Создание корневого элемента иерархии

    Перетащите атрибут " Штат-Провинция " из области " Атрибуты " в ячейку <создать уровень> в области " Иерархии " под уровнем " Страна-Регион " (рисунок 8.17).

    (рис 8.17) Создание элемента иерархии второго уровня

    Переименуйте атрибут " City " на " Город " и перетащите его из области " Атрибуты " в ячейку <создать уровень> в области " Иерархии " под уровнем " Штат-Провинция ".

    (рис 8.18) Создание элемента иерархии третьего уровня

    В области " Иерархии " на вкладке " Структура измерения " щелкните правой кнопкой мыши строку заголовка иерархии " Иерархия " и в контекстном меню выберите команду " Переименовать " и введите " География Клиентов " (рисунок 8.19).

    (рис 8.19) Переименованная иерархия

    В меню " Файл " выберите команду " Сохранить все ".

    Добавление именованного вычисления

    К таблице в представлении источника данных можно добавить именованное вычисление, которое является выражением SQL и представляет собой вычисляемый столбец. Это выражение имеет вид и функции столбца таблицы. Именованные вычисления позволяют расширять реляционную схему таблиц, существующих в представлении источника данных, не изменяя структуру таблиц в базовом источнике данных.

    Откройте представление источника данных Adventure Works DW ( рисунок 8.20), дважды щелкнув его в папке "Представления источников данных" обозревателя решений.

    (рис 8.20) Представление источника данных Adventure Works DW

    В области "Таблицы" щелкните правой кнопкой мыши таблицу "Клиент" и в контекстном меню выберите команду "Создать именованное вычисление" (рисунок 8.21).

    (рис 8.21) Контекстное меню таблицы "Клиент"

    В диалоговом окне "Создание именованного вычисления" (рисунок 8.22) в поле "Имя столбца" введите "Полное имя", а в поле "Выражение" следующую инструкцию CASE:

    CASE
       WHEN MiddleName IS NULL THEN
       FirstName + ' ' + LastName
       ELSE
       FirstName + ' ' + MiddleName + ' ' + LastName
    END
    (рис 8.22) Диалоговое окно "Создание именованного вычисления"

    Инструкция CASE объединяет столбцы FirstName, MiddleName и LastName в один столбец, который затем может использоваться в измерении "Клиент" в качестве отображаемого имени для атрибута "Клиент".

    Нажмите кнопку ОК, а затем раскройте таблицу "Клиент" в области "Таблицы". Именованное вычисление "Полное имя" появляется в списке столбцов таблицы "Клиент" со значком, обозначающим, что это именованное вычисление (рисунок 8.23).

    (рис 8.23) Именованное вычисление FullName таблицы "Клиент"

    В меню "Файл" выберите команду "Сохранить все".

    В области "Таблицы" щелкните правой кнопкой мыши таблицу "Клиент" и выберите пункт "Просмотр данных". Просмотрите последний столбец в представлении "Просмотр таблицы Клиент" (рисунок 8.24).

    (рис 8.24) Просмотр данных таблицы "Клиент"

    Обратите внимание, что в представлении источника данных появился столбец "Полное имя", содержащий сцепление данных из других столбцов источника данных; при этом исходный источник данных изменять не пришлось.

    Использование именованных вычислений в качестве имен элементов

    После создания именованного вычисления в представлении источника данных это вычисление можно использовать в качестве свойства атрибута.

    В конструкторе измерений откройте измерение "Клиент". В области "Атрибуты" вкладки "Структура измерения" выберите атрибут Customer Key (рисунок 8.25).

    (рис 8.25) Атрибут Customer Key измерения "Клиент"

    В окне "Свойства" в поле свойства Name введите "Полное имя" (рисунок 8.26).

    (рис 8.26) Окно "Свойства"

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

    (рис 8.28) Свойство NameColumn (рис 8.27) Диалоговое окно "Столбец имени"

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

    Перетащите атрибут "Полное имя" из области "Атрибуты" в ячейку <создать уровень> области "Иерархии" под уровень "Город" (рисунок 8.29).

    (рис 8.29) Четвертый уровень иерархии

    В меню "Файл" выберите команду "Сохранить все".

    Определение папок отображения

    Папки отображения позволяют группировать пользовательские иерархии и иерархии атрибутов в структуры папок, удобные для пользователя.

    Откройте вкладку "Структура измерения" для измерения "Клиент".

    В области "Атрибуты" выберите следующие атрибуты (щелкните каждый из них, удерживая нажатой клавишу CTRL) (рисунок 8.30):

  • Город ;
  • Страна-регион ;
  • Postal Code ;
  • Штат-провинция.
  • (рис 8.30) Выбранные атрибуты

    В окне свойств щелкните поле свойства AttributeHierarchyDisplayFolder и введите Location (рисунок 8.31).

    (рис 8.31) Свойство AttributeHierarchyDisplayFolder

    В области "Иерархии" щелкните иерархию "География Клиентов" и выберите для свойства DisplayFolder значение Location (рисунок 8.32).

    (рис 8.32) Свойство DisplayFolder

    В области "Атрибуты" выберите следующие атрибуты:

  • Commute Distance ;
  • Образование ;
  • Gender ;
  • House Owner Flag ;
  • Marital Status ;
  • Number Cars Owned ;
  • Number Children At Home ;
  • Место проживания ;
  • Total Children ;
  • Yearly Income.
  • В окне свойств щелкните поле свойства AttributeHierarchyDisplayFolder и введите " Demographic ".

    В области "Атрибуты" выберите следующие атрибуты:

  • Email Address ;
  • Phone.
  • В окне свойств щелкните поле свойства AttributeHierarchyDisplayFolder и введите " Contacts ".

    В меню "Файл" выберите команду "Сохранить все".

    Определение составных ключевых столбцов

    Свойство KeyColumns содержит столбец или столбцы, представляющие ключ для атрибута. На этом занятии будет создан составной ключ для атрибутов "Город" и "Штат-Провинция". Составные ключи могут оказаться полезными для уникальной идентификации атрибута. Например, при определении связи атрибутов атрибут "Город" должен уникально идентифицировать атрибут "Штат-Провинция". Однако в разных областях бывают города с одинаковыми названиями. Поэтому для атрибута "Город" необходимо создать составной ключ, состоящий из столбцов City и StateProvinceName

    Для определения составного свойства KeyColumns для атрибута "Город" откройте вкладку "Структура измерения" для измерения "Клиент". В области "Атрибуты" выберите атрибут "Город". В окне "Свойства" нажмите кнопку обзора (...)в поле KeyColumns (рисунок 8.33).

    (рис 8.33) Окно "Свойства" атрибута "Город"

    В диалоговом окне "Ключевые столбцы" в списке "Доступные столбцы" выберите столбец StateProvinceName и нажмите кнопку > (рисунок 8.34).

    (рис 8.34) Диалоговое окно "Ключевые столбцы"

    Теперь в списке Ключевые столбцы отображаются столбцы City и StateProvinceName. Нажмите кнопку ОК.

    Обратите внимание, что перечне атрибутов измерения "Клиент" атрибут "Город" стал подчеркнутым красной волнистой линией. Это произошло потому, что теперь имеется несколько столбцов KeyColumns, и для атрибута "Город" необходимо определить столбец NameColumn (рисунок 8.35).

    (рис 8.35) Необходимо определить столбец NameColumn для атрибута "Город"

    Чтобы задать свойство NameColumn атрибута "Город", щелкните в окне свойств поле NameColumn и нажмите кнопку обзора (...). В диалоговом окне "Столбец имени" в списке "Исходный столбец" выберите City и нажмите кнопку ОК (рисунок 8.36).

    (рис 8.36) Диалоговое окно "Столбец имени"

    Красное подчеркивание должно пропасть. В меню "Файл" выберите команду "Сохранить все".

    Для определения составного свойства KeyColumns для атрибута "Штат-Провинция" откройте вкладку "Структура измерения" для измерения "Клиент".

    В области "Атрибуты" выберите атрибут "Штат-Провинция". В окне "Свойства" щелкните в поле KeyColumns и нажмите кнопку обзора (...) (рисунок 8.37).

    (рис 8.37) Свойство KeyColumns атрибута "Штат-Провинция"

    В диалоговом окне "Ключевые столбцы" в списке "Доступные столбцы" выберите столбец EnglishCountryRegionName и нажмите кнопку > (рисунок 8.38).

    (рис 8.38) Диалоговое окно "Ключевые столбцы"

    Теперь в списке "Ключевые столбцы" отображаются столбцы EnglishCountryRegionName и StateProvinceName.

    Чтобы задать свойство NameColumn атрибута "Штат-Провинция", щелкните в окне свойств поле NameColumn и нажмите кнопку обзора (...).

    В диалоговом окне "Столбец имени", в списке "Исходный столбец" выберите StateProvinceName и нажмите кнопку ОК (рисунок 8.39).

    (рис 8.39) Диалоговое окно "Столбец имени"

    В меню "Файл" выберите команду "Сохранить все".

    Определение связей атрибутов

    Необходимо определять связи между атрибутами, если базовые данные это поддерживают. Определение связей между атрибутами ускоряет обработку измерений, секций и запросов.

    В конструкторе измерений для измерения "Клиент" откройте вкладку "Связи атрибутов" (рисунок 8.40).

    (рис 8.40) Вкладка "Связи атрибутов" измерения "Клиент"

    На схеме щелкните правой кнопкой мыши атрибут "Город" и выберите команду контекстного меню "Создать связь атрибутов" (рисунок 8.41).

    (рис 8.41) Контекстное меню атрибута "Город"

    В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение "город". Для поля "Связанный атрибут" задайте значение "Штат-Провинция" (рисунок 8.42).

    (рис 8.42) Диалоговое окно "Создание связи атрибутов"

    В списке "Тип связи" выберите тип связи "Жесткая". Связь имеет тип "Жесткая", поскольку связи между элементами не будут меняться с течением времени. Например, переход города под юрисдикцию другого штата или провинции - явление крайне редкое. Нажмите кнопку ОК.

    На схеме щелкните правой кнопкой мыши атрибут "Штат-Провинция" и выберите команду "Создать связь атрибутов". В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение "Штат-Провинция". Задайте для поля "Связанный атрибут" значение "Страна-Регион" (рисунок 8.43).

    (рис 8.43) Диалоговое окно"Создание связи атрибутов"

    В списке "Тип связи" выберите тип связи "Жесткая". Нажмите кнопку ОК. В результате будет создана связь между атрибутами, приведенная нарисунок 8.44.

    (рис 8.44) Связь между атрибутами

    В меню "Файл" выберите команду "Сохранить все".

    Развертывание изменений, обработка объектов и просмотр изменений

    После изменения атрибутов и иерархий необходимо произвести развертывание произведенных изменений и повторную обработку связанных объектов, прежде чем эти изменения можно будет просмотреть.

    В меню "Построение" среды BI Dev Studio выберите команду "Развернуть Analysis Services Tutorial". Получив сообщение "Развертывание выполнено успешно" (рисунок 8.45), в конструкторе измерений перейдите на вкладку "Обозреватель" измерения "Клиент" и щелкните на панели инструментов значок повторного соединения (рисунок 8.46).

    (рис 8.46) Сообщение об успешном развертывании (рис 8.45) Вкладка "Обозреватель" измерения "Клиент"

    Убедитесь, что в списке Иерархия выделена иерархия География покупателя, в области обозревателя последовательно раскройте узлы Все, Australia (Австралия), New South Wales (Новый Южный Уэльс) и наконец Coffs Harbour (Коффс Харбор). В обозревателе отображаются заказчики, живущие в этом городе (рисунок 8.47).

    (рис 8.47) Перечень заказчиков

    Переключитесь в конструктор кубов для куба Analysis Services Tutorial. Чтобы сделать это, дважды щелкните куб Analysis Services Tutorial, который находится в узле "Кубы" в дереве обозревателя решений.

    Перейдите на вкладку "Обозреватель" и на панели инструментов конструктора щелкните значок повторного соединения (рисунок 8.48).

    (рис 8.48) Вкладка "Обозреватель" конструктора кубов

    В области "Группа мер" разверните узел "Клиент" (рисунок 8.49).

    (рис 8.49) Узел "Клиент" в конструкторе кубов

    Обратите внимание, что вместо длинного списка атрибутов для измерения "Клиент" отображаются только папки отображения и те атрибуты, для которых не указана папка отображения. В меню "Файл" выберите команду "Сохранить все".

    Изменение измерения "Продукт"

    При выполнении задач этого раздела будут использованы именованные вычисления, чтобы предоставить понятные имена для линий товаров, определена иерархия в измерении "Продукт" и указано имя элемента "( All )" для иерархии. Также атрибуты будут сгруппированы в папки отображения.

    Добавление именованного вычисления

    К таблице в представлении источника данных может быть добавлено именованное вычисление. Далее будет создано именованное вычисление, которое отображает полное наименование линии товаров.

    Откройте представление источника данных Adventure Works DW, дважды щелкнув его в папке "Представления источников данных" обозревателя решений.

    В области "Таблицы" щелкните правой кнопкой мыши таблицу "Продукт" и выберите команду "Создать именованное вычисление" (рисунок 8.50).

    (рис 8.50) Создание именованного вычисления в таблице "Продукт"

    В диалоговом окне "Создание именованного вычисления" в поле "Имя столбца" введите "Название линейки продуктов".

    В поле "Выражение" введите следующую инструкцию CASE (рисунок 8.51):

    CASE ProductLine
       WHEN 'M' THEN 'Горные'
       WHEN 'R' THEN 'Дорожные'
       WHEN 'S' THEN 'Аксессуары'
       WHEN 'T' THEN 'Туристические'
       ELSE 'Компоненты'
    END
    (рис 8.51) Диалоговое окно "Создание именованного вычисления"

    Эта инструкция для каждой линейке товара в кубе создает понятные имена. Нажмите кнопку ОК, чтобы создать именованное вычисление "Название линейки продуктов". В меню "Файл" выберите команду "Сохранить все".

    Изменение свойства NameColumn атрибута

    В конструкторе измерений откройте измерение "Продукт". Для этого дважды щелкните его в узле "Измерения" обозревателя решений. В области "Атрибуты" вкладки "Структура измерения" выберите Product Line ( рисунок 8.52).

    (рис 8.52) Измерение "Продукт" в конструкторе измерений

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

    (рис 8.54) Свойство NameColumn (рис 8.53) Диалоговое окно "Столбец имени"

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

    Теперь поле NameColumn содержит текст "Продукт.Название линейки продуктов (WChar)". После этого элементы иерархии атрибута Product Line будут содержать не сокращенное, а полное наименование линии товара.

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

    Выберите в списке "Исходный столбец" значение "EnglishProductName" (рисунок 8.55) и нажмите кнопку ОК.

    (рис 8.55) Диалоговое окно "Столбец имени"

    Теперь поле NameColumn содержит текст "Продукт.EnglishProductName (WChar)".

    В окне свойств задайте для свойства Name атрибута Product Key значение "Название продукта" (рисунок 8.56).

    (рис 8.56) Свойство Name атрибута Product Key

    Создание иерархии

    Перетащите атрибут Product Line из области "Атрибуты" в область "Иерархии" (рисунок 8.57).

    (рис 8.57) Атрибут первого уровня иерархии

    Перетащите атрибут Model Name из области "Атрибуты" в ячейку <создать уровень> области "Иерархии" ниже уровня Product Line (рисунок 8.57).

    (рис 8.58) Атрибут второго уровня иерархии

    Перетащите атрибут "Название продукта" из области "Атрибуты" в ячейку <создать уровень> области "Иерархии" ниже уровня Model Name (рисунок 8.59).

    (рис 8.59) Атрибут третьего уровня иерархии

    В области "Иерархии" вкладки "Структура измерения" щелкните правой кнопкой мыши строку заголовка иерархии "Иерархия", выберите команду "Переименовать" и введите "Модельная линейка продуктов" (рисунок 8.60).

    (рис 8.60) Переименование иерархии

    Теперь иерархия называется "Модельная линейка продуктов". В меню "Файл" выберите команду "Сохранить все".

    Определение имен папок и имени элемента "All"

    В области "Атрибуты" выберите следующие атрибуты (щелкните каждый из них, удерживая нажатой клавишу CTRL) (рисунок 8.61):

  • Class ;
  • Color ;
  • Days To Manufacture ;
  • Reorder Point ;
  • Safety Stock Level ;
  • Size ;
  • Size Range ;
  • Style ;
  • Weight.
  • (рис 8.61) Выбранные атрибуты

    В окне свойств в поле свойства AttributeHierarchyDisplayFolder введите "Склад" (рисунок 8.62).

    (рис 8.62) Свойство AttributeHierarchyDisplayFolder

    Атрибуты сгруппированы в единую папку отображения.

    В области "Атрибуты" выберите следующие атрибуты:

  • Dealer Price ;
  • List Price ;
  • Standard Cost ;
  • В ячейке свойства AttributeHierarchyDisplayFolder окна свойств введите значение "Финансы". Атрибуты сгруппированы во вторую папку отображения.

    В области "Атрибуты" выберите следующие атрибуты:

  • End Date ;
  • Start Date ;
  • Status.
  • В ячейке свойства AttributeHierarchyDisplayFolder окна свойств введите "История". Атрибуты сгруппированы в третью папку отображения.

    В области Иерархии выберите иерархию "Модельная линейка продуктов" и для свойства AllMemberName в окне свойств задайте значение "Все продукты" (рисунок 8.63).

    (рис 8.63) Свойство AllMemberName

    В меню "Файл" выберите команду "Сохранить все".

    Определение связей атрибутов

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

    (рис 8.64) Предупреждение об отсутствии связей атрибутов

    В окне "Конструктор измерений" для измерения "Продукт" откройте вкладку "Связи атрибутов" (рисунок 8.65).

    (рис 8.65) Вкладка "Связи атрибутов"

    На схеме щелкните правой кнопкой мыши атрибут " Model Name " и выберите команду "Создать связь атрибутов" (рисунок 8.66).

    (рис 8.66) Контекстное меню атрибута Model Name

    В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение " Model Name ". Задайте для поля "Связанный атрибут" значение " Product Line " (рисунок 8.67).

    (рис 8.67) Диалоговое окно "Создание связи атрибутов"

    В списке "Тип связи" оставьте выбранным тип "Гибкая", поскольку связи между элементами могут измениться с течением времени. Например, модель товара со временем могла быть перенесена в другую линию товаров. Нажмите кнопку ОК. Созданная в результате связь атрибутов приведена нарисунок 8.68.

    (рис 8.68) Созданная связь атрибутов

    В меню "Файл" выберите команду "Сохранить все".

    Просмотр изменений в измерении "Продукт"

    В меню "Построение" среды BI Dev Studio выберите команду "Развернуть Analysis Services Tutorial ".

    Получив сообщение "Развертывание выполнено успешно", перейдите на вкладку "Обозреватель" окна "Конструктор измерений" для измерения "Продукт" и щелкните на панели инструментов значок повторного соединения ( рисунок 8.69).

    (рис 8.69) Вкладка "Обозреватель" окна "Конструктор измерений" для измерения "Продукт"

    Выберите в списке "Иерархия" вариант "Модельная линейка продуктов" (рисунок 8.70) и раскройте узел "Все продукты" (рисунок 8.71).

    (рис 8.71) Раскрывающийся список "Иерархия"(рис 8.70) Узел "Все продукты"

    Обратите внимание, что элемент All отображается как "Все продукты". Причина этого заключается в том, что свойство AllMemberName иерархии ранее на этом занятии было заменено на "Все продукты". Кроме того, все элементы уровня Product Line теперь имеют понятные имена, а не однобуквенные сокращения.

    Изменение измерения "Дата"

    Далее будет создана определяемая пользователем иерархия и изменены имена элементов, отображаемых для атрибутов Date, Month, Calendar Quarter и Calendar Semester. Также будут определены составные ключи для атрибутов, управляющие порядком сортировки элементов измерения, и связи атрибутов.

    Добавление именованного вычисления

    К таблице в представлении источника данных можно добавить именованное вычисление, которое является выражением SQL и представляет собой вычисляемый столбец. Это выражение имеет вид и функции столбца таблицы. Именованные вычисления позволяют расширять реляционную схему таблиц, существующих в представлении источника данных, не изменяя таблицы в базовом источнике данных.

    Откройте представление источника данных Adventure Works DW, дважды щелкнув его в папке "Представления источников данных" обозревателя решений. В области "Таблицы" щелкните правой кнопкой мыши таблицу "Дата" и выберите в контекстном меню команду "Создать именованное вычисление" ( рисунок 8.72).

    (рис 8.72) Представление источника данных Adventure Works DW

    В диалоговом окне "Создание именованного вычисления" в поле "Имя столбца" введите "Простая дата", а затем введите следующую инструкцию в поле "Выражение" (рисунок 8.73):

    DATENAME(mm, FullDateAlternateKey) + ' ' +
    DATENAME(dd, FullDateAlternateKey) + ', ' +
    DATENAME(yy, FullDateAlternateKey)
    (рис 8.73) Диалоговое о кно "Создание именованного вычисления"

    Инструкция извлекает из столбца FullDateAlternateKey значения числа, месяца и года. Этот новый столбец будет содержать отображаемое имя для атрибута FullDateAlternateKey.

    Нажмите кнопку ОК, а затем раскройте таблицу "Дата" в области "Таблицы". Именованное вычисление "Простая дата" отображается в списке столбцов таблицы "Дата" со значком, обозначающим, что это именованное вычисление (рисунок 8.74).

    (рис 8.74) Созданное именованное вычисление

    В меню "Файл" выберите команду "Сохранить все". В области "Таблицы" щелкните правой кнопкой мыши таблицу "Дата" и в контекстном меню выберите пункт "Просмотр данных" (рисунок 8.75).

    (рис 8.75) Контекстное меню таблицы "Дата"

    Просмотрите последний столбец в представлении "Просмотр таблицы Дата" ( рисунок 8.76).

    (рис 8.76) Представление "Просмотр таблицы Дата"

    Обратите внимание, что в представлении источника данных появился столбец "Простая дата", содержащий объединенные данные из нескольких столбцов базового источника данных. При этом исходный источник данных изменять не пришлось.

    Закройте представление "Просмотр таблицы Дата".

    Использование именованных вычислений в качестве имен элементов

    После создания именованного вычисления в представлении источника данных это вычисление можно использовать в качестве свойства атрибута.

    Откройте измерение "Дата" в конструкторе измерений среды BI Dev Studio. Для этого дважды щелкните измерение "Дата" в узле "Измерения" в "Обозревателе решений" ( рисунок 8.77).

    (рис 8.77) Измерение "Дата" в конструкторе измерений

    В области "Атрибуты" на вкладке "Структура измерения" выберите атрибут " Date Key ". В окне "Свойства" выберите поле свойства NameColumn (рисунок 8.78) и нажмите кнопку обзора (…), чтобы открыть диалоговое окно "Столбец имени" (рисунок 8.79).

    (рис 8.79) Свойство NameColumn (рис 8.78) Диалоговое окно "Столбец имени"

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

    Создание иерархии

    Новую иерархию можно создать, перетащив атрибут из области "Атрибуты" в область "Иерархии".

    В Конструкторе измерений в измерении "Дата" перетащите атрибут Calendar Year из области "Атрибуты" в область "Иерархии".

    (рис 8.80) Атрибут первого уровня иерархии

    Перетащите атрибут Calendar Semester из области "Атрибуты" в ячейку <создать уровень> в области "Иерархии" под уровнем " Calendar Year " (рисунок 8.81).

    (рис 8.81) Элемент второго уровня иерархии

    Перетащите атрибут Calendar Quarter из области "Атрибуты" в ячейку <создать уровень> в области "Иерархии" под уровнем Calendar Semester (рисунок 8.82).

    (рис 8.82) Элемент третьего уровня иерархии

    Перетащите атрибут English Month Name из области "Атрибуты" в ячейку <создать уровень> в области "Иерархии" под уровнем Calendar Quarter ( рисунок 8.83).

    (рис 8.83) Элемент четвертого уровня иерархии

    Перетащите атрибут Date Key из области "Атрибуты" в ячейку <создать уровень> в области "Иерархии" под уровнем English Month Name (рисунок 8.84).

    (рис 8.84) Элемент пятого уровня иерархии

    В области "Иерархии" щелкните правой кнопкой мыши строку заголовка иерархии "Иерархия", выберите команду "Переименовать" и введите "Календарная дата" (рисунок 8.85).

    (рис 8.85) Задание имени иерархии

    В иерархии "Календарная дата" измените имя уровня Calendar Year на "Год", Calendar Semester - на "Полугодие", Calendar Quarter - на "Квартал", English Month Name на "Месяц", а имя уровня Date Key - на "Дата" (рисунок 8.86).

    (рис 8.86) Измененные имена уровней в иерархии "Календарная дата"

    Удалите атрибут FullDateAlternateKey в области "Атрибуты", поскольку он больше не понадобится (рисунок 8.87).

    (рис 8.87) Удаление атрибута FullDateAlternateKey

    В меню "Файл" выберите команду "Сохранить все".

    Определение связей атрибутов

    Необходимо определять связи между атрибутами, поскольку базовые данные это поддерживают. Определение связей между атрибутами ускоряет обработку измерений, секций и запросов.

    В конструкторе измерений в измерении "Дата" перейдите на вкладку "Связи атрибутов" ( рисунок 8.88).

    (рис 8.88) Вкладка "Связи атрибутов" конструктора измерений

    На схеме щелкните правой кнопкой мыши атрибут English Month Name и в контекстном меню выберите команду "Создать связь атрибутов"

    В диалоговом окне "Создание связи атрибутов" свойство "Исходный атрибут" имеет значение " English Month Name ". Задайте для поля "Связанный атрибут" значение " Calendar Quarter " (рисунок 8.89).

    (рис 8.89) Диалоговое окно "Создание связи атрибутов"

    В раскрывающемся списке "Тип связи" выберите тип связи "Жесткая". Связь имеет тип "Жесткая", поскольку связи между элементами не будут меняться с течением времени. Нажмите кнопку ОК.

    На схеме щелкните правой кнопкой мыши атрибут " Calendar Quarter ", а затем выберите команду "Создать связь атрибутов". В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение " Calendar Quarter ". Задайте для поля "Связанный атрибут" значение " Calendar Semester ". В списке "Тип связи" выберите тип связи "Жесткая". Нажмите кнопку ОК.

    На схеме щелкните правой кнопкой мыши атрибут " Calendar Semester " и выберите команду "Создать связь атрибутов". В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение " Calendar Semester ". Задайте для поля "Связанный атрибут" значение " Calendar Year ". В списке "Тип связи" выберите тип связи "Жесткая". Нажмите кнопку ОК.

    Созданная связь атрибутов приведена на рисунок 8.90.

    (рис 8.90) Созданная связь атрибутов

    В меню "Файл" выберите команду "Сохранить все".

    Создание уникальных имен для элементов измерения

    Далее будут созданы столбцы понятных имен, которые будут использованы для атрибутов EnglishMonthName, CalendarQuarter и CalendarSemester.

    Перейдите в представление источника данных Adventure Works DW, дважды щелкнув его в папке "Представления источника данных" обозревателя решений.

    В области "Таблицы" щелкните правой кнопкой мыши таблицу "Дата" и выберите команду "Создать именованное вычисление" (рисунок 8.91).

    (рис 8.91) Контекстное меню таблицы "Дата"

    В диалоговом окне "Создание именованного вычисления" в поле "Имя столбца" введите "Имя месяца", а затем введите следующую инструкцию в поле "Выражение" (рисунок 8.92):

    EnglishMonthName+' '+ CONVERT(CHAR (4), CalendarYear)

    (рис 8.92) Диалоговое окно "Создание именованного вычисления"

    Эта инструкция объединяет месяц и год для каждого месяца в таблице в новый столбец. Нажмите кнопку ОК.

    В области "Таблицы" щелкните правой кнопкой мыши таблицу "Дата" и выберите команду "Создать именованное вычисление". В диалоговом окне "Создание именованного вычисления" введите "Имя квартала" в поле "Имя столбца", а затем в поле "Выражение" введите следующий сценарий SQL:

    'К' + CONVERT(CHAR (1), CalendarQuarter) +' '+ 'Г' + CONVERT(CHAR (4), CalendarYear)

    Этот сценарий SQL помещает в новый столбец объединение календарного квартала и года для каждого квартала в таблице. Нажмите кнопку ОК.

    В области "Таблицы" щелкните правой кнопкой мыши таблицу "Дата" и выберите команду "Создать именованное вычисление". В диалоговом окне "Создание именованного вычисления" в поле "Имя столбца" введите "Имя полугодия", а затем в поле "Выражение" введите следующий сценарий SQL:

    CASE
    WHEN CalendarSemester = 1 THEN 'П1' + ' ' + 'Г' + ' ' 
           + CONVERT(CHAR(4), CalendarYear)
    ELSE
    'П2' + ' ' + 'Г' + ' ' + CONVERT(CHAR(4), CalendarYear)
    END

    Этот сценарий SQL помещает в новый столбец объединение календарного полугодия и года для каждого полугодия в таблице. Нажмите кнопку ОК.

    В контекстном меню таблицы "Дата" выберите пункт "Просмотр данных" (рисунок 8.93).

    (рис 8.93) Контекстное меню таблицы "Дата"

    Обратите внимание на последние четыре столбца в представлении "Просмотр таблицы "Дата"" ( рисунок 8.94). Они формируются на основе именованных вычислений и содержат дату, месяц года, квартал года и полугодие года соответственно.

    (рис 8.94) Представление "Просмотр таблицы "Дата""

    В меню "Файл" выберите команду "Сохранить все".

    Определение составного свойства KeyColumns и задание столбца имени

    Свойство KeyColumns содержит столбец или столбцы, представляющие ключ для атрибута. Далее будет определено составное свойство KeyColumns.

    Откройте измерение "Дата" и перейдите на вкладку "Структура измерения" ( рисунок 8.95).

    (рис 8.95) Вкладка "Структура измерения" измерения "Дата"

    В области "Атрибуты" выберите атрибут " English Month Name ". В окне "Свойства" выберите поле KeyColumns (рисунок 8.96) и нажмите кнопку обзора (...).

    (рис 8.96) Диалоговое окно "Свойства"

    В диалоговом окне "Ключевые столбцы" () выберите из списка "Доступные столбцы" столбец " CalendarYear ", а затем нажмите кнопку >.

    (рис 8.97) Диалоговое окно "Ключевые столбцы"

    Столбцы EnglishMonthName и CalendarYear отображаются в списке Ключевые столбцы. Нажмите кнопку ОК.

    Чтобы задать свойство " NameColumn " атрибута " EnglishMonthName ", щелкните поле " NameColumn " в окне свойств и нажмите кнопку обзора (...). В диалоговом окне "Столбец имени" (рисунок 8.98), в списке "Исходный столбец" выберите "Имя месяца", а затем нажмите кнопку ОК.

    (рис 8.98) Диалоговое окно "Столбец имени"

    В меню "Файл" выберите команду "Сохранить все".

    В области "Атрибуты" щелкните атрибут " Calendar Quarter ". В окне "Свойства" щелкните в поле " KeyColumns " и нажмите кнопку обзора (...). В диалоговом окне "Ключевые столбцы" выберите из списка "Доступные столбцы" столбец " CalendarYear ", а затем нажмите кнопку >. Столбцы " CalendarQuarter " и " CalendarYear " отображаются в списке "Ключевые столбцы". Нажмите кнопку ОК.

    Чтобы задать свойство " NameColumn " атрибута " Calendar Quarter ", щелкните поле " NameColumn " в окне свойств и нажмите кнопку обзора (...). В диалоговом окне "Столбец имени", в списке "Исходный столбец" выберите "Имя квартала", а затем нажмите кнопку ОК.

    В меню "Файл" выберите команду "Сохранить все".

    В области "Атрибуты" щелкните атрибут " Calendar Semester ". В окне "Свойства" щелкните в поле " KeyColumns " и нажмите кнопку обзора (...). В диалоговом окне "Ключевые столбцы" выберите из списка "Доступные столбцы" столбец " CalendarYear ", а затем нажмите кнопку >. Столбцы " CalendarSemester " и " CalendarYear " отображаются в списке "Ключевые столбцы". Нажмите кнопку ОК.

    Чтобы задать свойство " NameColumn " атрибута " Calendar Semester ", щелкните поле " NameColumn " в окне свойств и нажмите кнопку обзора (...). В диалоговом окне "Столбец имени", в списке "Исходный столбец" выберите "Имя полугодия", а затем нажмите кнопку ОК.

    В меню "Файл" выберите команду "Сохранить все".

    Развертывание и просмотр изменений

    После изменения атрибутов и иерархий необходимо произвести развертывание произведенных изменений и повторную обработку связанных объектов, прежде чем эти изменения можно будет просмотреть.

    В меню "Построение" среды BI Dev Studio выберите команду "Развернуть Analysis Services Tutorial ". Получив сообщение "Развертывание выполнено успешно", перейдите на вкладку "Обозреватель" окна "Конструктор измерений" для измерения "Дата" и щелкните на панели инструментов значок повторного соединения.

    В списке "Иерархия" выберите значение " Calendar Quarter ". Просмотрите элементы иерархии атрибута " Calendar Quarter " (рисунок 8.99).

    (рис 8.99) Элементы иерархии атрибута "Calendar Quarter"

    Обратите внимание, что имена элементов иерархии атрибута " Calendar Quarter " выглядят более понятно, поскольку для их отображения создано именованное вычисление. Теперь существуют элементы для каждого квартала в иерархии атрибута " Calendar Quarter ". Они не упорядочены в хронологическом порядке. Вместо этого они отсортированы сначала по кварталам, а затем по годам. Далее раздела потребуется изменить поведение этой иерархии атрибута, чтобы отсортировать ее элементы сначала по годам, а затем по кварталам.

    Просмотрите элементы иерархий атрибутов " English Month Name " (рисунок 8.100) и " Calendar Semester " (рисунок 8.102).

    (рис 8.101) Элементы иерархий атрибута "English Month Name"(рис 8.100) Элементы иерархий атрибута "Calendar Semester"

    Обратите внимание, что элементы этих иерархий также не отсортированы в хронологическом порядке. Вместо этого они отсортированы сначала соответственно по месяцам или полугодиям, а затем - по годам. Далее поведение этих иерархий атрибутов будет изменено, чтобы изменить порядок сортировки.

    Изменение порядка сортировки путем изменения порядка элементов составных ключей

    Далее будет изменен порядок сортировки посредством изменения порядка ключей, составляющих составной ключ.

    Открыв измерение "Дата" в конструкторе измерений, перейдите на вкладку "Структура измерения" и выберите "Calendar Semester" в области "Атрибуты" (рисунок 8.102).

    (рис 8.102) Атрибут ""Calendar Semester

    В окне свойств просмотрите значение свойства " OrderBy ". Оно имеет значение " Key " (Ключ) (рисунок 8.103).

    (рис 8.103) Значение свойства "OrderBy"

    Элементы иерархии атрибута " Calendar Semester " отсортированы по значению ключа. При составном ключе сортировка ключей элементов ведется сначала по значению первого ключа элемента, а затем - по значению второго ключа элемента. Иными словами, элементы иерархии атрибута " Calendar Semester " отсортированы сначала по полугодиям, а затем по годам.

    В окне свойств нажмите кнопку с многоточием (...), чтобы изменить значения свойства KeyColumns (рисунок 8.104).

    (рис 8.104) Свойство KeyColumns

    В списке "Ключевые столбцы" в диалоговом окне "Ключевые столбцы" выберите столбец " CalendarSemester " (рисунок 8.105), а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа.

    (рис 8.105) Диалоговое окно "Ключевые столбцы"

    Нажмите кнопку ОК. Теперь элементы этой иерархии атрибута отсортированы сначала по годам, а затем по полугодиям.

    Выберите " Calendar Quarter " в области "Атрибуты" и нажмите кнопку с многоточием (...) для свойства " KeyColumns " в окне свойств. В списке "Ключевые столбцы" диалогового окна "Ключевые столбцы" выделите столбец " CalendarQuarter ", а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК.

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

    В области "Атрибуты" выберите элемент " English Month Name ", а затем в окне свойств нажмите кнопку с многоточием (...) для свойства " KeyColumns." В списке "Ключевые столбцы" диалогового окна "Ключевые столбцы" выделите столбец " EnglishMonthName ", а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК.

    Теперь элементы этой иерархии атрибута отсортированы сначала по годам, а затем по месяцам.

    В меню "Построение" среды BI Dev Studio выберите команду "Развернуть Analysis Services Tutorial ". После успешного завершения развертывания в конструкторе измерений перейдите на вкладку "Обозреватель" измерения "Дата". На панели инструментов вкладки "Обозреватель щелкните значок повторного соединения". Просмотрите элементы иерархий атрибутов " Calendar Quarter " (рисунок 8.106) и " Calendar Semester " ( рисунок 8.107).

    (рис 8.107) Элементы иерархии атрибута "Calendar Quarter"(рис 8.106) Элементы иерархии атрибута "Calendar Semester"

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

    Просмотрите элементы иерархии атрибута " English Month Name " (рисунок 8.108).

    (рис 8.108) Элементы иерархии атрибута "English Month Name"

    Обратите внимание, что теперь элементы этой иерархии атрибута сортируются сначала по годам, а затем по месяцам в алфавитном порядке. Причина этого заключается в том, что столбец " EnglishCalendarMonth " в представлении источника данных имеет строковый тип данных, который основан на типе данных nvarchar базовой реляционной базы данных. Сортировка по месяцам хронологически внутри года будет рассмотрена в следующей лабораторной работе.

    Просмотр развернутого куба

    Переключитесь в конструктор кубов среды BI Dev Studio, щелкнув куб Analysis Services Tutorial.

    Перейдите на вкладку "Обозреватель" и на панели инструментов конструктора нажмите кнопку "Повтор соединения" ( рисунок 8.109).

    (рис 8.109) Вкладка "Обозреватель" конструктора кубов

    Правая область конструктора отображает метаданные для куба Analysis Services Tutorial. Обратите внимание, что в области инструментов вкладки "Обозреватель" доступны раскрывающиеся списки "Перспектива" и "Язык". Также обратите внимание, что вкладка "Обозреватель" содержит две области справа от области "Группа мер": верхняя область - область фильтра, а нижняя - область данных.

    В области "Группа мер" раскройте узел " Measures " (Меры), раскройте элемент "Продажи через Интернет" и перетащите меру "Сумма продаж" в область "Перетащите сюда поля итогов или деталей" ( рисунок 8.110).

    (рис 8.110) Добавленная мера "Сумма продаж"

    В области "Группа мер" раскройте узел "Продукт". Обратите внимание, что атрибуты и пользовательские иерархии организованы в папки отображения в списке метаданных "Продукт".

    Перетащите пользовательскую иерархию "Модельная линейка продуктов" в область "Перетащите сюда поля столбцов" панели данных, а затем раскройте элемент "Дорожные" уровня Product Line этой пользовательской иерархии ( рисунок 8.111).

    (рис 8.111) Добавление пользовательской иерархии "Модельная линейка продуктов"

    Обратите внимание, что эта пользовательская иерархия предоставляет путь к уровню имени товара.

    На панели метаданных раскройте узел "Клиент" и перетащите иерархию из папки отображения "География клиентов" в область "Перетащите сюда поля строк" панели данных.

    На оси строк раскройте узел " United States ", чтобы просмотреть подробные сведения о продажах на территории Соединенных Штатов по регионам. Раскройте узел " Oregon ", чтобы просмотреть сведения о продажах по городам в штате Орегон ( рисунок 8.112).

    (рис 8.112) Сведения о продажах по городам в штате Орегон

    В области метаданных разверните узел " Order Date " и перетащите иерархию " Order Date.Календарная дата" в зону "Поместите сюда поля фильтра" в области данных.

    Нажмите стрелку справа от фильтра Order Date. Calendar Date в области данных, снимите флажок для уровня (Все), последовательно разверните узлы 2002, П1 Г2002 и К1 Г2002, установите флажок February 2002 и нажмите кнопку ОК. На экран будут выведены продажи через Интернет по регионам и линейкам продуктов в феврале 2002 г., как показано на рисунок 8.113.

    (рис 8.113) Продажи через Интернет по регионам и линейкам продуктов в феврале 2002 г.

    В области метаданных разверните узел "Клиент", разверните элемент " Demographic ", разверните иерархию атрибутов " Commute Distance ", разверните "Элементы", а затем " All ". Щелкните правой кнопкой мыши элемент " 10+ Miles " и выберите команду "Добавить в область вложенных кубов". Элемент " Commute Distance " появится в области фильтров, расположенной над областью данных. Величины, отображаемые в области данных, будут отфильтрованы, чтобы показать данные заказчиков, ездящих на работу более чем за 10 миль ( рисунок 8.114).

    (рис 8.114) Продажи заказчикам, ездящим на работу более чем за 10 миль

    В меню "Файл" выберите команду "Сохранить все".

    Контрольные вопросы

  • Какими свойствами обладают меры?
  • На что влияет аддитивность агрегата?
  • Опишите уровни аддитивности статистических функций.
  • Дайте определение понятию "именованное вычисление". Какие функции оно выполняет? Для чего предназначено?
  • Какие параметры задаются при создании именованного вычисления?
  • Для каких целей используется связь атрибутов измерения? Какие преимущества она дает?
  • Каким образом определяются атрибуты в схемах "звезда" и "снежинка"?
  • В каком случае иерархия является естественной?
  • Каким образом создаются связи, представляющие естественные иерархии?
  • В чем отличие пользовательской иерархии от естественной иерархии?
  • Какой инструмент используется для определения уровней пользовательской иерархии?
  • Страницы:

    Теоретическое введение

    Настройка свойств мер

    Меры имеют свойства, позволяющие определять и управлять их работой и отображением для пользователей. Меры наследуют определенные свойства у группы мер, элементами которых они являются, если только эти свойства не переопределены на уровне мер. Свойства мер определяют статистическое вычисление, тип данных, отображаемые для пользователей имена, папку отображения, строку форматирования, выражения меры, базовые исходные столбцы и видимость для пользователей (Таблица 4.1).

    Свойства мер
    Свойство Определение
    AggregateFunction Определяет, как выполняется статистическое вычисление мер.
    DataType Указывает тип данных столбца базовой таблицы фактов, к которым привязана мера.
    Description Содержит описание меры, которое может быть видно в клиентских приложениях.
    DisplayFolder Указывает папку отображения, в которой будет представлена мера при подключении пользователя к кубу. Если куб содержит множество мер, папки отображения позволяют разбить их по категориям мер, упростив доступ к ним.
    FormatString Определяет формат представления.
    ID Отображает уникальный идентификатор (ID) меры. Это свойство доступно только для чтения.
    MeasureExpression Многомерное выражение (MDX), определяющее меру.
    Name Имя меры.
    Source Столбец в представлении источника данных, к которому привязана мера.
    Visible Определяет, отображается мера или скрыта.

    Статистические функции

    Службы SSAS предоставляют функции для статистической обработки мер и измерений, содержащихся в группах мер. По умолчанию меры суммируются вдоль каждого измерения. Однако свойство AggregateFunction позволяет изменить это. Аддитивность агрегата определяет, как осуществляется статистическое вычисление меры по всем измерениям в кубе. Статистические функции подразделяются на три уровня аддитивности:

  • аддитивная мера, также называемая полностью аддитивной мерой, может быть статистически вычислена вдоль всех измерений в кубе, которые включены в группу мер, содержащую меру, без ограничений.
  • полуаддитивная мера может быть статистически вычислена вдоль некоторых, но не всех измерений, которые включены в группу мер, содержащую эту меру. Например, мера, представляющая количество, доступное для описи, может быть статистически вычислена вдоль измерения географии для получения суммарного количества, доступного на всех складах; но эта мера не может быть статистически вычислена вдоль измерения времени, поскольку она представляет собой периодический моментальный снимок доступных количеств. При статистическом вычислении подобной меры вдоль измерения времени получились бы неверные результаты.
  • неаддитивная мера не может быть статистически вычислена вдоль какого-либо измерения в группе мер, содержащей эту меру. Вместо этого мера должна быть индивидуально вычислена для каждой ячейки в кубе, представляющей эту меру. Например, вычисляемую меру, возвращающую процентное значение, такое как маржа прибыли, нельзя вычислить на основе процентных значений дочерних элементов в каком-либо измерении.
  • В Таблица 8.2 приведен список статистических функций в службах SSAS и описание аддитивности, а также ожидаемого результата функции.

    Статистические функции SSAS
    Статистическая функция Аддитивность Возвращаемое значение
    Sum Аддитивная Вычисляет сумму значений всех дочерних элементов. Это статистическое вычисление по умолчанию.
    Count Аддитивная Получает количество всех дочерних элементов.
    Min Полуаддитивная Получает самое низкое значение для всех дочерних элементов.
    Max Полуаддитивная Получает самое высокое значение для всех дочерних элементов.
    DistinctCount Неаддитивная Получает количество всех уникальных дочерних элементов.
    None Неаддитивная Статистическое вычисление не выполняется, и все значения для конечных и неконечных элементов в измерении получаются непосредственно из таблицы фактов для группы мер, содержащей эту меру. Если из таблицы фактов невозможно считать значение для элемента, то значение для этого элемента устанавливается равным NULL.
    ByAccount Полуаддитивная Вычисляет агрегат в соответствии со статистической функцией, присвоенной типу счета для элемента измерения счетов. Если в группе мер не существует измерения типа счета, то обрабатывается так же, как статистическая функция None.
    AverageOfChildren Полуаддитивная Вычисляет среднее значений всех непустых дочерних элементов.
    FirstChild Полуаддитивная Получает значение первого дочернего элемента.
    LastChild Полуаддитивная Получает значение последнего дочернего элемента.
    FirstNonEmpty Полуаддитивная Получает значение первого непустого дочернего элемента.
    LastNonEmpty Полуаддитивная Получает значение последнего непустого дочернего элемента.

    Форматы отображения

    Можно выбрать формат, используемый для отображения значений меры пользователям, используя свойство FormatString меры.

    Помимо имеющегося списка форматов отображения, можно указать множество дополнительных форматов, не содержащихся в этом списке. Можно указать любой именованный или определенный пользователем формат, допустимый в языке Microsoft Visual Basic.

    Определение именованных вычислений в представлении источника данных

    Именованное вычисление является выражением SQL, представленным в виде вычисляемого столбца. Данное выражение выглядит и работает как столбец таблицы. Именованное вычисление позволяет расширить реляционную схему таблиц или представлений, существующих в представлении источника данных, не изменяя таблицы или представления в базовом источнике данных. Например, общее вычисляемое значение, полученное из столбцов таблицы фактов, может быть представлено в виде единственного именованного вычисления в представлении источника данных, вместо изменения основной таблицы баз данных, или создания представления в основной базе данных. Именованные вычисления также можно использовать вместо вычисляемых элементов в каждом кубе, основанном на представлении источника данных. Именованные вычисления рассчитываются в процессе обработки, тогда как вычисляемые элементы рассчитываются во время запроса.

    Именованные вычисления также часто используются для создания понятного имени для элемента измерения.

    При создании именованного вычисления указывается имя, выражение SQL и (необязательно) описание вычисления. Выражение SQL может ссылаться на другие таблицы в представлении источника данных. После определения именованного вычисления выражение в именованном вычислении отправляется поставщику источника данных и проверяется в виде указанной ниже инструкции SQL, в которой <Expression> содержит выражение, определяющее именованное вычисление.

    SELECT 
       <Table Name in Data Source>;.*, 
       <Expression>  AS <Column Name>  
    FROM 
       <Table Name in Data Source>  AS <Table Name in Data Source View>

    Тип данных столбца определяется типом данных скалярного значения, возвращенного выражением. Если поставщик не обнаружит каких-либо ошибок в выражении, то столбец будет добавлен к таблице.

    Столбцы, указанные в выражении, не должны иметь квалификатора вовсе или должны иметь только такой квалификатор, который соответствует имени таблицы. Например, для ссылки на столбец SaleAmount в таблице можно использовать SaleAmount или Sales.SaleAmount, но dbo.Sales.SaleAmount возвращает ошибку.

    Связи атрибутов

    В службах SSAS атрибуты играют роль строительных блоков, из которых создается измерение. Измерение содержит набор атрибутов, организованных на основе связей между ними.

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

    Связь атрибутов дает следующие преимущества:

  • снижает объем памяти, необходимый для обработки измерения. Это ускоряет обработку измерений, секций и запросов;
  • повышает производительность запросов, поскольку ускоряется доступ к хранилищу и лучше оптимизируются планы выполнения;
  • приводит к выбору более эффективных алгоритмов создания статистических схем (при условии, что пользовательские иерархии были определены по путям связей).
  • В службах SSAS атрибуты измерения всегда прямо или косвенно связаны с ключевым атрибутом. Когда измерение определяется по схеме "звезда", где все атрибуты измерения наследуются из одной реляционной таблицы, то связи между ключевыми и не ключевыми атрибутами определяются автоматически. Когда измерение определяется по схеме "снежинка", где атрибуты измерения наследуются от разных реляционных таблиц, связи атрибутов автоматически определяются следующим образом:

  • между ключевым атрибутом и каждым не ключевым атрибутом, привязанным к столбцу главной таблицы измерения;
  • между ключевым атрибутом и атрибутами, привязанными к внешнему ключу вспомогательной таблицы, которая связывает таблицы базового измерения;
  • между атрибутом, привязанным к внешнему ключу вспомогательной таблицы, и каждым не ключевым атрибутом, привязанным к столбцам вспомогательной таблицы;
  • Однако по ряду причин может понадобиться изменить связи атрибутов, определенные по умолчанию, например чтобы определить естественную иерархию, пользовательский порядок сортировки или степень гранулярности измерения на основе неключевого атрибута.

    Иерархия является естественной, когда каждый атрибут пользовательской иерархии имеет связь типа "один ко многим" с атрибутом, находящимся непосредственно под ним. Допустим, измерение "Customer" основано на реляционной таблице, содержащей восемь столбцов:

  • CustomerKey ;
  • CustomerName ;
  • Age ;
  • Gender ;
  • Email ;
  • City ;
  • Country ;
  • Region ;
  • Соответствующее измерение служб SSAS содержит семь атрибутов:

  • Customer (основанное на CustomerKey и CustomerName );
  • Age, Gender, Email, City, Region, Country.
  • Представляющие естественные иерархии связи создают, связывая атрибуты текущего и нижестоящего уровня. В службах SSAS это свойство определяет естественную иерархию и возможное статистическое вычисление. В измерении " Customer " естественная иерархия применяется для атрибутов " Country ", " Region ", " City " и" Customer ". Естественная иерархия атрибутов { Country, Region, City, Customer } описывается добавлением следующих связей атрибутов:

  • атрибут " Country " как связь атрибутов к атрибуту " Region ";
  • атрибут " Region " как связь атрибутов к атрибуту " City ";
  • атрибут " City " как связь атрибутов к атрибуту " Customer ".
  • Для перемещения по данным куба можно также создать пользовательскую иерархию, не представленную естественной иерархией данных (такая иерархия называется нерегламентированной или иерархией отчетов). Например, пользовательская иерархия может быть создана на основе { Age, Gender }. Пользователи не смогут увидеть разницу в поведении, отличить эти иерархии, хотя естественная иерархия предоставляет преимущество благодаря скрытым от пользователя статистическим выражениям и структурам индексирования, которые отвечают за естественные связи в исходных данных.

    Свойство " SourceAttribute " уровня определяет, какой из атрибутов описывает уровень. Свойство " KeyColumns " атрибута определяет столбец в представлении источника данных, который является источником элементов. Свойство " NameColumn " атрибута может указывать на другой столбец имен для элементов.

    Для определения уровня в пользовательской иерархии в среде BI Dev Studio применяется конструктор измерений, позволяющий выбрать атрибут измерения, столбец в таблице измерения или столбец из связанной таблицы, которая содержится в представлении источника данных куба.

    При создании атрибута необходимо проверить, чтобы атрибут, на который ссылается связь, имел не более одного значения для каждого элемента атрибута, к которому он принадлежит. Например, если определить связь между атрибутами " City " и " State ", каждый город будет принадлежать одному штату.

    Создание пользовательских иерархий

    SSAS позволяют создавать пользовательские иерархии. Иерархия - это набор уровней на основе атрибутов. Например, иерархия, связанная со временем, может содержать такие уровни, как "Год", "Месяц" и "День". В некоторых иерархиях каждый атрибут однозначно задает атрибут родительского элемента. Такую иерархию иногда называют естественной. Конечные пользователи могут использовать иерархии для просмотра данных в кубе. Иерархии задаются с помощью области "Иерархии" конструктора измерений в среде разработки BI Dev Studio.

    Настройка уровня "All" для иерархий атрибутов

    В службах SSAS уровень " All " является дополнительным, сформированным системой. Он содержит только один элемент, значение которого является результатом статистической обработки значений всех членов на ближайшем подчиненном уровне. Этот элемент называется " All ". Он создается системой и отсутствует в таблице измерений. Поскольку элемент уровня " All " находится на вершине иерархии, его значение является результатом статистической обработки значений всех элементов иерархии. Элемент ( All ) часто служит в качестве члена иерархии по умолчанию.

    Практические задания

    Изменение мер

    На этом этапе будут настроены свойства форматирования мер валюты и процентов в кубе Analysis Services Tutorial.

    Свойство FormatString позволяет определить параметры форматирования, управляющие способом отображения мер для пользователей.

    Перейдите на вкладку "Структура куба" конструктора кубов для куба Analysis Services Tutorial, раскройте группу мер "Продажи через Интернет" на панели "Меры", щелкните правой кнопкой мыши элемент Order Quantity и в контекстном меню выберите пункт "Свойства" (рисунок 8.1).

    (рис 8.1) Контекстное меню элемента OrderQuantity меры "Продажи через Интернет"

    В окне свойств нажмите кнопку "Автоматически скрывать" (рисунок 8.2), чтобы оставить окно свойств постоянно открытым. Если окно свойств остается постоянно открытым, изменять свойства нескольких элементов куба проще.

    (рис 8.2) Кнопка "Автоматически скрывать" окна "Свойства"

    В окне "Свойства" в качестве значения свойства FormatString введите #,# (рисунок 8.3).

    (рис 8.3) Значение свойства FormatString

    На панели инструментов вкладки "Структура куба" нажмите кнопку "Показывать сетку мер" (рисунок 8.4). Сетка просмотра позволяет выбрать несколько мер одновременно.

    (рис 8.4) Кнопка "Показывать сетку мер" на панели инструментов вкладки "Структура куба"

    Выберите следующие меры. Можно выбрать несколько мер. Для этого щелкните каждую из них, удерживая нажатой клавишу CTRL (рисунок 8.5):

  • Unit Price ;
  • Extended Amount ;
  • Discount Amount ;
  • Product Standard Cost ;
  • Total Product Cost ;
  • Sales Amount ;
  • Tax Amt ;
  • Freight.
  • (рис 8.5) Выбранные меры

    В окне свойств в раскрывающемся списке FormatString выберите значение Currency (Валюта) (рисунок 8.6).

    (рис 8.6) Значение свойства FormatString для выбранных мер

    В списке мер (рисунок 8.7) выберите меру Unit Price Discount Pct, а затем выберите значение Percent (Процент) в раскрывающемся списке FormatString (рисунок 8.8).

    (рис 8.8) Выбранная мера Unit Price Discount Pct (рис 8.7) Значение свойства FormatString для меры Unit Price Discount Pct

    В окне свойств измените свойство Name меры Unit Price Discount Pct на "Процент скидки на единицу товара" (рисунок 8.9).

    (рис 8.9) Новое имя меры Unit Price Discount Pct

    На панели "Меры" щелкните Tax Amt и измените имя меры на "Размер налога" (рисунок 8.10).

    (рис 8.10) Новое имя меры Tax Amt

    Аналогичным образом переименуйте меры (рисунок 8.11):

  • Unit Price - Цена единицы продукта;
  • Extended Amount - Стоимость заказа;
  • Discount Amount - Размер скидки;
  • Product Standard Cost - Стандартная стоимость продукта;
  • Total Product Cost - Полная стоимость продукта;
  • Sales Amount - Сумма продаж;
  • Freight - Стоимость доставки;
  • Order Quantity - Заказанное количество.
  • (рис 8.11) Переименованные меры

    В окне свойств нажмите кнопку "Автоматически скрыть", чтобы скрыть окно свойств, а затем нажмите кнопку "Показывать дерево мер" на вкладке панели инструментов "Структура куба" (рисунок 8.12).

    (рис 8.12) Кнопка "Показывать дерево мер" на вкладке панели инструментов "Структура куба"

    В меню "Файл" выберите команду "Сохранить все".

    Изменение измерения "Клиент"

    Существует много способов повысить удобство использования и функциональность измерений куба. Далее будет изменено измерение "Клиент".

    Переименование атрибутов

    Откройте измерение "Клиент" в конструкторе измерений среды BI Dev Studio. Для этого дважды щелкните измерение "Клиент" в узле "Измерения" обозревателя решений ( рисунок 8.13).

    (рис 8.13) Измерение "Клиент" в конструкторе измерений

    В области "Атрибуты" щелкните правой кнопкой мыши атрибут " English Country Region Name " и выберите команду " Переименовать ". Измените имя атрибута на " Страна-Регион " (рисунок 8.14).

    (рис 8.14) Переименованный атрибут "English Country Region Name"

    Аналогичным образом измените имена следующих атрибутов (рисунок 8.15):

  • Имя атрибута " English Education " замените на " Образование ";
  • Имя атрибута " English Occupation " замените на " Место проживания ";
  • Имя атрибута " State Province Name " замените на " Штат-Провинция ".
  • (рис 8.15) Переименованные атрибуты измерения "Клиент"

    В меню "Файл" выберите команду " Сохранить все ".

    Создание иерархии

    Новую иерархию можно создать, перетащив атрибут из области "Атрибуты" в область "Иерархии". Перетащите атрибут " Страна-Регион " из области " Атрибуты " в область " Иерархии " (рисунок 8.16).

    (рис 8.16) Создание корневого элемента иерархии

    Перетащите атрибут " Штат-Провинция " из области " Атрибуты " в ячейку <создать уровень> в области " Иерархии " под уровнем " Страна-Регион " (рисунок 8.17).

    (рис 8.17) Создание элемента иерархии второго уровня

    Переименуйте атрибут " City " на " Город " и перетащите его из области " Атрибуты " в ячейку <создать уровень> в области " Иерархии " под уровнем " Штат-Провинция ".

    (рис 8.18) Создание элемента иерархии третьего уровня

    В области " Иерархии " на вкладке " Структура измерения " щелкните правой кнопкой мыши строку заголовка иерархии " Иерархия " и в контекстном меню выберите команду " Переименовать " и введите " География Клиентов " (рисунок 8.19).

    (рис 8.19) Переименованная иерархия

    В меню " Файл " выберите команду " Сохранить все ".

    Добавление именованного вычисления

    К таблице в представлении источника данных можно добавить именованное вычисление, которое является выражением SQL и представляет собой вычисляемый столбец. Это выражение имеет вид и функции столбца таблицы. Именованные вычисления позволяют расширять реляционную схему таблиц, существующих в представлении источника данных, не изменяя структуру таблиц в базовом источнике данных.

    Откройте представление источника данных Adventure Works DW ( рисунок 8.20), дважды щелкнув его в папке "Представления источников данных" обозревателя решений.

    (рис 8.20) Представление источника данных Adventure Works DW

    В области "Таблицы" щелкните правой кнопкой мыши таблицу "Клиент" и в контекстном меню выберите команду "Создать именованное вычисление" (рисунок 8.21).

    (рис 8.21) Контекстное меню таблицы "Клиент"

    В диалоговом окне "Создание именованного вычисления" (рисунок 8.22) в поле "Имя столбца" введите "Полное имя", а в поле "Выражение" следующую инструкцию CASE:

    CASE
       WHEN MiddleName IS NULL THEN
       FirstName + ' ' + LastName
       ELSE
       FirstName + ' ' + MiddleName + ' ' + LastName
    END
    (рис 8.22) Диалоговое окно "Создание именованного вычисления"

    Инструкция CASE объединяет столбцы FirstName, MiddleName и LastName в один столбец, который затем может использоваться в измерении "Клиент" в качестве отображаемого имени для атрибута "Клиент".

    Нажмите кнопку ОК, а затем раскройте таблицу "Клиент" в области "Таблицы". Именованное вычисление "Полное имя" появляется в списке столбцов таблицы "Клиент" со значком, обозначающим, что это именованное вычисление (рисунок 8.23).

    (рис 8.23) Именованное вычисление FullName таблицы "Клиент"

    В меню "Файл" выберите команду "Сохранить все".

    В области "Таблицы" щелкните правой кнопкой мыши таблицу "Клиент" и выберите пункт "Просмотр данных". Просмотрите последний столбец в представлении "Просмотр таблицы Клиент" (рисунок 8.24).

    (рис 8.24) Просмотр данных таблицы "Клиент"

    Обратите внимание, что в представлении источника данных появился столбец "Полное имя", содержащий сцепление данных из других столбцов источника данных; при этом исходный источник данных изменять не пришлось.

    Использование именованных вычислений в качестве имен элементов

    После создания именованного вычисления в представлении источника данных это вычисление можно использовать в качестве свойства атрибута.

    В конструкторе измерений откройте измерение "Клиент". В области "Атрибуты" вкладки "Структура измерения" выберите атрибут Customer Key (рисунок 8.25).

    (рис 8.25) Атрибут Customer Key измерения "Клиент"

    В окне "Свойства" в поле свойства Name введите "Полное имя" (рисунок 8.26).

    (рис 8.26) Окно "Свойства"

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

    (рис 8.28) Свойство NameColumn (рис 8.27) Диалоговое окно "Столбец имени"

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

    Перетащите атрибут "Полное имя" из области "Атрибуты" в ячейку <создать уровень> области "Иерархии" под уровень "Город" (рисунок 8.29).

    (рис 8.29) Четвертый уровень иерархии

    В меню "Файл" выберите команду "Сохранить все".

    Определение папок отображения

    Папки отображения позволяют группировать пользовательские иерархии и иерархии атрибутов в структуры папок, удобные для пользователя.

    Откройте вкладку "Структура измерения" для измерения "Клиент".

    В области "Атрибуты" выберите следующие атрибуты (щелкните каждый из них, удерживая нажатой клавишу CTRL) (рисунок 8.30):

  • Город ;
  • Страна-регион ;
  • Postal Code ;
  • Штат-провинция.
  • (рис 8.30) Выбранные атрибуты

    В окне свойств щелкните поле свойства AttributeHierarchyDisplayFolder и введите Location (рисунок 8.31).

    (рис 8.31) Свойство AttributeHierarchyDisplayFolder

    В области "Иерархии" щелкните иерархию "География Клиентов" и выберите для свойства DisplayFolder значение Location (рисунок 8.32).

    (рис 8.32) Свойство DisplayFolder

    В области "Атрибуты" выберите следующие атрибуты:

  • Commute Distance ;
  • Образование ;
  • Gender ;
  • House Owner Flag ;
  • Marital Status ;
  • Number Cars Owned ;
  • Number Children At Home ;
  • Место проживания ;
  • Total Children ;
  • Yearly Income.
  • В окне свойств щелкните поле свойства AttributeHierarchyDisplayFolder и введите " Demographic ".

    В области "Атрибуты" выберите следующие атрибуты:

  • Email Address ;
  • Phone.
  • В окне свойств щелкните поле свойства AttributeHierarchyDisplayFolder и введите " Contacts ".

    В меню "Файл" выберите команду "Сохранить все".

    Определение составных ключевых столбцов

    Свойство KeyColumns содержит столбец или столбцы, представляющие ключ для атрибута. На этом занятии будет создан составной ключ для атрибутов "Город" и "Штат-Провинция". Составные ключи могут оказаться полезными для уникальной идентификации атрибута. Например, при определении связи атрибутов атрибут "Город" должен уникально идентифицировать атрибут "Штат-Провинция". Однако в разных областях бывают города с одинаковыми названиями. Поэтому для атрибута "Город" необходимо создать составной ключ, состоящий из столбцов City и StateProvinceName

    Для определения составного свойства KeyColumns для атрибута "Город" откройте вкладку "Структура измерения" для измерения "Клиент". В области "Атрибуты" выберите атрибут "Город". В окне "Свойства" нажмите кнопку обзора (...)в поле KeyColumns (рисунок 8.33).

    (рис 8.33) Окно "Свойства" атрибута "Город"

    В диалоговом окне "Ключевые столбцы" в списке "Доступные столбцы" выберите столбец StateProvinceName и нажмите кнопку > (рисунок 8.34).

    (рис 8.34) Диалоговое окно "Ключевые столбцы"

    Теперь в списке Ключевые столбцы отображаются столбцы City и StateProvinceName. Нажмите кнопку ОК.

    Обратите внимание, что перечне атрибутов измерения "Клиент" атрибут "Город" стал подчеркнутым красной волнистой линией. Это произошло потому, что теперь имеется несколько столбцов KeyColumns, и для атрибута "Город" необходимо определить столбец NameColumn (рисунок 8.35).

    (рис 8.35) Необходимо определить столбец NameColumn для атрибута "Город"

    Чтобы задать свойство NameColumn атрибута "Город", щелкните в окне свойств поле NameColumn и нажмите кнопку обзора (...). В диалоговом окне "Столбец имени" в списке "Исходный столбец" выберите City и нажмите кнопку ОК (рисунок 8.36).

    (рис 8.36) Диалоговое окно "Столбец имени"

    Красное подчеркивание должно пропасть. В меню "Файл" выберите команду "Сохранить все".

    Для определения составного свойства KeyColumns для атрибута "Штат-Провинция" откройте вкладку "Структура измерения" для измерения "Клиент".

    В области "Атрибуты" выберите атрибут "Штат-Провинция". В окне "Свойства" щелкните в поле KeyColumns и нажмите кнопку обзора (...) (рисунок 8.37).

    (рис 8.37) Свойство KeyColumns атрибута "Штат-Провинция"

    В диалоговом окне "Ключевые столбцы" в списке "Доступные столбцы" выберите столбец EnglishCountryRegionName и нажмите кнопку > (рисунок 8.38).

    (рис 8.38) Диалоговое окно "Ключевые столбцы"

    Теперь в списке "Ключевые столбцы" отображаются столбцы EnglishCountryRegionName и StateProvinceName.

    Чтобы задать свойство NameColumn атрибута "Штат-Провинция", щелкните в окне свойств поле NameColumn и нажмите кнопку обзора (...).

    В диалоговом окне "Столбец имени", в списке "Исходный столбец" выберите StateProvinceName и нажмите кнопку ОК (рисунок 8.39).

    (рис 8.39) Диалоговое окно "Столбец имени"

    В меню "Файл" выберите команду "Сохранить все".

    Определение связей атрибутов

    Необходимо определять связи между атрибутами, если базовые данные это поддерживают. Определение связей между атрибутами ускоряет обработку измерений, секций и запросов.

    В конструкторе измерений для измерения "Клиент" откройте вкладку "Связи атрибутов" (рисунок 8.40).

    (рис 8.40) Вкладка "Связи атрибутов" измерения "Клиент"

    На схеме щелкните правой кнопкой мыши атрибут "Город" и выберите команду контекстного меню "Создать связь атрибутов" (рисунок 8.41).

    (рис 8.41) Контекстное меню атрибута "Город"

    В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение "город". Для поля "Связанный атрибут" задайте значение "Штат-Провинция" (рисунок 8.42).

    (рис 8.42) Диалоговое окно "Создание связи атрибутов"

    В списке "Тип связи" выберите тип связи "Жесткая". Связь имеет тип "Жесткая", поскольку связи между элементами не будут меняться с течением времени. Например, переход города под юрисдикцию другого штата или провинции - явление крайне редкое. Нажмите кнопку ОК.

    На схеме щелкните правой кнопкой мыши атрибут "Штат-Провинция" и выберите команду "Создать связь атрибутов". В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение "Штат-Провинция". Задайте для поля "Связанный атрибут" значение "Страна-Регион" (рисунок 8.43).

    (рис 8.43) Диалоговое окно"Создание связи атрибутов"

    В списке "Тип связи" выберите тип связи "Жесткая". Нажмите кнопку ОК. В результате будет создана связь между атрибутами, приведенная нарисунок 8.44.

    (рис 8.44) Связь между атрибутами

    В меню "Файл" выберите команду "Сохранить все".

    Развертывание изменений, обработка объектов и просмотр изменений

    После изменения атрибутов и иерархий необходимо произвести развертывание произведенных изменений и повторную обработку связанных объектов, прежде чем эти изменения можно будет просмотреть.

    В меню "Построение" среды BI Dev Studio выберите команду "Развернуть Analysis Services Tutorial". Получив сообщение "Развертывание выполнено успешно" (рисунок 8.45), в конструкторе измерений перейдите на вкладку "Обозреватель" измерения "Клиент" и щелкните на панели инструментов значок повторного соединения (рисунок 8.46).

    (рис 8.46) Сообщение об успешном развертывании (рис 8.45) Вкладка "Обозреватель" измерения "Клиент"

    Убедитесь, что в списке Иерархия выделена иерархия География покупателя, в области обозревателя последовательно раскройте узлы Все, Australia (Австралия), New South Wales (Новый Южный Уэльс) и наконец Coffs Harbour (Коффс Харбор). В обозревателе отображаются заказчики, живущие в этом городе (рисунок 8.47).

    (рис 8.47) Перечень заказчиков

    Переключитесь в конструктор кубов для куба Analysis Services Tutorial. Чтобы сделать это, дважды щелкните куб Analysis Services Tutorial, который находится в узле "Кубы" в дереве обозревателя решений.

    Перейдите на вкладку "Обозреватель" и на панели инструментов конструктора щелкните значок повторного соединения (рисунок 8.48).

    (рис 8.48) Вкладка "Обозреватель" конструктора кубов

    В области "Группа мер" разверните узел "Клиент" (рисунок 8.49).

    (рис 8.49) Узел "Клиент" в конструкторе кубов

    Обратите внимание, что вместо длинного списка атрибутов для измерения "Клиент" отображаются только папки отображения и те атрибуты, для которых не указана папка отображения. В меню "Файл" выберите команду "Сохранить все".

    Изменение измерения "Продукт"

    При выполнении задач этого раздела будут использованы именованные вычисления, чтобы предоставить понятные имена для линий товаров, определена иерархия в измерении "Продукт" и указано имя элемента "( All )" для иерархии. Также атрибуты будут сгруппированы в папки отображения.

    Добавление именованного вычисления

    К таблице в представлении источника данных может быть добавлено именованное вычисление. Далее будет создано именованное вычисление, которое отображает полное наименование линии товаров.

    Откройте представление источника данных Adventure Works DW, дважды щелкнув его в папке "Представления источников данных" обозревателя решений.

    В области "Таблицы" щелкните правой кнопкой мыши таблицу "Продукт" и выберите команду "Создать именованное вычисление" (рисунок 8.50).

    (рис 8.50) Создание именованного вычисления в таблице "Продукт"

    В диалоговом окне "Создание именованного вычисления" в поле "Имя столбца" введите "Название линейки продуктов".

    В поле "Выражение" введите следующую инструкцию CASE (рисунок 8.51):

    CASE ProductLine
       WHEN 'M' THEN 'Горные'
       WHEN 'R' THEN 'Дорожные'
       WHEN 'S' THEN 'Аксессуары'
       WHEN 'T' THEN 'Туристические'
       ELSE 'Компоненты'
    END
    (рис 8.51) Диалоговое окно "Создание именованного вычисления"

    Эта инструкция для каждой линейке товара в кубе создает понятные имена. Нажмите кнопку ОК, чтобы создать именованное вычисление "Название линейки продуктов". В меню "Файл" выберите команду "Сохранить все".

    Изменение свойства NameColumn атрибута

    В конструкторе измерений откройте измерение "Продукт". Для этого дважды щелкните его в узле "Измерения" обозревателя решений. В области "Атрибуты" вкладки "Структура измерения" выберите Product Line ( рисунок 8.52).

    (рис 8.52) Измерение "Продукт" в конструкторе измерений

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

    (рис 8.54) Свойство NameColumn (рис 8.53) Диалоговое окно "Столбец имени"

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

    Теперь поле NameColumn содержит текст "Продукт.Название линейки продуктов (WChar)". После этого элементы иерархии атрибута Product Line будут содержать не сокращенное, а полное наименование линии товара.

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

    Выберите в списке "Исходный столбец" значение "EnglishProductName" (рисунок 8.55) и нажмите кнопку ОК.

    (рис 8.55) Диалоговое окно "Столбец имени"

    Теперь поле NameColumn содержит текст "Продукт.EnglishProductName (WChar)".

    В окне свойств задайте для свойства Name атрибута Product Key значение "Название продукта" (рисунок 8.56).

    (рис 8.56) Свойство Name атрибута Product Key

    Создание иерархии

    Перетащите атрибут Product Line из области "Атрибуты" в область "Иерархии" (рисунок 8.57).

    (рис 8.57) Атрибут первого уровня иерархии

    Перетащите атрибут Model Name из области "Атрибуты" в ячейку <создать уровень> области "Иерархии" ниже уровня Product Line (рисунок 8.57).

    (рис 8.58) Атрибут второго уровня иерархии

    Перетащите атрибут "Название продукта" из области "Атрибуты" в ячейку <создать уровень> области "Иерархии" ниже уровня Model Name (рисунок 8.59).

    (рис 8.59) Атрибут третьего уровня иерархии

    В области "Иерархии" вкладки "Структура измерения" щелкните правой кнопкой мыши строку заголовка иерархии "Иерархия", выберите команду "Переименовать" и введите "Модельная линейка продуктов" (рисунок 8.60).

    (рис 8.60) Переименование иерархии

    Теперь иерархия называется "Модельная линейка продуктов". В меню "Файл" выберите команду "Сохранить все".

    Определение имен папок и имени элемента "All"

    В области "Атрибуты" выберите следующие атрибуты (щелкните каждый из них, удерживая нажатой клавишу CTRL) (рисунок 8.61):

  • Class ;
  • Color ;
  • Days To Manufacture ;
  • Reorder Point ;
  • Safety Stock Level ;
  • Size ;
  • Size Range ;
  • Style ;
  • Weight.
  • (рис 8.61) Выбранные атрибуты

    В окне свойств в поле свойства AttributeHierarchyDisplayFolder введите "Склад" (рисунок 8.62).

    (рис 8.62) Свойство AttributeHierarchyDisplayFolder

    Атрибуты сгруппированы в единую папку отображения.

    В области "Атрибуты" выберите следующие атрибуты:

  • Dealer Price ;
  • List Price ;
  • Standard Cost ;
  • В ячейке свойства AttributeHierarchyDisplayFolder окна свойств введите значение "Финансы". Атрибуты сгруппированы во вторую папку отображения.

    В области "Атрибуты" выберите следующие атрибуты:

  • End Date ;
  • Start Date ;
  • Status.
  • В ячейке свойства AttributeHierarchyDisplayFolder окна свойств введите "История". Атрибуты сгруппированы в третью папку отображения.

    В области Иерархии выберите иерархию "Модельная линейка продуктов" и для свойства AllMemberName в окне свойств задайте значение "Все продукты" (рисунок 8.63).

    (рис 8.63) Свойство AllMemberName

    В меню "Файл" выберите команду "Сохранить все".

    Определение связей атрибутов

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

    (рис 8.64) Предупреждение об отсутствии связей атрибутов

    В окне "Конструктор измерений" для измерения "Продукт" откройте вкладку "Связи атрибутов" (рисунок 8.65).

    (рис 8.65) Вкладка "Связи атрибутов"

    На схеме щелкните правой кнопкой мыши атрибут " Model Name " и выберите команду "Создать связь атрибутов" (рисунок 8.66).

    (рис 8.66) Контекстное меню атрибута Model Name

    В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение " Model Name ". Задайте для поля "Связанный атрибут" значение " Product Line " (рисунок 8.67).

    (рис 8.67) Диалоговое окно "Создание связи атрибутов"

    В списке "Тип связи" оставьте выбранным тип "Гибкая", поскольку связи между элементами могут измениться с течением времени. Например, модель товара со временем могла быть перенесена в другую линию товаров. Нажмите кнопку ОК. Созданная в результате связь атрибутов приведена нарисунок 8.68.

    (рис 8.68) Созданная связь атрибутов

    В меню "Файл" выберите команду "Сохранить все".

    Просмотр изменений в измерении "Продукт"

    В меню "Построение" среды BI Dev Studio выберите команду "Развернуть Analysis Services Tutorial ".

    Получив сообщение "Развертывание выполнено успешно", перейдите на вкладку "Обозреватель" окна "Конструктор измерений" для измерения "Продукт" и щелкните на панели инструментов значок повторного соединения ( рисунок 8.69).

    (рис 8.69) Вкладка "Обозреватель" окна "Конструктор измерений" для измерения "Продукт"

    Выберите в списке "Иерархия" вариант "Модельная линейка продуктов" (рисунок 8.70) и раскройте узел "Все продукты" (рисунок 8.71).

    (рис 8.71) Раскрывающийся список "Иерархия"(рис 8.70) Узел "Все продукты"

    Обратите внимание, что элемент All отображается как "Все продукты". Причина этого заключается в том, что свойство AllMemberName иерархии ранее на этом занятии было заменено на "Все продукты". Кроме того, все элементы уровня Product Line теперь имеют понятные имена, а не однобуквенные сокращения.

    Изменение измерения "Дата"

    Далее будет создана определяемая пользователем иерархия и изменены имена элементов, отображаемых для атрибутов Date, Month, Calendar Quarter и Calendar Semester. Также будут определены составные ключи для атрибутов, управляющие порядком сортировки элементов измерения, и связи атрибутов.

    Добавление именованного вычисления

    К таблице в представлении источника данных можно добавить именованное вычисление, которое является выражением SQL и представляет собой вычисляемый столбец. Это выражение имеет вид и функции столбца таблицы. Именованные вычисления позволяют расширять реляционную схему таблиц, существующих в представлении источника данных, не изменяя таблицы в базовом источнике данных.

    Откройте представление источника данных Adventure Works DW, дважды щелкнув его в папке "Представления источников данных" обозревателя решений. В области "Таблицы" щелкните правой кнопкой мыши таблицу "Дата" и выберите в контекстном меню команду "Создать именованное вычисление" ( рисунок 8.72).

    (рис 8.72) Представление источника данных Adventure Works DW

    В диалоговом окне "Создание именованного вычисления" в поле "Имя столбца" введите "Простая дата", а затем введите следующую инструкцию в поле "Выражение" (рисунок 8.73):

    DATENAME(mm, FullDateAlternateKey) + ' ' +
    DATENAME(dd, FullDateAlternateKey) + ', ' +
    DATENAME(yy, FullDateAlternateKey)
    (рис 8.73) Диалоговое о кно "Создание именованного вычисления"

    Инструкция извлекает из столбца FullDateAlternateKey значения числа, месяца и года. Этот новый столбец будет содержать отображаемое имя для атрибута FullDateAlternateKey.

    Нажмите кнопку ОК, а затем раскройте таблицу "Дата" в области "Таблицы". Именованное вычисление "Простая дата" отображается в списке столбцов таблицы "Дата" со значком, обозначающим, что это именованное вычисление (рисунок 8.74).

    (рис 8.74) Созданное именованное вычисление

    В меню "Файл" выберите команду "Сохранить все". В области "Таблицы" щелкните правой кнопкой мыши таблицу "Дата" и в контекстном меню выберите пункт "Просмотр данных" (рисунок 8.75).

    (рис 8.75) Контекстное меню таблицы "Дата"

    Просмотрите последний столбец в представлении "Просмотр таблицы Дата" ( рисунок 8.76).

    (рис 8.76) Представление "Просмотр таблицы Дата"

    Обратите внимание, что в представлении источника данных появился столбец "Простая дата", содержащий объединенные данные из нескольких столбцов базового источника данных. При этом исходный источник данных изменять не пришлось.

    Закройте представление "Просмотр таблицы Дата".

    Использование именованных вычислений в качестве имен элементов

    После создания именованного вычисления в представлении источника данных это вычисление можно использовать в качестве свойства атрибута.

    Откройте измерение "Дата" в конструкторе измерений среды BI Dev Studio. Для этого дважды щелкните измерение "Дата" в узле "Измерения" в "Обозревателе решений" ( рисунок 8.77).

    (рис 8.77) Измерение "Дата" в конструкторе измерений

    В области "Атрибуты" на вкладке "Структура измерения" выберите атрибут " Date Key ". В окне "Свойства" выберите поле свойства NameColumn (рисунок 8.78) и нажмите кнопку обзора (…), чтобы открыть диалоговое окно "Столбец имени" (рисунок 8.79).

    (рис 8.79) Свойство NameColumn (рис 8.78) Диалоговое окно "Столбец имени"

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

    Создание иерархии

    Новую иерархию можно создать, перетащив атрибут из области "Атрибуты" в область "Иерархии".

    В Конструкторе измерений в измерении "Дата" перетащите атрибут Calendar Year из области "Атрибуты" в область "Иерархии".

    (рис 8.80) Атрибут первого уровня иерархии

    Перетащите атрибут Calendar Semester из области "Атрибуты" в ячейку <создать уровень> в области "Иерархии" под уровнем " Calendar Year " (рисунок 8.81).

    (рис 8.81) Элемент второго уровня иерархии

    Перетащите атрибут Calendar Quarter из области "Атрибуты" в ячейку <создать уровень> в области "Иерархии" под уровнем Calendar Semester (рисунок 8.82).

    (рис 8.82) Элемент третьего уровня иерархии

    Перетащите атрибут English Month Name из области "Атрибуты" в ячейку <создать уровень> в области "Иерархии" под уровнем Calendar Quarter ( рисунок 8.83).

    (рис 8.83) Элемент четвертого уровня иерархии

    Перетащите атрибут Date Key из области "Атрибуты" в ячейку <создать уровень> в области "Иерархии" под уровнем English Month Name (рисунок 8.84).

    (рис 8.84) Элемент пятого уровня иерархии

    В области "Иерархии" щелкните правой кнопкой мыши строку заголовка иерархии "Иерархия", выберите команду "Переименовать" и введите "Календарная дата" (рисунок 8.85).

    (рис 8.85) Задание имени иерархии

    В иерархии "Календарная дата" измените имя уровня Calendar Year на "Год", Calendar Semester - на "Полугодие", Calendar Quarter - на "Квартал", English Month Name на "Месяц", а имя уровня Date Key - на "Дата" (рисунок 8.86).

    (рис 8.86) Измененные имена уровней в иерархии "Календарная дата"

    Удалите атрибут FullDateAlternateKey в области "Атрибуты", поскольку он больше не понадобится (рисунок 8.87).

    (рис 8.87) Удаление атрибута FullDateAlternateKey

    В меню "Файл" выберите команду "Сохранить все".

    Определение связей атрибутов

    Необходимо определять связи между атрибутами, поскольку базовые данные это поддерживают. Определение связей между атрибутами ускоряет обработку измерений, секций и запросов.

    В конструкторе измерений в измерении "Дата" перейдите на вкладку "Связи атрибутов" ( рисунок 8.88).

    (рис 8.88) Вкладка "Связи атрибутов" конструктора измерений

    На схеме щелкните правой кнопкой мыши атрибут English Month Name и в контекстном меню выберите команду "Создать связь атрибутов"

    В диалоговом окне "Создание связи атрибутов" свойство "Исходный атрибут" имеет значение " English Month Name ". Задайте для поля "Связанный атрибут" значение " Calendar Quarter " (рисунок 8.89).

    (рис 8.89) Диалоговое окно "Создание связи атрибутов"

    В раскрывающемся списке "Тип связи" выберите тип связи "Жесткая". Связь имеет тип "Жесткая", поскольку связи между элементами не будут меняться с течением времени. Нажмите кнопку ОК.

    На схеме щелкните правой кнопкой мыши атрибут " Calendar Quarter ", а затем выберите команду "Создать связь атрибутов". В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение " Calendar Quarter ". Задайте для поля "Связанный атрибут" значение " Calendar Semester ". В списке "Тип связи" выберите тип связи "Жесткая". Нажмите кнопку ОК.

    На схеме щелкните правой кнопкой мыши атрибут " Calendar Semester " и выберите команду "Создать связь атрибутов". В диалоговом окне "Создание связи атрибутов" поле "Исходный атрибут" имеет значение " Calendar Semester ". Задайте для поля "Связанный атрибут" значение " Calendar Year ". В списке "Тип связи" выберите тип связи "Жесткая". Нажмите кнопку ОК.

    Созданная связь атрибутов приведена на рисунок 8.90.

    (рис 8.90) Созданная связь атрибутов

    В меню "Файл" выберите команду "Сохранить все".

    Создание уникальных имен для элементов измерения

    Далее будут созданы столбцы понятных имен, которые будут использованы для атрибутов EnglishMonthName, CalendarQuarter и CalendarSemester.

    Перейдите в представление источника данных Adventure Works DW, дважды щелкнув его в папке "Представления источника данных" обозревателя решений.

    В области "Таблицы" щелкните правой кнопкой мыши таблицу "Дата" и выберите команду "Создать именованное вычисление" (рисунок 8.91).

    (рис 8.91) Контекстное меню таблицы "Дата"

    В диалоговом окне "Создание именованного вычисления" в поле "Имя столбца" введите "Имя месяца", а затем введите следующую инструкцию в поле "Выражение" (рисунок 8.92):

    EnglishMonthName+' '+ CONVERT(CHAR (4), CalendarYear)

    (рис 8.92) Диалоговое окно "Создание именованного вычисления"

    Эта инструкция объединяет месяц и год для каждого месяца в таблице в новый столбец. Нажмите кнопку ОК.

    В области "Таблицы" щелкните правой кнопкой мыши таблицу "Дата" и выберите команду "Создать именованное вычисление". В диалоговом окне "Создание именованного вычисления" введите "Имя квартала" в поле "Имя столбца", а затем в поле "Выражение" введите следующий сценарий SQL:

    'К' + CONVERT(CHAR (1), CalendarQuarter) +' '+ 'Г' + CONVERT(CHAR (4), CalendarYear)

    Этот сценарий SQL помещает в новый столбец объединение календарного квартала и года для каждого квартала в таблице. Нажмите кнопку ОК.

    В области "Таблицы" щелкните правой кнопкой мыши таблицу "Дата" и выберите команду "Создать именованное вычисление". В диалоговом окне "Создание именованного вычисления" в поле "Имя столбца" введите "Имя полугодия", а затем в поле "Выражение" введите следующий сценарий SQL:

    CASE
    WHEN CalendarSemester = 1 THEN 'П1' + ' ' + 'Г' + ' ' 
           + CONVERT(CHAR(4), CalendarYear)
    ELSE
    'П2' + ' ' + 'Г' + ' ' + CONVERT(CHAR(4), CalendarYear)
    END

    Этот сценарий SQL помещает в новый столбец объединение календарного полугодия и года для каждого полугодия в таблице. Нажмите кнопку ОК.

    В контекстном меню таблицы "Дата" выберите пункт "Просмотр данных" (рисунок 8.93).

    (рис 8.93) Контекстное меню таблицы "Дата"

    Обратите внимание на последние четыре столбца в представлении "Просмотр таблицы "Дата"" ( рисунок 8.94). Они формируются на основе именованных вычислений и содержат дату, месяц года, квартал года и полугодие года соответственно.

    (рис 8.94) Представление "Просмотр таблицы "Дата""

    В меню "Файл" выберите команду "Сохранить все".

    Определение составного свойства KeyColumns и задание столбца имени

    Свойство KeyColumns содержит столбец или столбцы, представляющие ключ для атрибута. Далее будет определено составное свойство KeyColumns.

    Откройте измерение "Дата" и перейдите на вкладку "Структура измерения" ( рисунок 8.95).

    (рис 8.95) Вкладка "Структура измерения" измерения "Дата"

    В области "Атрибуты" выберите атрибут " English Month Name ". В окне "Свойства" выберите поле KeyColumns (рисунок 8.96) и нажмите кнопку обзора (...).

    (рис 8.96) Диалоговое окно "Свойства"

    В диалоговом окне "Ключевые столбцы" () выберите из списка "Доступные столбцы" столбец " CalendarYear ", а затем нажмите кнопку >.

    (рис 8.97) Диалоговое окно "Ключевые столбцы"

    Столбцы EnglishMonthName и CalendarYear отображаются в списке Ключевые столбцы. Нажмите кнопку ОК.

    Чтобы задать свойство " NameColumn " атрибута " EnglishMonthName ", щелкните поле " NameColumn " в окне свойств и нажмите кнопку обзора (...). В диалоговом окне "Столбец имени" (рисунок 8.98), в списке "Исходный столбец" выберите "Имя месяца", а затем нажмите кнопку ОК.

    (рис 8.98) Диалоговое окно "Столбец имени"

    В меню "Файл" выберите команду "Сохранить все".

    В области "Атрибуты" щелкните атрибут " Calendar Quarter ". В окне "Свойства" щелкните в поле " KeyColumns " и нажмите кнопку обзора (...). В диалоговом окне "Ключевые столбцы" выберите из списка "Доступные столбцы" столбец " CalendarYear ", а затем нажмите кнопку >. Столбцы " CalendarQuarter " и " CalendarYear " отображаются в списке "Ключевые столбцы". Нажмите кнопку ОК.

    Чтобы задать свойство " NameColumn " атрибута " Calendar Quarter ", щелкните поле " NameColumn " в окне свойств и нажмите кнопку обзора (...). В диалоговом окне "Столбец имени", в списке "Исходный столбец" выберите "Имя квартала", а затем нажмите кнопку ОК.

    В меню "Файл" выберите команду "Сохранить все".

    В области "Атрибуты" щелкните атрибут " Calendar Semester ". В окне "Свойства" щелкните в поле " KeyColumns " и нажмите кнопку обзора (...). В диалоговом окне "Ключевые столбцы" выберите из списка "Доступные столбцы" столбец " CalendarYear ", а затем нажмите кнопку >. Столбцы " CalendarSemester " и " CalendarYear " отображаются в списке "Ключевые столбцы". Нажмите кнопку ОК.

    Чтобы задать свойство " NameColumn " атрибута " Calendar Semester ", щелкните поле " NameColumn " в окне свойств и нажмите кнопку обзора (...). В диалоговом окне "Столбец имени", в списке "Исходный столбец" выберите "Имя полугодия", а затем нажмите кнопку ОК.

    В меню "Файл" выберите команду "Сохранить все".

    Развертывание и просмотр изменений

    После изменения атрибутов и иерархий необходимо произвести развертывание произведенных изменений и повторную обработку связанных объектов, прежде чем эти изменения можно будет просмотреть.

    В меню "Построение" среды BI Dev Studio выберите команду "Развернуть Analysis Services Tutorial ". Получив сообщение "Развертывание выполнено успешно", перейдите на вкладку "Обозреватель" окна "Конструктор измерений" для измерения "Дата" и щелкните на панели инструментов значок повторного соединения.

    В списке "Иерархия" выберите значение " Calendar Quarter ". Просмотрите элементы иерархии атрибута " Calendar Quarter " (рисунок 8.99).

    (рис 8.99) Элементы иерархии атрибута "Calendar Quarter"

    Обратите внимание, что имена элементов иерархии атрибута " Calendar Quarter " выглядят более понятно, поскольку для их отображения создано именованное вычисление. Теперь существуют элементы для каждого квартала в иерархии атрибута " Calendar Quarter ". Они не упорядочены в хронологическом порядке. Вместо этого они отсортированы сначала по кварталам, а затем по годам. Далее раздела потребуется изменить поведение этой иерархии атрибута, чтобы отсортировать ее элементы сначала по годам, а затем по кварталам.

    Просмотрите элементы иерархий атрибутов " English Month Name " (рисунок 8.100) и " Calendar Semester " (рисунок 8.102).

    (рис 8.101) Элементы иерархий атрибута "English Month Name"(рис 8.100) Элементы иерархий атрибута "Calendar Semester"

    Обратите внимание, что элементы этих иерархий также не отсортированы в хронологическом порядке. Вместо этого они отсортированы сначала соответственно по месяцам или полугодиям, а затем - по годам. Далее поведение этих иерархий атрибутов будет изменено, чтобы изменить порядок сортировки.

    Изменение порядка сортировки путем изменения порядка элементов составных ключей

    Далее будет изменен порядок сортировки посредством изменения порядка ключей, составляющих составной ключ.

    Открыв измерение "Дата" в конструкторе измерений, перейдите на вкладку "Структура измерения" и выберите "Calendar Semester" в области "Атрибуты" (рисунок 8.102).

    (рис 8.102) Атрибут ""Calendar Semester

    В окне свойств просмотрите значение свойства " OrderBy ". Оно имеет значение " Key " (Ключ) (рисунок 8.103).

    (рис 8.103) Значение свойства "OrderBy"

    Элементы иерархии атрибута " Calendar Semester " отсортированы по значению ключа. При составном ключе сортировка ключей элементов ведется сначала по значению первого ключа элемента, а затем - по значению второго ключа элемента. Иными словами, элементы иерархии атрибута " Calendar Semester " отсортированы сначала по полугодиям, а затем по годам.

    В окне свойств нажмите кнопку с многоточием (...), чтобы изменить значения свойства KeyColumns (рисунок 8.104).

    (рис 8.104) Свойство KeyColumns

    В списке "Ключевые столбцы" в диалоговом окне "Ключевые столбцы" выберите столбец " CalendarSemester " (рисунок 8.105), а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа.

    (рис 8.105) Диалоговое окно "Ключевые столбцы"

    Нажмите кнопку ОК. Теперь элементы этой иерархии атрибута отсортированы сначала по годам, а затем по полугодиям.

    Выберите " Calendar Quarter " в области "Атрибуты" и нажмите кнопку с многоточием (...) для свойства " KeyColumns " в окне свойств. В списке "Ключевые столбцы" диалогового окна "Ключевые столбцы" выделите столбец " CalendarQuarter ", а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК.

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

    В области "Атрибуты" выберите элемент " English Month Name ", а затем в окне свойств нажмите кнопку с многоточием (...) для свойства " KeyColumns." В списке "Ключевые столбцы" диалогового окна "Ключевые столбцы" выделите столбец " EnglishMonthName ", а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК.

    Теперь элементы этой иерархии атрибута отсортированы сначала по годам, а затем по месяцам.

    В меню "Построение" среды BI Dev Studio выберите команду "Развернуть Analysis Services Tutorial ". После успешного завершения развертывания в конструкторе измерений перейдите на вкладку "Обозреватель" измерения "Дата". На панели инструментов вкладки "Обозреватель щелкните значок повторного соединения". Просмотрите элементы иерархий атрибутов " Calendar Quarter " (рисунок 8.106) и " Calendar Semester " ( рисунок 8.107).

    (рис 8.107) Элементы иерархии атрибута "Calendar Quarter"(рис 8.106) Элементы иерархии атрибута "Calendar Semester"

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

    Просмотрите элементы иерархии атрибута " English Month Name " (рисунок 8.108).

    (рис 8.108) Элементы иерархии атрибута "English Month Name"

    Обратите внимание, что теперь элементы этой иерархии атрибута сортируются сначала по годам, а затем по месяцам в алфавитном порядке. Причина этого заключается в том, что столбец " EnglishCalendarMonth " в представлении источника данных имеет строковый тип данных, который основан на типе данных nvarchar базовой реляционной базы данных. Сортировка по месяцам хронологически внутри года будет рассмотрена в следующей лабораторной работе.

    Просмотр развернутого куба

    Переключитесь в конструктор кубов среды BI Dev Studio, щелкнув куб Analysis Services Tutorial.

    Перейдите на вкладку "Обозреватель" и на панели инструментов конструктора нажмите кнопку "Повтор соединения" ( рисунок 8.109).

    (рис 8.109) Вкладка "Обозреватель" конструктора кубов

    Правая область конструктора отображает метаданные для куба Analysis Services Tutorial. Обратите внимание, что в области инструментов вкладки "Обозреватель" доступны раскрывающиеся списки "Перспектива" и "Язык". Также обратите внимание, что вкладка "Обозреватель" содержит две области справа от области "Группа мер": верхняя область - область фильтра, а нижняя - область данных.

    В области "Группа мер" раскройте узел " Measures " (Меры), раскройте элемент "Продажи через Интернет" и перетащите меру "Сумма продаж" в область "Перетащите сюда поля итогов или деталей" ( рисунок 8.110).

    (рис 8.110) Добавленная мера "Сумма продаж"

    В области "Группа мер" раскройте узел "Продукт". Обратите внимание, что атрибуты и пользовательские иерархии организованы в папки отображения в списке метаданных "Продукт".

    Перетащите пользовательскую иерархию "Модельная линейка продуктов" в область "Перетащите сюда поля столбцов" панели данных, а затем раскройте элемент "Дорожные" уровня Product Line этой пользовательской иерархии ( рисунок 8.111).

    (рис 8.111) Добавление пользовательской иерархии "Модельная линейка продуктов"

    Обратите внимание, что эта пользовательская иерархия предоставляет путь к уровню имени товара.

    На панели метаданных раскройте узел "Клиент" и перетащите иерархию из папки отображения "География клиентов" в область "Перетащите сюда поля строк" панели данных.

    На оси строк раскройте узел " United States ", чтобы просмотреть подробные сведения о продажах на территории Соединенных Штатов по регионам. Раскройте узел " Oregon ", чтобы просмотреть сведения о продажах по городам в штате Орегон ( рисунок 8.112).

    (рис 8.112) Сведения о продажах по городам в штате Орегон

    В области метаданных разверните узел " Order Date " и перетащите иерархию " Order Date.Календарная дата" в зону "Поместите сюда поля фильтра" в области данных.

    Нажмите стрелку справа от фильтра Order Date. Calendar Date в области данных, снимите флажок для уровня (Все), последовательно разверните узлы 2002, П1 Г2002 и К1 Г2002, установите флажок February 2002 и нажмите кнопку ОК. На экран будут выведены продажи через Интернет по регионам и линейкам продуктов в феврале 2002 г., как показано на рисунок 8.113.

    (рис 8.113) Продажи через Интернет по регионам и линейкам продуктов в феврале 2002 г.

    В области метаданных разверните узел "Клиент", разверните элемент " Demographic ", разверните иерархию атрибутов " Commute Distance ", разверните "Элементы", а затем " All ". Щелкните правой кнопкой мыши элемент " 10+ Miles " и выберите команду "Добавить в область вложенных кубов". Элемент " Commute Distance " появится в области фильтров, расположенной над областью данных. Величины, отображаемые в области данных, будут отфильтрованы, чтобы показать данные заказчиков, ездящих на работу более чем за 10 миль ( рисунок 8.114).

    (рис 8.114) Продажи заказчикам, ездящим на работу более чем за 10 миль

    В меню "Файл" выберите команду "Сохранить все".

    Контрольные вопросы

  • Какими свойствами обладают меры?
  • На что влияет аддитивность агрегата?
  • Опишите уровни аддитивности статистических функций.
  • Дайте определение понятию "именованное вычисление". Какие функции оно выполняет? Для чего предназначено?
  • Какие параметры задаются при создании именованного вычисления?
  • Для каких целей используется связь атрибутов измерения? Какие преимущества она дает?
  • Каким образом определяются атрибуты в схемах "звезда" и "снежинка"?
  • В каком случае иерархия является естественной?
  • Каким образом создаются связи, представляющие естественные иерархии?
  • В чем отличие пользовательской иерархии от естественной иерархии?
  • Какой инструмент используется для определения уровней пользовательской иерархии?
  • Вернуться к учебному плану