Хранилище данных / BI моделирование: факт или измерение? - PullRequest
1 голос
/ 26 марта 2020

Я строю хранилище данных, используя знаменитую звездную схему «факты / измерения». В настоящее время внедряю данные о производительности сотрудников.

У меня есть два источника:

  1. Система тикетов, где я получаю
fact: spent time, billed amount 

dimension: Employee, Date, Customer, type-of-time (billed, not-billed, internal, service, driving-time ...)
Система синхронизации времени, где я получаю
fact: worked hours 

dimension: Employee, Date

Какой будет «правильный» подход:

A. Добавить рабочие часы как отдельный факт?

B. Просто укажите факт "потраченного времени" и добавьте рабочие часы как измерение к типу: измерения времени?

Цель состоит в том, чтобы создать информационную панель с такой информацией, как расчетное время против рабочего времени, количество неоплаченного времени и т. д. c.

1 Ответ

1 голос
/ 31 марта 2020

Как предложено ФП, вот мой комментарий в качестве ответа:

Это зависит от вашей структуры / уровня агрегирования фактов. Пример: сотрудник А работает 9,5 часов 2 марта 2020 года. Он работает 4 часа для Клиента X и 5 часов для Клиента Y. Кроме того, у него 30-минутный перерыв (он не оплачивается). Ваша система продажи билетов наверняка содержит 2 строки - по одной на каждого клиента. Система синхронизации имеет только одну агрегированную строку, поскольку она не различает guish между клиентами. Поэтому в этом случае я бы предложил создать отдельную таблицу фактов для отработанных часов.

...