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


Урок 3–4. Изменение измерения даты

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

В ходе выполнения задач этого раздела мы создадим определяемую пользователем иерархию и изменим имена элементов, отображаемых для атрибутов «Дата», «Месяц», «Календарный квартал» и «Календарное полугодие». Также мы определим составные ключи для атрибутов, настроим порядок сортировки элементов измерения и зададим связи атрибутов.

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

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

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

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

  2. Ближе к нижней части панели Таблицы щелкните правой кнопкой мыши таблицу Датаи выберите команду Создание именованного вычисления.

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

    DATENAME(mm, FullDateAlternateKey) + ' ' +  
    DATENAME(dd, FullDateAlternateKey) + ', ' +  
    DATENAME(yy, FullDateAlternateKey)  
    

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

  4. Нажмите кнопку ОК, а затем разверните таблицу Дата на панели Таблицы .

    Именованное вычисление SimpleDate отображается в списке столбцов таблицы "Дата" со значком, обозначающим, что это именованное вычисление.

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

  6. На панели Таблицы щелкните правой кнопкой мыши таблицу Датаи выберите пункт Просмотр данных.

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

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

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

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

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

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

  1. Откройте Designer измерения для измерения Дата в SQL Server Data Tools. Для этого дважды щелкните измерение Date в узле Измерения в обозревателе решений.

  2. На панели Атрибуты на вкладке Структура измерения выберите атрибут Date Key .

  3. Если окно "Свойства" не открыто, откройте его и нажмите в строке заголовка кнопку Автоматически скрывать , чтобы оно оставалось открытым.

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

  5. Выберите пункт SimpleDate внизу списка Исходный столбец и нажмите кнопку OK.

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

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

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

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

  1. На вкладке Структура измерения конструктора измерений для измерения Дата перетащите атрибут Календарный год с панели Атрибуты на панель Иерархии .

  2. Перетащите атрибут Calendar Семестр из области <Атрибуты в новую ячейку уровня> в области Иерархии под уровнем Календарный год.

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

  4. Перетащите атрибут Название месяца на английском языке из области <Атрибуты в новую ячейку уровня> в области Иерархии под уровнем "Календарный квартал".

  5. Перетащите атрибут Date Key из области <Атрибуты в новую ячейку уровня> в области Иерархии под уровнем Название месяца на английском языке.

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

  7. С помощью контекстного меню иерархии Календарная дата измените имя уровня English Month Name на Календарный месяц, а имя уровня Date Key — на Дата.

  8. Удалите атрибут Full Date Alternate Key на панели Атрибуты , так как он больше не понадобится. Нажмите кнопку OK в окне подтверждения Удалить объекты .

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

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

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

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

  1. В конструкторе измерений для измерения Date перейдите на вкладку Связи атрибутов .

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

  3. В диалоговом окне Создание связи атрибутов свойство Исходный атрибут имеет значение English Month Name. Задайте для поля Связанный атрибут значение Календарный квартал.

  4. В списке Тип связи выберите тип Жесткая.

    Связь имеет тип Жесткая , так как связи между элементами не будут меняться с течением времени.

  5. Нажмите кнопку ОК.

  6. На диаграмме щелкните правой кнопкой мыши атрибут Календарный квартал и выберите команду Создать связь атрибутов.

  7. В диалоговом окне Создание связи атрибутов поле Исходный атрибут имеет значение Calendar Quarter. Задайте для поля Связанный атрибут значение Календарное полугодие.

  8. В списке Тип связи выберите тип Жесткая.

  9. Нажмите кнопку ОК.

  10. На диаграмме щелкните правой кнопкой мыши атрибут Календарное полугодие , а затем выберите команду Создать связь атрибутов.

  11. В диалоговом окне Создание связи атрибутов поле Исходный атрибут имеет значение Календарное полугодие. Задайте для поля Связанный атрибут значение Календарный год.

  12. В списке Тип связи выберите тип Жесткая.

  13. Нажмите кнопку ОК.

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

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

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

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

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

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

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

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

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

  4. Нажмите кнопку ОК.

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

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

    'Q' + CONVERT(CHAR (1), CalendarQuarter) +' '+ 'CY ' +  
    CONVERT(CHAR (4), CalendarYear)  
    

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

  7. Нажмите кнопку ОК.

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

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

    CASE  
    WHEN CalendarSemester = 1 THEN 'H1' + ' ' + 'CY' + ' '   
           + CONVERT(CHAR(4), CalendarYear)  
    ELSE  
    'H2' + ' ' + 'CY' + ' ' + CONVERT(CHAR(4), CalendarYear)  
    END  
    

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

  10. Нажмите кнопку ОК.

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

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

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

