Изменение измерения Date
В задачах этого раздела будет создана определяемая пользователем иерархия и изменены имена элементов, отображаемых для атрибутов Date, Month, Calendar Quarter и Calendar Semester. Также будут определены составные ключи для атрибутов, управляющие порядком сортировки элементов измерения, и связи атрибутов.
Добавление именованного вычисления
К таблице в представлении источника данных можно добавить именованное вычисление, которое является выражением SQL и представляет собой вычисляемый столбец. Это выражение имеет вид и функции столбца таблицы. Именованные вычисления позволяют расширять реляционную схему таблиц, существующих в представлении источника данных, не изменяя таблицы в базовом источнике данных. Дополнительные сведения см. в разделе Определение именованных вычислений в представлении источника данных (службы Analysis Services).
Добавление именованного вычисления
Откройте представление источника данных Adventure Works DW, дважды щелкнув его в папке Представления источников данных обозревателя решений.
В области Таблицы щелкните правой кнопкой мыши таблицу Date и выберите команду Создать именованное вычисление.
В диалоговом окне Создание именованного вычисления в поле Имя столбца введите SimpleDate, а затем введите следующую инструкцию CASE в поле Выражение:
DATENAME(mm, FullDateAlternateKey) + ' ' + DATENAME(dd, FullDateAlternateKey) + ', ' + DATENAME(yy, FullDateAlternateKey)
Инструкция CASE извлекает из столбца FullDateAlternateKey значения числа, месяца и года. Этот новый столбец будет содержать отображаемое имя для атрибута FullDateAlternateKey.
Нажмите кнопку ОК, а затем раскройте таблицу Date в области Таблицы.
Именованное вычисление SimpleDate отображается в списке столбцов таблицы Customer со значком, обозначающим, что это именованное вычисление.
В меню «Файл» выберите команду Сохранить все.
В области Таблицы щелкните правой кнопкой мыши таблицу Date и выберите пункт Просмотр данных.
Просмотрите последний столбец в представлении Просмотр таблицы Customer.
Обратите внимание, что в представлении источника данных появился столбец SimpleDate, содержащий объединенные данные из нескольких столбцов базового источника данных. При этом исходный источник данных изменять не пришлось.
Закройте представление Просмотр таблицы Customer.
Использование именованных вычислений в качестве имен элементов
После создания именованного вычисления в представлении источника данных это вычисление можно использовать в качестве свойства атрибута.
Использование именованного вычисления в качестве имен элементов
Откройте измерение Date в конструкторе измерений среды Business Intelligence Development Studio. Для этого дважды щелкните измерение Date в узле Измерения в Обозревателе решений.
В области Атрибуты на вкладке Структура измерения выберите атрибут Date Key.
Откройте окно «Свойства» и нажмите в строке заголовка кнопку Автоматически скрыть, чтобы оно оставалось открытым.
Щелкните поле свойства NameColumn и нажмите кнопку обзора (…), чтобы открыть диалоговое окно Столбец имени.
Выберите SimpleDate в списке Исходный столбец и нажмите кнопку ОК.
В меню «Файл» выберите команду Сохранить все.
Создание иерархии
Новую иерархию можно создать, перетащив атрибут из области Атрибуты в область Иерархии.
Создание иерархии
В Конструкторе измерений в измерении Date перетащите атрибут Calendar Year из области Атрибуты в область Иерархии.
Перетащите атрибут Calendar Semester из области Атрибуты в ячейку <новый уровень> в области Иерархии под уровнем Calendar Year.
Перетащите атрибут Calendar Quarter из области Атрибуты в ячейку <новый уровень> в области Иерархии под уровнем Calendar Semester.
Перетащите атрибут English Month Name из области Атрибуты в ячейку <новый уровень> в области Иерархии под уровнем Calendar Quarter.
Перетащите атрибут Date Key из области Атрибуты в ячейку <новый уровень> в области Иерархии под уровнем English Month Name.
В области Иерархии щелкните правой кнопкой мыши строку заголовка иерархии Иерархия, выберите команду Переименовать и введите Calendar Date.
В иерархии Calendar Date измените имя уровня English Month Name на Calendar Month, а имя уровня Date Key — на Date.
Удалите атрибут FullDateAlternateKey в области Атрибуты, поскольку он больше не понадобится.
В меню «Файл» выберите команду Сохранить все.
Определение связей атрибутов
Необходимо определять связи между атрибутами, если базовые данные это поддерживают. Определение связей между атрибутами ускоряет обработку измерений, секций и запросов.
Определение связей атрибутов
В конструкторе измерений в измерении Date перейдите на вкладку Связи атрибутов.
На схеме щелкните правой кнопкой мыши атрибут English Month Name и выберите команду Создать связь атрибутов.
В диалоговом окне Создание связи атрибутов свойство Исходный атрибут имеет значение English Month Name. Задайте для поля Связанный атрибут значение Calendar Quarter.
В списке Тип связи выберите тип связи Жесткая.
Связь имеет тип Жесткая, поскольку связи между элементами не будут меняться с течением времени.
Нажмите кнопку ОК.
На схеме щелкните правой кнопкой мыши атрибут Calendar Quarter, а затем выберите команду Создать связь атрибутов.
В диалоговом окне Создание связи атрибутов поле Исходный атрибут имеет значение Calendar Quarter. Задайте для поля Связанный атрибут значение Calendar Semester.
В списке Тип связи выберите тип связи Жесткая.
Нажмите кнопку ОК.
На схеме щелкните правой кнопкой мыши атрибут Calendar Semester и выберите команду Создать связь атрибутов.
В диалоговом окне Создание связи атрибутов поле Исходный атрибут имеет значение Calendar Semester. Задайте для поля Связанный атрибут значение Calendar Year.
В списке Тип связи выберите тип связи Жесткая.
Нажмите кнопку ОК.
В меню «Файл» выберите команду Сохранить все.
Создание уникальных имен для элементов измерения
В этой задаче будут созданы столбцы понятных имен, которые будут использованы для атрибутов EnglishMonthName, CalendarQuarter и CalendarSemester.
Создание уникальных имен для элементов измерения
Перейдите в представление источника данных Adventure Works DW, дважды щелкнув его в папке Представления источника данных обозревателя решений.
В области Таблицы щелкните правой кнопкой мыши таблицу Date и выберите команду Создать именованное вычисление.
В диалоговом окне Создание именованного вычисления в поле Имя столбца введите MonthName, а затем введите следующую инструкцию в поле Выражение:
EnglishMonthName+' '+ CONVERT(CHAR (4), CalendarYear)
Эта инструкция объединяет месяц и год для каждого месяца в таблице в новый столбец.
Нажмите кнопку ОК.
В области Таблицы щелкните правой кнопкой мыши таблицу Date и выберите команду Создать именованное вычисление.
В диалоговом окне Создание именованного вычисления введите CalendarQuarterDesc в поле Имя столбца, а затем в поле Выражение введите следующий сценарий SQL:
'Q' + CONVERT(CHAR (1), CalendarQuarter) +' '+ 'CY ' + CONVERT(CHAR (4), CalendarYear)
Этот сценарий SQL помещает в новый столбец объединение календарного квартала и года для каждого квартала в таблице.
Нажмите кнопку ОК.
В области Таблицы щелкните правой кнопкой мыши таблицу Date и выберите команду Создать именованное вычисление.
В диалоговом окне Создание именованного вычисления в поле Имя столбца введите CalendarSemesterDesc, а затем в поле Выражение введите следующий сценарий SQL:
CASE WHEN CalendarSemester = 1 THEN 'H1' + ' ' + 'CY' + ' ' + CONVERT(CHAR(4), CalendarYear) ELSE 'H2' + ' ' + 'CY' + ' ' + CONVERT(CHAR(4), CalendarYear) END
Этот сценарий SQL помещает в новый столбец объединение календарного полугодия и года для каждого полугодия в таблице.
Нажмите кнопку ОК.
В меню Файл выберите команду Сохранить все.
Определение составного свойства KeyColumns и задание столбца имени
Свойство KeyColumns содержит столбец или столбцы, представляющие ключ для атрибута. В этой задаче будет определено составное свойство KeyColumns.
Определение составного свойства KeyColumns для атрибута English Month Name
Откройте измерение Date и перейдите на вкладку Структура измерения.
В области Атрибуты щелкните атрибут English Month Name.
В окне Свойства щелкните поле KeyColumns и нажмите кнопку обзора (...).
В диалоговом окне Ключевые столбцы выберите из списка Доступные столбцы столбец CalendarYear, а затем нажмите кнопку >.
Столбцы EnglishMonthName и CalendarYear отображаются в списке Ключевые столбцы.
Нажмите кнопку ОК.
Чтобы задать свойство NameColumn атрибута EnglishMonthName, щелкните поле NameColumn в окне свойств и нажмите кнопку обзора (...).
В диалоговом окне Столбец имени, в списке Исходный столбец выберите MonthName, а затем нажмите кнопку ОК.
В меню «Файл» выберите команду Сохранить все.
Определение составного свойства KeyColumns для атрибута Calendar Quarter
В области Атрибуты щелкните атрибут Calendar Quarter.
В окне Свойства щелкните в поле KeyColumns и нажмите кнопку обзора (...).
В диалоговом окне Ключевые столбцы выберите из списка Доступные столбцы столбец CalendarYear, а затем нажмите кнопку >.
Столбцы CalendarQuarter и CalendarYear отображаются в списке Ключевые столбцы.
Нажмите кнопку ОК.
Чтобы задать свойство NameColumn атрибута Calendar Quarter, щелкните поле NameColumn в окне свойств и нажмите кнопку обзора (...).
В диалоговом окне Столбец имени, в списке Исходный столбец выберите CalendarQuarterDesc, а затем нажмите кнопку ОК.
В меню «Файл» выберите команду Сохранить все.
Определение составного свойства KeyColumns для атрибута Calendar Semester
В области Атрибуты щелкните атрибут Calendar Semester.
В окне Свойства щелкните в поле KeyColumns и нажмите кнопку обзора (...).
В диалоговом окне Ключевые столбцы выберите из списка Доступные столбцы столбец CalendarYear, а затем нажмите кнопку >.
Столбцы CalendarSemester и CalendarYear отображаются в списке Ключевые столбцы.
Нажмите кнопку ОК.
Чтобы задать свойство NameColumn атрибута Calendar Semester, щелкните поле NameColumn в окне свойств и нажмите кнопку обзора (...).
В диалоговом окне Столбец имени, в списке Исходный столбец выберите CalendarSemesterDesc, а затем нажмите кнопку ОК.
В меню «Файл» выберите команду Сохранить все.
Развертывание и просмотр изменений
После изменения атрибутов и иерархий необходимо произвести развертывание произведенных изменений и повторную обработку связанных объектов, прежде чем эти изменения можно будет просмотреть.
Развертывание и просмотр изменений
В меню Построение среды BI Development Studio выберите команду Развернуть Analysis Services Tutorial.
Получив сообщение Развертывание выполнено успешно, перейдите на вкладку Обозреватель окна Конструктор измерений для измерения Дата и щелкните на панели инструментов значок повторного соединения.
В списке Иерархия выберите значение Calendar Quarter. Просмотрите элементы иерархии атрибута Calendar Quarter.
Обратите внимание, что имена элементов иерархии атрибута Calendar Quarter выглядят более понятно, поскольку для их отображения создано именованное вычисление. Теперь существуют элементы для каждого квартала в иерархии атрибута Calendar Quarter. Они не упорядочены в хронологическом порядке. Вместо этого они отсортированы сначала по кварталам, а затем по годам. В следующей задаче этого раздела требуется изменить поведение этой иерархии атрибута, чтобы отсортировать ее элементы сначала по годам, а затем по кварталам.
Просмотрите элементы иерархий атрибутов English Month Name и Calendar Semester.
Обратите внимание, что элементы этих иерархий также не отсортированы в хронологическом порядке. Вместо этого они отсортированы сначала соответственно по месяцам или полугодиям, а затем — по годам. В следующей задаче этого раздела поведение этих иерархий атрибутов будет изменено, чтобы изменить порядок сортировки.
Изменение порядка сортировки путем изменения порядка элементов составных ключей
В этой задаче будет изменен порядок сортировки посредством изменения порядка ключей, составляющих составной ключ.
Изменение порядка элементов составных ключей
Открыв измерение Date в конструкторе измерений, перейдите на вкладку Структура измерения и выберите Calendar Semester в области Атрибуты.
В окне свойств просмотрите значение свойства OrderBy. Оно имеет значение Ключ.
Элементы иерархии атрибута Calendar Semester отсортированы по значению ключа. При составном ключе сортировка ключей элементов ведется сначала по значению первого ключа элемента, а затем — по значению второго ключа элемента. Иными словами, элементы иерархии атрибута Calendar Semester отсортированы сначала по полугодиям, а затем по годам.
В окне свойств нажмите кнопку с многоточием (...), чтобы изменить значения свойства KeyColumns.
В списке Ключевые столбцы в диалоговом окне Ключевые столбцы выберите столбец CalendarSemester, а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК.
Теперь элементы этой иерархии атрибута отсортированы сначала по годам, а затем по полугодиям.
Выберите Calendar Quarter в области Атрибуты и нажмите кнопку с многоточием (...) для свойства KeyColumns в окне свойств.
В списке Ключевые столбцы диалогового окна Ключевые столбцы выделите столбец CalendarQuarter, а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК.
Теперь элементы этой иерархии атрибута отсортированы сначала по годам, а затем по кварталам.
В области Атрибуты выберите элемент English Month Nameа, а затем в окне свойств нажмите кнопку с многоточием (...) для свойства KeyColumns.
В списке Ключевые столбцы диалогового окна Ключевые столбцы выделите столбец EnglishMonthName, а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК.
Теперь элементы этой иерархии атрибута отсортированы сначала по годам, а затем по месяцам.
В меню Сборка среды BI Development Studio выберите команду Развернуть Analysis Services Tutorial. После успешного завершения развертывания в конструкторе измерений перейдите на вкладку Обозреватель и выберите измерение Date.
На панели инструментов вкладки Обозреватель щелкните значок повторного соединения.
Просмотрите элементы иерархий атрибутов Calendar Quarter и Calendar Semester.
Обратите внимание, что теперь элементы этих иерархий атрибутов сортируются в хронологическом порядке, по годам, а затем по полугодиям или кварталам соответственно.
Просмотрите элементы иерархии атрибута English Month Name.
Обратите внимание, что теперь элементы этой иерархии атрибута сортируются сначала по годам, а затем по месяцам в алфавитном порядке. Причина этого заключается в том, что столбец EnglishCalendarMonth в представлении источника данных имеет строковый тип данных, который основан на типе данных nvarchar базовой реляционной базы данных. Сведения о сортировке по месяцам хронологически внутри года см. в разделе Сортировка элементов атрибута по вторичному атрибуту.