Изменение измерения Date
В ходе выполнения задач этого раздела мы создадим определяемую пользователем иерархию и изменим имена элементов, отображаемых для атрибутов «Дата», «Месяц», «Календарный квартал» и «Календарное полугодие». Также мы определим составные ключи для атрибутов, настроим порядок сортировки элементов измерения и зададим связи атрибутов.
Добавление именованного вычисления
К таблице в представлении источника данных можно добавить именованное вычисление, которое является выражением SQL и представляет собой вычисляемый столбец. Это выражение имеет вид и функции столбца таблицы. Именованные вычисления позволяют расширять реляционную схему таблиц, существующих в представлении источника данных, не изменяя таблицы в базовом источнике данных. Дополнительные сведения см. в разделе Определение именованных вычислений в представлении источника данных (службы Analysis Services).
Добавление именованного вычисления
Чтобы открыть представление источника данных Adventure Works DW 2012, дважды щелкните его в папке Представления источников данных в обозревателе решений.
Ближе к нижней части панели Таблицы щелкните правой кнопкой мыши таблицу Дата и выберите команду Создать именованное вычисление.
В диалоговом окне Создание именованного вычисления в поле Имя столбца введите SimpleDate, а затем введите или скопируйте и вставьте следующую инструкцию DATENAME в поле Выражение:
DATENAME(mm, FullDateAlternateKey) + ' ' + DATENAME(dd, FullDateAlternateKey) + ', ' + DATENAME(yy, FullDateAlternateKey)
Инструкция DATENAME извлекает из столбца FullDateAlternateKey значения числа, месяца и года. Этот новый столбец будет содержать отображаемое имя для атрибута FullDateAlternateKey.
Нажмите кнопку ОК, а затем раскройте таблицу Date на панели Таблицы.
Именованное вычисление SimpleDate отображается в списке столбцов таблицы «Дата» со значком, обозначающим, что это именованное вычисление.
В меню Файл выберите команду Сохранить все.
На панели Таблицы щелкните правой кнопкой мыши таблицу Дата и выберите пункт Просмотр данных.
Прокрутите вправо и просмотрите последний столбец в представлении Просмотр таблицы «Дата».
Обратите внимание, что в представлении источника данных появился столбец SimpleDate, содержащий объединенные данные из нескольких столбцов базового источника данных. При этом исходный источник данных изменять не пришлось.
Закройте представление Просмотр таблицы «Дата».
Использование именованных вычислений в качестве имен элементов
После создания именованного вычисления в представлении источника данных это вычисление можно использовать в качестве свойства атрибута.
Использование именованного вычисления в качестве имен элементов
Откройте измерение Date в конструкторе измерений среды SQL Server Data Tools (SSDT). Для этого дважды щелкните измерение Date в узле Измерения в Обозревателе решений.
На панели Атрибуты на вкладке Структура измерения выберите атрибут Date Key.
Если окно «Свойства» не открыто, откройте его и нажмите в строке заголовка кнопку Автоматически скрыть, чтобы оно оставалось открытым.
Ближе к нижней части окна щелкните поле свойства NameColumn и нажмите кнопку обзора (…), чтобы открыть диалоговое окно Столбец имени.
Выберите пункт SimpleDate внизу списка Исходный столбец и нажмите кнопку OK.
В меню Файл выберите команду Сохранить все.
Создание иерархии
Новую иерархию можно создать, перетащив атрибут с панели Атрибуты на панели Иерархии.
Создание иерархии
На вкладке Структура измерений конструктора измерений для измерения Дата перетащите атрибут Календарный год из панели Атрибуты в панель Иерархии.
Перетащите атрибут Calendar Semester из панели Атрибуты в ячейку <новый уровень> на панели Иерархии под уровнем Calendar Year.
Перетащите атрибут Calendar Quarter с панели Атрибуты в ячейку <новый уровень> на панели Иерархии под уровнем Calendar Semester.
Перетащите атрибут English Month Name из панели Атрибуты в ячейку <новый уровень> на панели Иерархии под уровнем Calendar Quarter.
Перетащите атрибут Date Key из панели Атрибуты в ячейку <новый уровень> на панели Иерархии под уровнем English Month Name.
На панели Иерархии щелкните правой кнопкой мыши строку заголовка окна Иерархия, выберите команду Переименовать и введите Календарная дата.
Щелкнув правой кнопкой мыши по контекстному меню, в иерархии Календарная дата измените имя уровня Имя месяца на английском на Календарный месяц, а имя уровня Ключ даты — на Дата.
Удалите атрибут Резервный ключ полной даты на панели Атрибуты, поскольку он больше не понадобится. Нажмите кнопку OK в окне подтверждения Удалить объекты.
В меню Файл выберите команду Сохранить все.
Определение связей атрибутов
Необходимо определять связи между атрибутами, если базовые данные это поддерживают. Определение связей между атрибутами ускоряет обработку измерений, секций и запросов.
Определение связей атрибутов
В конструкторе измерений в измерении Date перейдите на вкладку Связи атрибутов.
На диаграмме щелкните правой кнопкой мыши атрибут Имя месяца на английском и выберите команду Создать связь атрибутов.
В диалоговом окне Создание связи атрибутов свойство Исходный атрибут имеет значение English Month Name. Задайте для поля Связанный атрибут значение Calendar Quarter.
В списке Тип связи выберите тип связи Жесткая.
Связь имеет тип Жесткая, поскольку связи между элементами не будут меняться с течением времени.
Нажмите кнопку ОК.
На диаграмме щелкните правой кнопкой мыши атрибут Календарный квартал и выберите команду Создать связь атрибутов.
В диалоговом окне Создание связи атрибутов поле Исходный атрибут имеет значение Calendar Quarter. Задайте для поля Связанный атрибут значение Calendar Semester.
В списке Тип связи выберите тип связи Жесткая.
Нажмите кнопку ОК.
На диаграмме щелкните правой кнопкой мыши атрибут Календарное полугодие, а затем выберите команду Создать связь атрибутов.
В диалоговом окне Создание связи атрибутов поле Исходный атрибут имеет значение Calendar Semester. Задайте для поля Связанный атрибут значение Calendar Year.
В списке Тип связи выберите тип связи Жесткая.
Нажмите кнопку ОК.
В меню Файл выберите команду Сохранить все.
Создание уникальных имен для элементов измерения
В этой задаче будут созданы столбцы понятных имен, которые будут использованы для атрибутов EnglishMonthName, CalendarQuarter и CalendarSemester.
Создание уникальных имен для элементов измерения
Чтобы переключиться в представление источника данных Adventure Works DW 2012, дважды щелкните его в папке Представления источников данных в обозревателе решений.
На панели Таблицы щелкните правой кнопкой мыши таблицу 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, а затем нажмите кнопку ОК.
В меню Файл выберите команду Сохранить все.
Развертывание и просмотр изменений
После изменения атрибутов и иерархий необходимо произвести развертывание произведенных изменений и повторную обработку связанных объектов, прежде чем эти изменения можно будет просмотреть.
Развертывание и просмотр изменений
В меню Построение среды SQL Server Data Tools выберите команду Развернуть Analysis Services Tutorial.
Получив сообщение Развертывание выполнено успешно, перейдите на вкладку Браузер окна Конструктор измерений для измерения Дата и щелкните на панели инструментов кнопку повторного соединения.
В списке Иерархия выберите значение Calendar Quarter. Просмотрите элементы иерархии атрибута Calendar Quarter.
Обратите внимание, что имена элементов иерархии атрибута Календарный квартал выглядят более понятно и проще в использовании, поскольку для их отображения создано именованное вычисление. Теперь в иерархии атрибута Календарный квартал есть элементы для каждого квартала каждого года. Элементы не отсортированы в хронологическом порядке. Вместо этого они отсортированы сначала по кварталам, а затем по годам. В следующей задаче этого раздела требуется изменить поведение этой иерархии атрибута, чтобы отсортировать ее элементы сначала по годам, а затем по кварталам.
Просмотрите элементы иерархий атрибутов English Month Name и Calendar Semester.
Обратите внимание, что элементы этих иерархий также не отсортированы в хронологическом порядке. Вместо этого они отсортированы сначала соответственно по месяцам или полугодиям, а затем — по годам. В следующей задаче этого раздела поведение этих иерархий атрибутов будет изменено, чтобы изменить порядок сортировки.
Изменение порядка сортировки путем изменения порядка элементов составных ключей
В этой задаче будет изменен порядок сортировки посредством изменения порядка ключей, составляющих составной ключ.
Изменение порядка элементов составных ключей
Открыв измерение Дата в конструкторе измерений, перейдите на вкладку Структура измерения и выберите Календарное полугодие на панели Атрибуты.
В окне свойств просмотрите значение свойства OrderBy. Оно имеет значение Ключ.
Элементы иерархии атрибута Calendar Semester отсортированы по значению ключа. При составном ключе сортировка ключей элементов ведется упорядочение сначала по значению первого ключа элемента, а затем — по значению второго ключа элемента. Иными словами, элементы иерархии атрибута Календарное полугодие отсортированы сначала по полугодиям, а затем по годам.
В окне свойств нажмите кнопку обзора (...), чтобы изменить значения свойства KeyColumns.
В списке Ключевые столбцы в диалоговом окне Ключевые столбцы выберите столбец CalendarSemester, а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК.
Теперь элементы этой иерархии атрибута отсортированы сначала по годам, а затем по полугодиям.
Выберите Календарный квартал на панели Атрибуты и нажмите кнопку обзора (...) для свойства KeyColumns в окне свойств.
В списке Ключевые столбцы диалогового окна Ключевые столбцы выделите столбец CalendarQuarter, а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК.
Теперь элементы этой иерархии атрибута отсортированы сначала по годам, а затем по кварталам.
На панели Атрибуты выберите элемент English Month Nameа, а затем в окне свойств нажмите кнопку с многоточием (...) для свойства KeyColumns.
В списке Ключевые столбцы диалогового окна Ключевые столбцы выделите столбец EnglishMonthName, а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК.
Теперь элементы этой иерархии атрибута отсортированы сначала по годам, а затем по месяцам.
В меню Построение среды SQL Server Data Tools выберите команду Развернуть Analysis Services Tutorial. После успешного завершения развертывания в конструкторе измерений перейдите на вкладку Браузер и выберите измерение Дата.
На панели инструментов вкладки Браузер нажмите кнопку повторного соединения.
Просмотрите элементы иерархий атрибутов Calendar Quarter и Calendar Semester.
Обратите внимание, что теперь элементы этих иерархий атрибутов сортируются в хронологическом порядке, по годам, а затем по полугодиям или кварталам соответственно.
Просмотрите элементы иерархии атрибута English Month Name.
Обратите внимание, что теперь элементы этой иерархии атрибута сортируются сначала по годам, а затем по месяцам в алфавитном порядке. Причина этого заключается в том, что столбец EnglishCalendarMonth в представлении источника данных имеет строковый тип данных, который основан на типе данных nvarchar базовой реляционной базы данных. Сведения о сортировке по месяцам хронологически внутри года см. в разделе Сортировка элементов атрибута по вторичному атрибуту.