Определение составного свойства KeyColumns для атрибута English Month Name

  1. Откройте измерение Date и перейдите на вкладку Структура измерения .

  2. На панели Атрибуты щелкните атрибут English Month Name .

  3. В окне Свойства щелкните в поле KeyColumns и нажмите кнопку обзора (...).

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

  5. Столбцы EnglishMonthName и CalendarYear отображаются в списке Ключевые столбцы .

  6. Нажмите кнопку ОК.

  7. Чтобы задать свойство NameColumn атрибута EnglishMonthName , щелкните поле NameColumn в окне свойств и нажмите кнопку обзора (...).

  8. В диалоговом окне Столбец имени в списке Исходный столбец выберите MonthName, а затем нажмите кнопку ОК.

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

Определение составного свойства KeyColumns для атрибута Calendar Quarter

  1. На панели Атрибуты щелкните атрибут Календарный квартал .

  2. В окне Свойства щелкните в поле KeyColumns и нажмите кнопку обзора (...).

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

    Столбцы CalendarQuarter и CalendarYear отображаются в списке Ключевые столбцы .

  4. Нажмите кнопку ОК.

  5. Чтобы задать свойство NameColumn атрибута Календарный квартал , щелкните поле NameColumn в окне свойств и нажмите кнопку обзора (...).

  6. В диалоговом окне Столбец имени в списке Исходный столбец выберите CalendarQuarterDesc, а затем нажмите кнопку ОК.

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

Определение составного свойства KeyColumns для атрибута Calendar Semester

  1. На панели Атрибуты щелкните атрибут Календарное полугодие .

  2. В окне Свойства щелкните в поле KeyColumns и нажмите кнопку обзора (...).

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

    Столбцы CalendarSemester и CalendarYear отображаются в списке Ключевые столбцы .

  4. Нажмите кнопку ОК.

  5. Чтобы задать свойство NameColumn атрибута Календарное полугодие , щелкните поле NameColumn в окне свойств и нажмите кнопку обзора (...).

  6. В диалоговом окне Столбец имени в списке Исходный столбец выберите CalendarSemesterDesc, а затем нажмите кнопку ОК.

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

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

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

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

  1. В меню Сборка SQL Server Data Tools выберите Команду Развернуть учебник по службам Analysis Services.

  2. Получив сообщение Развертывание выполнено успешно , перейдите на вкладку Браузер окна Конструктор измерений для измерения Date и щелкните на панели инструментов кнопку повторного соединения.

  3. В списке Иерархия выберите значение Календарный квартал . Просмотрите элементы иерархии атрибута Календарный квартал .

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

  4. Просмотрите элементы иерархий атрибутов English Month Name и Календарное полугодие .

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

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

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

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

  1. Открыв измерение Date в конструкторе измерений, перейдите на вкладку Структура измерения и выберите Календарное полугодие на панели Атрибуты .

  2. В окне свойств просмотрите значение свойства OrderBy . Оно имеет значение Ключ.

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

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

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

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

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

  6. В списке Ключевые столбцы диалогового окна Ключевые столбцы выделите столбец CalendarQuarter , а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК.

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

  7. На панели Атрибуты выберите элемент English Month Name , а затем в окне свойств нажмите кнопку с многоточием (...) для свойства KeyColumns .

  8. В списке Ключевые столбцы диалогового окна Ключевые столбцы выделите столбец EnglishMonthName , а затем нажмите стрелку вниз, чтобы изменить порядок элементов составного ключа. Нажмите кнопку ОК.

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

  9. В меню Сборка SQL Server Data Tools выберите Команду Развернуть учебник по службам Analysis Services. После успешного завершения развертывания в конструкторе измерений перейдите на вкладку Браузер и выберите измерение Date .

  10. На панели инструментов вкладки Браузер нажмите кнопку повторного соединения.

  11. Просмотрите элементы иерархий атрибутов Календарный квартал и Календарное полугодие .

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

  12. Просмотрите элементы иерархии атрибута English Month Name .

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

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

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

См. также:

Измерения в многомерных моделях