Является ли таблица фактов в размерной модели на самом деле таблицей событий? - PullRequest
0 голосов
/ 09 октября 2018

Я новичок в моделировании многомерных данных, и мне интересно, как я могу применить его к чему-то, что не похоже на отчет о продажах.

Допустим, у меня есть веб-мессенджер.Он отслеживает устройство пользователя, тип браузера и местоположение.

Теперь мои коллеги из бизнес-отдела хотят быть в состоянии сказать:

  • сколько чатов мессенджеров произошло в Chrome в прошлом месяце?
  • сколько чатов мессенджеров происходило в Северной Америке в прошлом году на мобильном устройстве?
  • частота чатов в день на прошлой неделе (с возможностью фильтрации по браузеру, устройству и местоположению)

Так что для меня, похоже, я хочу измерить частоту чатов, как должна выглядеть таблица фактов для этого?

Кроме того, браузер и устройство должны жить в одном или отдельных измерениях?Я не могу представить процесс ETL, который будет строить такую ​​таблицу.

В моем нынешнем понимании схема должна выглядеть следующим образом: schema

Кажется, что каждый разчат создан, я должен добавить его в таблицу chat_facts, что для меня похоже на сохранение таблицы с событиями, которые мы будем подсчитывать позже путем агрегации.Это правильный подход к таблице фактов?

1 Ответ

0 голосов
/ 09 октября 2018

Таблицы фактов могут содержать транзакции, события, сальдо, снимки, процессы.Есть даже «не фактические» таблицы фактов.

В вашем случае запись чатов как событий вполне оправдана.Помимо количества сообщений, каждая запись чата может также содержать другие факты, такие как размер, продолжительность, количество участников и т. Д.

Тусклые детали не имеет смысла.Вместо этого создайте тусклое «Устройство» и тусклое «Браузер».

Единственное, чего не хватает вашей модели, - тусклого "Дата", для аналитики, связанной с датами: календарная таблица

(я бы также переименовал "созданный" в вашей таблице фактовв нечто более описательное, такое как «Дата создания»)

...