Data Analyst Professional · Модуль 10 · Урок 35 із 51

Календар, ролі дат і фільтрація

Часова аналітика потребує окремої, безперервної date dimension. Вона має покривати всі потрібні дати, мати унікальний row на день і передавати фільтр до facts через зрозумілий active path.

120 хвDate dimensionМінітест: 3 питання

Контракт 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 сортується alphabeticallySort 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 за потребами користувача.

Практична перевірка · урок 35 з 51

Закріпіть матеріал уроку

Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.

1. Яка вимога до date column у date table?
2. Чому потрібні повні роки?
3. Чому datetime fact не join-ять прямо з date?