Введение в OLAP и хранилища данных

OLAP-куб. Создание иерархий третьего измерения

В разделе показана настройка измерения Product в кубе: создание вычисляемого поля для расшифровки однобуквенных кодов продуктовых линеек, настройка отображаемых имён для Product Key и Product Line, построение иерархии Product Line → Model Name → Product Name, распределение атрибутов по папкам, настройка All Products. Логика идёт от подготовки атрибутов к иерархии, затем к развёртыванию и проверке в браузере.

Основные мысли

В результате изучения лекции слушатель будет способен:
1. Объяснять назначение вычисляемого поля Product Line Name для расшифровки кодов продуктовых линеек.
2. Создавать вычисляемое поле в таблице Product и проверять его через просмотр данных.
3. Настраивать Name Column для отображения понятных значений вместо ключей и кодов.
4. Строить иерархию Product Line → Model Name → Product Name и задавать связи между уровнями.
5. Обосновывать выбор гибкой связи Flexible для продуктовой иерархии.
6. Распределять атрибуты по папкам Stocking, Financial и History.
7. Настраивать All Member Name на уровне иерархии и измерения.
8. Выполнять развёртывание и полный пересчёт куба, проверять результат в браузере.
Показывать лекцию целиком
Краткое изложение

1. Создание вычисляемого поля для продуктовой линейки

Переходим к изменению иерархии измерения Product. Сначала, как и для измерения Customer, открываем таблицу Product и создаём вычисляемое поле. Для этого выбираем таблицу Product, нажимаем правой кнопкой мыши и выбираем New Name Calculation. Называем поле Product Line Name.

В атрибуте Product Line хранятся однобуквенные коды продуктовых линеек:

Одна буква неудобна для отчёта, поэтому вычисляемое поле расшифровывает код. Вставляем нужный код, нажимаем OK. Поле появляется в списке. Через Explore Data можно проверить результат: исходный Product Line остаётся однобуквенным, а Product Line Name показывает полное название. Сохраняем изменения.

2. Настройка отображения атрибутов в измерении Product

Переходим на уровень измерения Product. Для атрибута Product Line нужно вместо одной буквы выводить полное название. Используем свойство Name Column: оно определяет, какое значение выводить на печать. Указываем Product Line Name.

Для Product Key логика похожая. Ключ продукта не несёт полезной информации для пользователя. Переименовываем Product Key в Product Name, а в качестве Name Column выбираем English Product Name. Сам ключ остаётся, но при визуализации вместо него отображается название продукта. Нажимаем OK.

3. Создание иерархии

Создаём иерархию:

Product LineModel NameProduct Name.

Настраиваем связи:

Связь оставляем Flexible (гибкая), потому что разделение на продуктовые линейки и модели внутри магазина может меняться. Это не жёсткая иерархия. Нажимаем OK. Проверяем: предупреждений по иерархии нет, элементы для отображения подставлены правильно. Переименовываем иерархию в Product Model Lines.

4. Распределение атрибутов по папкам

Атрибуты группируем по смыслу:

Так навигация по атрибутам становится удобнее.

5. Настройка All Member Name

Для иерархии Product Model Lines открываем свойства и меняем All Member Name. Вместо стандартного «All» указываем All Products. Это слово появляется при сворачивании подмножества в Excel или другом клиенте.

Затем то же значение All Products задаём на уровне всего измерения Product, чтобы для всех иерархий результат свёртки назывался одинаково.

6. Развёртывание и проверка

Сохраняемся и выполняем Deploy куба. Деплой проходит успешно. Делаем полный reprocess (пересчёт) куба. Открываем браузер.

В измерении Customer иерархия Customer Geography по-прежнему показывает «All». В измерении Product появляется иерархия Product Model Lines. Атрибуты рассортированы по папкам. При развёртывании видим All Products, затем полные названия продуктовых линеек: Accessory, Components, Mountain, Road, Touring. Внутри линейки отображаются модели, внутри модели — конкретные товары. Например, в Accessory можно увидеть одну модель с несколькими размерами: S, M, L.

Осталось настроить измерение Date.

Краткие итоги

Настройка измерения Product показывает, как техническая структура куба превращается в удобный аналитический инструмент. Сначала однобуквенные коды продуктовых линеек расшифровываются через вычисляемое поле Product Line Name. Это отделяет хранение кода от его бизнес-смысла и позволяет пользователю видеть в отчётах понятные названия: Mountain, Road, Accessory, Touring, Components. Затем Name Column связывает ключевые атрибуты с отображаемыми значениями: Product Line показывает полное название линейки, а Product Key, переименованный в Product Name, выводит English Product Name. Ключ при этом сохраняется для связей и вычислений, но исчезает из пользовательского представления. Такой приём уменьшает зависимость отчётов от технических идентификаторов и повышает читаемость данных.

