Создание первого измерения: Date
Физическое и виртуальное представление
Первый dimension — измерение (dimension) — называется Date.
На уровне структуры кажется, что оно одно, но фактически в кубе будет три измерения. Причина: таблица Date
связана с Internet Sales (продажи через Интернет) тремя связями. Для каждого ключа нужна своя роль измерения.
Все три измерения аналогичны по структуре, потому что строятся на одной физической таблице дат.
На уровне метаданных куба они отображаются как три виртуальных измерения на базе одного
физического измерения Date. Куб физически не хранится в таблицах; он имеет многомерную структуру.
Таблица в интерфейсе — это визуализация и метаописание.
Выбор источника и ключа
Мы создаём измерение не «с нуля», а на основе одной из таблиц, пришедших из источника. Выбираем таблицу DATE.
Её ключевое поле определяется автоматически, потому что первичный ключ уже указан в источнике. Если бы данные собирались
из нескольких источников и первичный ключ не был назначен, его можно было бы обозначить на этом шаге.
По умолчанию включён Date Key (ключ даты). Дополнительно берём Full Date Alternate Key
(альтернативный ключ полной даты).
Выбор атрибутов
Для измерения выбираем:
- English Month Name — английское название месяца;
- Calendar Quarter — календарный квартал;
- Calendar Year — календарный год;
- Calendar Semester — календарный семестр, то есть полугодие;
- Full Date Alternate Key — полную дату.
Не используем:
- Financial Year — финансовый год, потому что он не совпадает с календарным;
- квартал-семестр для бухгалтерской отчётности;
- названия месяцев на испанском и французском;
- номер недели в году;
- номер дня в году;
- номер дня в месяце, так как он уже содержится в полной дате.
Month Number of Year — номер месяца в году — сейчас не загружаем. Но он понадобится позже для правильной
сортировки месяцев: по названию январь начинается с «Я», а апрель с «А», поэтому алфавитный порядок не совпадает
с календарным. Настройка таких интеллектуальных компонентов куба будет выполнена ближе к концу его создания.
Типы данных и завершение
Для Full Date Alternate Key выбираем тип Date. Для English Month Name
выбираем подходящий текстовый тип. Quarter соответствует Calendar Quarter,
Year — календарному году, Semester — Calendar Half Year (полугодие).
После выбора нажимаем Next и Finish. Справа на диаграмме измерения видна таблица-источник
и все её поля. Слева отображаются атрибуты, перенесённые для построения измерения. Ключевое поле подставляется автоматически.
В итоге для формирования измерения из источника взяты квартал, полугодие, год, английское название месяца и полная дата.
Краткие итоги
Первый опыт проектирования измерения показывает, что видимая простота скрывает несколько уровней модели. Одна физическая
таблица дат может обслуживать несколько ролей в кубе, если фактовая таблица ссылается на неё разными ключами. Поэтому
проектировщик должен заранее различать физический источник и виртуальную структуру метаданных: то, что хранится один раз,
в аналитической модели может отображаться несколько раз с разными именами и связями. Практический смысл такого разделения
в том, что пользователь получает корректные срезы по разным датам, не дублируя данные в источнике.
Выбор таблицы-источника и ключа — фундамент. Если ключ уже определён в источнике, система подставляет его автоматически;
если данные собираются из нескольких источников, ответственность за явное назначение ключа лежит на разработчике.
Ошибка на этом этапе приводит к нестабильным связям и неверной агрегации.
Отбор атрибутов подчинён задачам анализа. В измерение включаются только те поля, которые нужны для навигации и группировки:
месяц, квартал, год, полугодие, полная дата. Лишние поля, например финансовый год, альтернативные языковые названия,
номера недель и дней, увеличивают размерность и усложняют модель без пользы для текущего сценария. Однако часть атрибутов
может понадобиться позже. Номер месяца не участвует в отображении, но решает проблему сортировки: текстовые названия
месяцев нельзя упорядочить по алфавиту так, чтобы январь шёл перед февралём. Это показывает, что модель должна сочетать
удобные для пользователя подписи и служебные поля для правильного порядка.
Типы данных также влияют на качество модели. Полная дата должна оставаться датой, а название месяца — текстом. Иначе
сортировка, фильтрация и вычисления могут работать неверно.
Наконец, завершение создания измерения — не конец настройки. После появления структуры предстоит насытить куб
интеллектуальными компонентами: правильной сортировкой, иерархиями и связями с предметной областью. Такой подход снижает
риск ошибок на уровне отчётов и делает аналитическую модель предсказуемой для пользователя.
Создание измерения Date
Первый dimension — измерение Date. Одна физическая таблица Date даёт три
виртуальных измерения на уровне метаданных куба, потому что Date связана
с Internet Sales тремя связями. Все три аналогичны по структуре. Куб физически хранится многомерно;
таблица в интерфейсе — визуализация и метаописание.
Источник и ключ
Измерение создаётся на основе существующей таблицы источника — DATE. Ключевое поле
Date Key определяется автоматически, так как первичный ключ уже указан в источнике. Если ключ
не назначен при сборе из нескольких источников, его можно задать вручную. Дополнительно берётся
Full Date Alternate Key.
Атрибуты
Выбираются: English Month Name, Calendar Quarter, Calendar Year,
Calendar Semester (полугодие), Full Date Alternate Key. Не используются:
Financial Year, квартал-семестр для бухгалтерской отчётности, испанские и французские названия месяцев,
номер недели, номер дня в году, номер дня в месяце. Month Number of Year сейчас не загружается,
но позже нужен для сортировки месяцев, потому что алфавитный порядок названий не совпадает с календарным.
Типы и завершение
Для Full Date Alternate Key выбирается тип Date, для English Month Name
— текстовый. Quarter — это Calendar Quarter, Year — календарный год,
Semester — Calendar Half Year. Создание завершается кнопками Next
и Finish. Справа видна таблица-источник со всеми полями, слева — выбранные атрибуты. Ключевое поле
подставляется автоматически. Позже в кубе нужно настроить интеллектуальные компоненты, включая правильную сортировку.
1. Одна физическая таблица Date может отображаться в кубе как три виртуальных измерения, если с ней связано три ключа Internet Sales.
2. Физическое хранение куба многомерное, а табличное представление служит визуализацией и метаописанием.
3. Измерение создаётся на основе существующей таблицы источника, а не с нуля.
4. Первичный ключ подставляется автоматически, если он задан в источнике; иначе его нужно назначить вручную.
5. Для Date выбраны полная дата, название месяца, квартал, год и полугодие.
6. Финансовый год и квартал-семестр не используются, так как не совпадают с календарным годом.
7. Номер месяца не загружается сейчас, но позже нужен для правильной сортировки месяцев.
8. Названия месяцев нельзя корректно сортировать по алфавиту: январь и апрель нарушают календарный порядок.
9. Для Full Date Alternate Key выбирается тип Date, для English Month Name — текстовый тип.
10. После выбора атрибутов создание измерения завершается кнопками Next и Finish.
11. Справа на диаграмме видны поля источника, слева — выбранные атрибуты.
12. Ключевое поле при создании измерения не запрашивается, а подставляется автоматически.
1. Почему одно физическое измерение Date может дать три виртуальных измерения?
2. Чем физическое хранение куба отличается от его табличного отображения?
3. Из какой таблицы создаётся измерение Date?
4. Как определяется ключевое поле при создании измерения?
5. Что делать, если первичный ключ не был назначен в источнике?
6. Какие атрибуты были выбраны для измерения Date?
7. Почему финансовый год и квартал-семестр не были включены?
8. Почему номер месяца важен для сортировки, если названия месяцев уже есть?
9. Какие поля не использовались и почему?
10. Какой тип данных выбран для Full Date Alternate Key?
11. Что отображается справа и слева на диаграмме измерения?
12. Что предстоит настроить в кубе после создания измерения?