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


Сортировка элементов атрибута по вторичному атрибуту

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

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

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

В задачах данного раздела будет определен новый атрибут в измерении Date на основе существующего столбца базовой таблицы измерения. Созданный атрибут будет использован для сортировки элементов календарного месяца хронологически, а не по алфавиту. Кроме того, будет определен новый атрибут в измерении Customer на основе именованного вычисления, которое будет использовано для сортировки элементов атрибута Commute Distance. В задачах следующего раздела будет изучено, как использовать связи атрибутов для повышения производительности запросов.

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

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

  1. Откройте измерение Date в конструкторе измерений и в окне свойств просмотрите свойство OrderBy для атрибута Month Name.

    Обратите внимание, что элементы атрибута Month Name отсортированы по ключевым значениям.

  2. Перейдите на вкладку Обозреватель, убедитесь, что в списке Иерархии выбрано значение Calendar Date, после чего раскройте уровни пользовательской иерархии и просмотрите порядок сортировки календарных месяцев.

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

  3. Перейдите на вкладку Структура измерения для измерения даты, щелкните правой кнопкой мыши пункт MonthNumberOfYear в области Представление источника данных и выберите команду Создать атрибут из столбца.

  4. В области Атрибуты выберите атрибут Номер месяца года и в окне «Свойства» установите для свойства AttributeHierarchyEnabled значение False. Укажите для свойства AttributeHierarchyOptimizedState значение NotOptimized, а для свойства AttributeHierarchyOrdered — значение False.

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

    ПримечаниеПримечание

    Сортировка по алфавиту свойств в окне «Свойства» упростит задачу, поскольку эти три свойства будут отсортированы и помещены рядом друг с другом.

  5. Перейдите на вкладку Связи атрибутов.

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

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

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

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

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

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

  10. Перейдите на вкладку Структура измерения.

  11. Выберите атрибут Название месяца в области Атрибуты, после чего измените значение свойства OrderBy в окне свойств на AttributeKey, а свойства OrderByAttribute — на Номер месяца года.

  12. В меню Сборка выберите команду Развернуть Analysis Services Tutorial.

  13. После успешного завершения развертывания перейдите на вкладку Обозреватель измерения Date, нажмите кнопку Повторное соединение и просмотрите пользовательские иерархии Календарная дата и Финансовая дата, чтобы убедиться, что месяцы отсортированы в хронологическом порядке.

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

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

Определение связей атрибутов и порядка сортировки в измерении «Заказчик»

Определение связей атрибутов и порядка сортировки в измерении «Заказчик»

  1. Перейдите в конструкторе измерений на вкладку Обозреватель измерения «Заказчик» и просмотрите элементы иерархии атрибута Расстояние до работы.

    Обратите внимание, что элементы иерархии атрибута отсортированы по ASCII-значениям ключа элементов. В этом случае сортировка по имени или ключу атрибута не сортирует расстояние до работы от меньшего к большему. В этой задаче будет выполнена сортировка элементов иерархии атрибута на основе именованного вычисления CommuteDistanceSort, которое присваивает подходящий номер сортировки каждому значению столбца. В целях экономии времени это именованное вычисление уже добавлено в таблицу Customer в представлении источника данных Adventure Works DW. Чтобы просмотреть сценарий SQL, используемый в этом именованном вычислении, перейдите в это представление источника данных. Дополнительные сведения см. в разделе Определение именованных вычислений в представлении источника данных (службы Analysis Services).

    На следующем рисунке показаны элементы иерархии атрибута Расстояние до работы, отсортированные по ASCII-значению ключа элементов.

    Иерархия атрибута Commute Distance

  2. Чтобы перейти на вкладку Структура измерения конструктора измерений для измерения «Заказчик», щелкните правой кнопкой пункт CommuteDistanceSort в таблице Заказчик в области Представление источника данных и выберите команду Создать атрибут из столбца.

  3. В области Атрибуты выберите атрибут Сортировка по расстоянию до работы, затем укажите для свойства AttributeHierarchyEnabled этого атрибута значение False. В окне свойств укажите для свойства AttributeHierarchyOptimizedState значение NotOptimized, а для свойства AttributeHierarchyOrdered — значение False.

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

  4. Выберите атрибут География, в окне свойств задайте для его свойства AttributeHierarchyVisible значение False, для свойства AttributeHierarchyOptimizedState — значение NotOptimized, а для свойства AttributeHierarchyOrdered — значение False.

    Установка этих значений скроет атрибут от пользователей и сократит время обработки. Этот атрибут не будет использоваться для просмотра. Он может быть использован только для упорядочивания элементов другого атрибута. Поскольку атрибут География имеет свойства элемента, его свойство AttributeHierarchyEnabled должно иметь значение True. Таким образом, чтобы скрыть атрибут, необходимо присвоить его свойству AttributeHierarchyVisible значение False.

  5. Перейдите на вкладку Связи атрибутов.

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

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

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

    Связь между элементами атрибута Расстояние до работы и Сортировка по расстоянию до работы не меняется со временем.

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

    Теперь можно приступить к определению порядка сортировки атрибута Расстояние до работы.

  10. Перейдите на вкладку Структура измерения.

  11. В области Атрибуты выберите атрибут Расстояние до работы, затем в окне свойств измените значение свойства OrderBy на AttributeKey, а значение свойства OrderByAttribute на Сортировка по расстоянию до работы.

  12. В меню Сборка выберите команду Развернуть Analysis Services Tutorial.

  13. После успешного завершения развертывания перейдите на вкладку Обозреватель конструктора измерений для измерения «Заказчик», нажмите кнопку Повторное соединение и просмотрите иерархию атрибута Расстояние до работы.

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

    Повторно отсортированная иерархия атрибута Commute Distance