Неоднорідна ієрархія - це обумовлена користувачем ієрархія, що має непарне число рівнів. Як поширеного прикладу можна навести організаційну діаграму, де безпосередніми підлеглими керівників високого рівня є як керівники відділів, так і співробітники цих відділів, або географічну ієрархію, що складається з країни, області та міста, де у деяких міст немає штату або провінції, наприклад у Вашингтона , Ватикану або Нью-Делі.
Для більшості ієрархій в вимірі кожен рівень має стільки ж батьківських елементів, скільки і будь-який інший елемент на тому ж рівні. Неоднорідна ієрархія відрізняється тим, що як мінімум у одного елемента логічний батьківський елемент розташований не рівно на один рівень вище самого елемента. У цьому випадку різні гілки ієрархії закінчуються на різних рівнях. У клієнтських додатках це може небажано ускладнити шляху поглибленої деталізації.
Клієнтські програми працюють з неоднорідними ієрархіями по-різному. Якщо в моделі присутні неоднорідні ієрархії, то для забезпечення їх правильного відображення будьте готові до виконання невеликого додаткового обсягу роботи.
Перш за все перевірте клієнтську програму на предмет обробки шляху поглибленої деталізації. Наприклад, Excel в якості наповнювачів відсутніх значень повторює імена батьківських елементів. Щоб подивитися, як це працює, побудуйте зведену таблицю на основі вимірювання Sales Territory в багатовимірної моделі Adventure Works. У зведеній таблиці з атрибутами Group, Country і Region вимірювання Sales Territory країни, для яких немає значення регіону, отримають заповнювач (в даному випадку повторення батьківського елемента - назви країни). Така поведінка є похідним від якості рядка підключення MDX Compatibility = 1, яке в Excel є незмінним. Якщо клієнт не забезпечує належної деталізації поглибленням, можна спробувати якось це змінити шляхом завдання властивостей моделі.
Цей розділ містить такі підрозділи.
Наявність неоднорідною ієрархії стає проблемою, коли навігація поглибленої деталізацією не дозволяє отримати очікувані значення або їй незручно користуватися. Щоб вирішити проблеми, пов'язані з неоднорідними ієрархіями, розглянемо наступні варіанти.
Використовувати однорідну ієрархію, для кожного рівня за допомогою властивості HideMemberIf вказавши, чи буде відсутній рівень відображатися для користувача. При завданні властивості HideMemberIf також необхідно в рядку підключення вказувати властивість MDXCompatibility. щоб перевизначити роботу навігації за замовчуванням. Інструкції за завданням цих властивостей приведені в цьому розділі.
Створити ієрархію типу «батьки-нащадки», яка явно керує елементами рівня. Цей метод проілюстровано в статті Неоднорідна ієрархія в службах SSAS (запис в блозі). Додаткові відомості див. У розділі електронної документації Вимірювання «батьки-нащадки». Недолік ієрархії типу «батьки-нащадки» полягає в тому, що вимір може мати лише одну таку ієрархію. Крім того, обчислення агрегатів для проміжних елементів зазвичай негативно відбивається на продуктивності.
У таблиці змінного вимірювання логічно відсутні елементи можуть представлятися різними способами. Стовпчики таблиці можуть містити правила, порожні рядки або значення батьківських елементів (коли вони служать заповнювачами). Подання наповнювачів визначається станом заповнювач дочірнього елемента, що задається властивістю HideMemberIf і властивістю рядка підключення MDX Compatibility для клієнтського додатка.
Для клієнтських додатків, що підтримують відображення неоднорідних ієрархій, за допомогою цих властивостей можна приховати логічно відсутні елементи.
У SSDT двічі клацніть вимір, щоб відкрити його в конструкторі вимірювань. На першій вкладці «Структура вимірювання» на панелі «Ієрархії» відображається ієрархія атрибутів.
Клацніть правою кнопкою миші елемент в ієрархії і виберіть Властивості. Встановіть властивість HideMemberIf в одне з описаних далі значень.
Показати значення заповнювача.
Це значення за замовчуванням, яке використовують Excel, SSDT і SSMS. Воно вказує сервера повертати значення наповнювачів при деталізації поглибленням порожніх рівнів в неоднорідній ієрархії. Якщо клацнути значення заповнювача, то деталізацію поглибленням можна буде продовжити аж до дочірніх (кінцевих) вузлів.
В Excel задається рядок підключення до служб Analysis Services. У ній для кожного нового підключення властивість MDX Compatibility завжди встановлюється в значення 1. Це зроблено для забезпечення зворотної сумісності.
Приховати значення заповнювача (значення NULL або копія значення з батьківського рівня), але показувати інші рівні і вузли, що мають відповідні значення.
Для неоднорідних ієрархій зазвичай краще вказувати MDX Compatibility = 2. Звіт служб Служби Reporting Services і деякі сторонні додатки можуть зберігати це значення.