Иерархия Product Line → Model Name → Product Name задаёт естественный путь анализа: от продуктовой линейки к модели и конкретному товару. Связь Flexible отражает изменчивость бизнес-структуры: принадлежность модели к линейке или товара к модели может пересматриваться. Жёсткая связь здесь была бы менее устойчивой к изменениям. Папки Stocking, Financial и History упорядочивают атрибуты по смыслу: запасы, цены и история жизненного цикла товара. Это упрощает навигацию в клиентских инструментах и снижает вероятность ошибок при построении отчётов.

Настройка All Member Name на уровне иерархии и измерения делает свёрнутые узлы понятными: вместо «All» пользователь видит «All Products». Такая деталь улучшает восприятие отчётов и единообразие подписей. Завершающий деплой и полный пересчёт куба подтверждают, что изменения применены. Проверка в браузере показывает, что Product Line, Product Name, модели и товары отображаются корректно. Практическая ценность подхода в том, что аналитик получает куб, готовый к drill-down и формированию отчётности, а пользователь работает с бизнес-терминами, а не с кодами. Остаётся настроить измерение Date, после чего куб становится полноценным для дальнейшего анализа.

Настройка измерения Product продолжает работу с иерархиями в кубе. Сначала в таблице Product создаётся вычисляемое поле Product Line Name через New Name Calculation. Оно расшифровывает однобуквенный код атрибута Product Line:

Проверить поле можно через Explore Data: исходный Product Line остаётся буквой, а Product Line Name показывает полное название. Изменения сохраняются.

В измерении Product для атрибута Product Line настраивается Name Column = Product Line Name, чтобы вместо кода выводилось полное название. Для Product Key логика та же: ключ неинформативен, поэтому атрибут переименовывается в Product Name, а Name Column = English Product Name. Сам ключ сохраняется, но в отчётах отображается название продукта.

Создаётся иерархия:

Product LineModel NameProduct Name.

Связи: Product NameModel Name, Model NameProduct Line. Связь оставляется Flexible, потому что структура линеек и моделей может меняться. Иерархия переименовывается в Product Model Lines.

Атрибуты группируются:

Для иерархии и для измерения Product задаётся All Member Name = All Products. Тогда при сворачивании вместо «All» отображается «All Products».

После сохранения выполняется Deploy, затем полный reprocess. В браузере проверяется: Customer Geography по-прежнему показывает «All»; в Product появляется Product Model Lines; в ней All Products, полные названия линеек Accessory, Components, Mountain, Road, Touring; внутри линеек — модели; внутри моделей — товары, например в Accessory несколько размеров S, M, L. Остаётся настроить измерение Date.

Выводы

1. Вычисляемое поле Product Line Name расшифровывает однобуквенные коды продуктовых линеек.
2. Коды M, R, A, T, C соответствуют Mountain, Road, Accessory, Touring, Components.
3. Name Column позволяет выводить понятное значение вместо кода или ключа.
4. Для Product Line в измерении Product настраивается отображение через Product Line Name.
5. Product Key переименован в Product Name и отображает English Product Name.
6. Иерархия Product Model Lines включает уровни Product Line, Model Name, Product Name.
7. Связи иерархии оставлены Flexible из-за возможных изменений структуры.
8. Атрибуты сгруппированы в папки Stocking, Financial, History.
9. All Member Name для иерархии и измерения задан как All Products.
10. После изменений выполняется Deploy и полный reprocess.
11. В браузере проверяются подписи, линейки, модели и товары.
12. Измерение Date остаётся последним ненастроенным измерением.

Вопросы для самопроверки

1. Зачем в таблице Product создаётся вычисляемое поле Product Line Name?
2. Какие буквенные коды используются в Product Line и что они обозначают?
3. Как Name Column влияет на отображение атрибута?
4. Что изменяется для Product Line в измерении Product?
5. Что происходит с Product Key при настройке отображения?
6. Какие уровни образуют иерархию Product Model Lines?
7. Как настроены связи между уровнями иерархии и почему?
8. Какие атрибуты входят в папку Stocking?
9. Какие атрибуты относятся к Financial?
10. Какие атрибуты относятся к History?
11. Где и как настраивается All Products?
12. Какие действия выполняются после изменения куба и что проверяется в браузере?
Вернуться к учебному плану