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


Пользовательские иерархии

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

Определяемые пользователем иерархии — это определяемые пользователем иерархии атрибутов, которые используются в Microsoft SQL Server SQL Server Analysis Services для упорядочения элементов измерения в иерархические структуры и предоставления путей навигации в кубе. Например, в следующей таблице определена таблица измерения для измерения времени. Эта таблица измерения поддерживает три атрибута: «Год», «Квартал» и «Месяц».

Year Quarter Month
1999 Квартал 1 Январь
1999 Квартал 1 Февраль
1999 Квартал 1 Март
1999 Квартал 2 Апрель
1999 Квартал 2 Май
1999 Квартал 2 Июнь
1999 Квартал 3 Июль
1999 Квартал 3 Август
1999 Квартал 3 Сентябрь
1999 Квартал 4 Окт
1999 Квартал 4 Ноябрь
1999 Квартал 4 Dec

Атрибуты «Год», «Квартал» и «Месяц» используются для построения пользовательской иерархии «Календарь» в измерении времени. Связь между уровнями и элементами измерения «Календарь» (обычного измерения) показана на следующей диаграмме.

Иерархия уровней и элементов для измерения времени

Примечание

Любая иерархия, отличная от двухуровневой иерархии атрибутов по умолчанию, называется пользовательской иерархией. Дополнительные сведения об иерархиях атрибутов см. в разделе Атрибуты и Иерархии атрибутов.

Структуры элементов

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

Сбалансированные иерархии

В сбалансированной иерархии все ветви иерархии опускаются до одного уровня, и логическим «родителем» каждого элемента является уровень непосредственно над элементом. Хорошим примером сбалансированной иерархии является иерархия Категорий продуктов измерения Product в примере Adventure Works DW Multidimensional 2012 SQL Server Analysis Services базы данных. Каждый элемент уровня «Имя продукта» имеет «родительский» элемент на уровне «Подкатегория», который в свою очередь имеет «родительский» элемент на уровне «Категория». Кроме того, каждая ветвь иерархии имеет конечный элемент на уровне «Название продукта».

Несбалансированные иерархии

В несбалансированной иерархии ветви иерархии опускаются до различных уровней. Иерархии типа «родители-потомки» являются несбалансированными. Например, измерение Организации в примере Adventure Works DW Multidimensional 2012 SQL Server Analysis Services базы данных содержит по одному члену для каждого сотрудника. Генеральный директор является верхним элементом в иерархии, а руководители подразделений и исполнительный секретарь находятся непосредственно под генеральным директором. Руководители подразделений имеют подчиненные элементы, а исполнительный секретарь — нет.

Для конечных пользователей может быть невозможно провести различие между несбалансированными и клочковатыми иерархиями. Однако вы используете различные методы и свойства в SQL Server Analysis Services для поддержки этих двух типов иерархий. Дополнительные сведения см. в разделах Неорванные иерархии и Атрибуты в Parent-Child Иерархии.

Неоднородные иерархии

В неоднородной иерархии по крайней мере у одного элемента логический родитель не находится ровно на один уровень выше самого элемента. Это может привести к тому, что ветви иерархии опускаются до различных уровней. Например, в измерении «География», определенном с уровнями «Континент», «Страна» и «Город» именно в этом порядке, элемент «Европа» отображается на верхнем уровне иерархии, элемент «Франция» отображается на среднем уровне, а элемент «Париж» — на нижнем уровне. «Франция» является более точным определением, чем «Европа», а «Париж» является более точным определением, чем «Франция». В эту обычную иерархию вносятся следующие изменения.

  • Элемент «Ватикан» добавляется к уровню «Страна».

  • Элементы добавляются к уровню «Город» и связываются с элементом «Ватикан» уровня «Страна».

  • Уровень с именем «Район» добавляется между уровнями «Страна» и «Город».

Уровень «Район» заполняется элементами, связанными с другими элементами уровня «Страна», а элементы уровня «Город» связываются соответствующими им элементами уровня «Район». Однако поскольку элемент «Ватикан» уровня «Страна» не имеет связанных с ним элементов уровня «Район», элементы с уровня «Город» должны быть непосредственно связаны с элементом «Ватикан» уровня «Страна». В результате произведенных изменений иерархия измерения стала неровной. Родительским элементом города «Ватикан» является страна «Ватикан», которая не находится на уровне непосредственно над элементом «Ватикан» уровня «Город». Дополнительные сведения об иерархиях см. в разделе Неоднородные иерархии.

Иерархии типа «родители-потомки»

Иерархии типа «родители-потомки» для измерений определяются с использованием специального атрибута, называемого «родительским», для определения того, как элементы относятся друг к другу. Родительский атрибут описывает связь, ссылающуюся на себя(или самосоединение) в пределах главной таблицы измерения. Иерархии типа «родители-потомки» создаются из одного родительского атрибута. Иерархии типа «родители-потомки» присваивается только один уровень, поскольку присутствующие в ней уровни наследуют связи типа «родители-потомки» между элементами, связанными с родительским атрибутом. Схема измерения иерархии типа «родители-потомки» зависит от связи, ссылающейся на себя, присутствующей в главной таблице измерения. Например, на следующей схеме показано измерение DimOrganization main таблице в примере базы данных Adventure Works DW Multidimensional 2012SQL Server Analysis Services.

Самосоединение в таблице DimOrganization

В этой таблице измерения столбец ParentOrganizationKey имеет связь по внешнему ключу с первичным ключевым столбцом OrganizationKey . Другими словами, каждая запись в этой таблице может быть соотнесена посредством связи типа «родители-потомки» с другой записью в таблице. Подобный тип самосоединения обычно используется для представления данных сущности организации (например, структуры управления сотрудниками в отделе).

При создании иерархии типа «родители-потомки» столбцы, представленные обоими атрибутами, должны иметь одинаковый тип данных. Оба атрибута также должны находиться в одной и той же таблице. По умолчанию любой элемент, «родительский» ключ которого равен его собственному ключу элемента, значению NULL, 0 (нулю) или значению, отсутствующему в столбце для ключей элементов, считается элементом верхнего уровня (исключая уровень «Все»).

Глубина иерархии типа «родители-потомки» может изменяться между ее иерархическими ветвями. Иными словами, иерархия типа «родители-потомки» считается несбалансированной.

В отличие от пользовательских иерархий, в которых общее количество уровней определяет число уровней, видимое конечному пользователю, иерархия типа «родители-потомки» определяется единственным уровнем иерархии атрибутов, а значения в нем реализуют несколько уровней, видимых конечными пользователями. Количество отображаемых уровней зависит от содержимого столбца таблицы измерения, в котором хранятся ключи элементов и «родительские» ключи. Количество уровней может изменяться при изменении данных в таблицах измерения. Дополнительные сведения см. в разделах Родительские и дочерние измерения и Атрибуты в Parent-Child Иерархии.

См. также:

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