Data Analyst Professional · Модуль 10 · Урок 35 із 51
Календар, ролі дат і фільтрація
Часова аналітика потребує окремої, безперервної date dimension. Вона має покривати всі потрібні дати, мати унікальний row на день і передавати фільтр до facts через зрозумілий active path.
Контракт date table
- Одна строка на календарну дату; values унікальні, non-null і contiguous.
- Діапазон охоплює повні роки, потрібні всім facts і forecast.
- Є numeric sort columns для month/weekday labels.
- Fiscal periods, holidays і робочі дні — business attributes, не текстова магія у visuals.
- Для classic time intelligence позначте таблицю як Date table, коли це потрібно моделі.
Не зв’язуйте datetime fact із date dimension без окремого date key: час робить значення різними.
Одна подія — кілька ролей дат
Продаж має order_date і ship_date. Між одними таблицями може бути лише один active relationship; inactive relationship активують у конкретній measure через USERELATIONSHIP.
Revenue by Ship Date :=
CALCULATE(
[Revenue],
USERELATIONSHIP('Date'[DateKey], Sales[ShipDateKey])
)Якщо користувач має одночасно фільтрувати й групувати за двома ролями, дублюйте role-playing dimensions: Order Date і Ship Date. Це збільшує model size незначно, зате робить semantics очевидною.
Active чи duplicated role-playing dimension?
| Потреба | Підхід |
|---|---|
| альтернативна дата лише в кількох measures | одна Date + inactive relationship + USERELATIONSHIP |
| одночасні slicers/grouping за order і ship | дві role-playing date dimensions |
| кілька active paths до fact | переробити модель, прибрати ambiguity |
| month label сортується alphabetically | Sort by numeric month/year-month key |
Практика
- Перевірте min/max dates обох facts і completeness календаря.
- Створіть active Order Date relationship та inactive Ship Date.
- Порівняйте Revenue by Order Date і Revenue by Ship Date.
- Зробіть окремі role-playing dimensions і поясніть tradeoff.
- Переконайтеся, що month labels сортуються chronologically.
Офіційні джерела
Готовність до тесту
Ви створюєте повний календар, керуєте active/inactive paths, застосовуєте USERELATIONSHIP і обираєте role-playing dimensions за потребами користувача.
Закріпіть матеріал уроку
Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.