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