Я не нашел пример или способ построения измерения, которое содержит атрибуты расписания. Например, в моем сценарии я создаю хранилище данных, которое поможет собирать аналитику по эпизодам подкастов и радиошоу.
У нас есть следующее:
- dim_episode
- dim_podcast_show
- dim_date
- fact_user_daily_activity
И я пытаюсь добавить другое измерение, которое содержит атрибуты расписания для podcast_show, например, некоторые показывают трансляции своих эпизодов каждый день, другие вторники и четверги, другие только субботы.
dim_show_schedule (вариант 1)
| schedule_key | show_key | time | sunday_flag | monday_flag | tuesday_flag | wednesday_flag | thursday_flag | friday_flag | saturday_flag |
|--------------|----------|-------|-------------|-------------|--------------|----------------|---------------|-------------|---------------|
| 1 | 0 | 00:30 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
| 2 | 1 | 12:30 | 0 | 1 | 1 | 1 | 1 | 1 | 0 |
| 3 | 2 | 21:00 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
Однако было бы лучше иметь таблицу моста с чем-то вроде:
bridge_show_schedule (вариант 2)
| show_key | day_key |
|----------|---------|
| 0 | 2 |
| 0 | 4 |
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 1 | 5 |
dim_show_schedule (вариант 3) (предложено @nsousa)
| schedule_key | show_key | time | day |
|--------------|----------|-------|-------------|
| 1 | 0 | 00:30 | tuesday |
| 1 | 0 | 00:30 | thursday |
| 2 | 1 | 12:30 | monday |
| 2 | 1 | 12:30 | tuesday |
| 2 | 1 | 12:30 | wednesday |
| 2 | 1 | 12:30 | thursday |
| 2 | 1 | 12:30 | friday |
| 3 | 2 | 21:00 | saturday |
Я искал в инструментарии жизненного цикла хранилища данных Kimball и не смог найти пример для этого варианта использования.
Есть мысли?