Пользовательские иерархии
Применимо к: 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.
В этой таблице измерения столбец ParentOrganizationKey имеет связь по внешнему ключу с первичным ключевым столбцом OrganizationKey . Другими словами, каждая запись в этой таблице может быть соотнесена посредством связи типа «родители-потомки» с другой записью в таблице. Подобный тип самосоединения обычно используется для представления данных сущности организации (например, структуры управления сотрудниками в отделе).
При создании иерархии типа «родители-потомки» столбцы, представленные обоими атрибутами, должны иметь одинаковый тип данных. Оба атрибута также должны находиться в одной и той же таблице. По умолчанию любой элемент, «родительский» ключ которого равен его собственному ключу элемента, значению NULL, 0 (нулю) или значению, отсутствующему в столбце для ключей элементов, считается элементом верхнего уровня (исключая уровень «Все»).
Глубина иерархии типа «родители-потомки» может изменяться между ее иерархическими ветвями. Иными словами, иерархия типа «родители-потомки» считается несбалансированной.
В отличие от пользовательских иерархий, в которых общее количество уровней определяет число уровней, видимое конечному пользователю, иерархия типа «родители-потомки» определяется единственным уровнем иерархии атрибутов, а значения в нем реализуют несколько уровней, видимых конечными пользователями. Количество отображаемых уровней зависит от содержимого столбца таблицы измерения, в котором хранятся ключи элементов и «родительские» ключи. Количество уровней может изменяться при изменении данных в таблицах измерения. Дополнительные сведения см. в разделах Родительские и дочерние измерения и Атрибуты в Parent-Child Иерархии.
См. также:
Создание пользовательских иерархий
Свойства пользовательской иерархии
Справочник по свойствам атрибута измерения