Группирование элементов атрибутов
При просмотре куба обычно выполняется распределение по измерениям элементов одной иерархии атрибута на основе элементов другой иерархии атрибута. Например, можно сгруппировать продажи по таким признакам, как город, приобретенный товар или пол. Однако при работе с некоторыми типами атрибутов лучше группировать их элементы автоматически с использованием служб SSAS, основываясь на распределении элементов в рамках иерархии атрибута. Например, с помощью служб SSAS можно объединить заказчиков в группы на основе их годового дохода. При этом пользователь, просматривающий иерархию атрибута, будет видеть названия и значения групп вместо самих элементов групп. Данный подход ограничивает количество отображаемых уровней, что упрощает анализ данных.
Группа элементов является созданным системой набором последовательных элементов измерения. В службах SSAS элементы атрибута могут группироваться в различные группы элементов в ходе процесса, называемого дискретизацией. Уровень в иерархии содержит либо группы элементов, либо элементы, но не и то, и другое сразу. Когда пользователи выполняют обзор уровня, содержащего группы элементов, они видят имена и значения ячеек групп элементов. Элементы, формируемые службами SSAS для поддержания групп членов, называются элементами группирования и выглядят как обычные элементы.
Свойство DiscretizationMethod определяет, создают ли службы SSAS группирования, а также определяет тип выполняемого группирования. По умолчанию в службах Analysis Services группирование не выполняется. Возможные значения свойства DiscretizationMethod приведены в Таблица 9.
Таблица 10. Значения свойства DiscretizationMethod
Значение DiscretizationMethod | Описание |
None | Позволяет отобразить элементы. |
Automatic | Выбирает метод, наилучшим образом представляющий данные: метод EqualAreas или метод Clusters. |
EqualAreas | Пытается разделить элементы в атрибуте на группы, содержащие равное количество элементов. |
Clusters | Пытается разделить элементы в атрибуте на группы с помощью выборки обучающих данных, инициализии для определенного количества случайных точек и выполнения нескольких итераций алгоритма кластеризации максимизации ожидания (EM). Метод полезен, т.к. он работает с любой кривой распределения, но для его выполнения требуется больше времени. |
После выбора метода группирования необходимо указать количество групп, используя свойство DiscretizationBucketCount.
Свойство DiscretizationNumber атрибута определяет количество отображаемых групп. Если свойству задано значение по умолчанию 0, службы SSAS определяют количество групп с помощью выборки или чтения данных, в зависимости от настройки свойства DiscretizationMethod).
Порядок сортировки элементов в группах элементов контролируется при помощи свойства OrderBy атрибута. Последовательное построение элементов групп основано на этом порядке сортировки.
Группы элементов обычно используются для детализации с уровня с немногими элементами до уровня со многими элементами. Чтобы пользователи имели возможность выполнять детализацию между уровнями, измените свойство DiscretizationMethod атрибута для уровня, содержащего много элементов, с None на один из методов дискретизации, описанных в предыдущей таблице.
Например, пусть измерение Client содержит иерархию атрибутов Client Name с 500 000 элементов. Можно переименовать атрибут Client Groups и задать свойству DiscretizationMethod значение Automatic для отображения групп элементов на уровне элементов иерархии атрибутов.
Для детализации до отдельных клиентов в каждой группе можно создать другую иерархию атрибутов Client Name, привязанную к тому же столбцу в таблице. Затем создайте новую пользовательскую иерархию на основе двух атрибутов. Верхний уровень будет основываться на атрибуте Client Groups, нижний уровень — на атрибуте Client Name. Свойство IsAggregatable будет True на обоих атрибутах. После этого пользователь может раскрыть уровень (All) в иерархии для просмотра элементов группы, а также раскрыть элементы группы для просмотра конечных элементов иерархии. Чтобы скрыть уровень группы или клиента, можно задать свойству AttributeHierarchyVisible значение False для соответствующего атрибута.