Моделирование Datawarehouse: Изменить таблицу или 2 таблицы фактов?
Я на самом деле моделирую хранилище данных
В одной из моих таблиц фактов у меня есть 3 данных (число, которое я хочу проанализировать). Проблема в том, что я сначала заполнил один из номеров, а позже (через несколько дней) заполнил еще 2 номера.
Плохо ли это делать в DW (из-за закона "не изменять таблицу")?
Другое решение, о котором я подумал, - поместить первое число в первую таблицу фактов, а два других - во вторую таблицу фактов. Конечно, 2 FT будут связаны с теми же таблицами размеров. Это решение кажется мне хорошим, но, возможно, немного тяжелее, чтобы сравнить данные позже.
-
Данные, о которых я говорю, касаются рабочего времени. Сначала сотрудник помещает свое рабочее время (оно не подтверждено) в БД, это мой первый атрибут (Qe). Затем начальник проверяет или изменяет (или нет) эти данные, и это дает мне другой атрибут (Qa). Иногда оба атрибута будут загружаться в DW одновременно (если проверено быстро), иногда нет.
Так что вы думаете об этом, какое решение лучше / чище?
спасибо за вашу помощь
1 ответ
Нет закона об изменении таблицы фактов. Если это накопительный моментальный снимок, который отслеживает процесс при переходе от одного шага к другому, то стандартный метод Кимбалла заключается в обновлении записи по мере ее изменения.
Если это таблица транзакционных фактов, в которой измерения выполняются одновременно для одной строки, то обновление является плохим.
В вашем случае имеет смысл иметь накопительный снимок для измерения этих данных, так как он представляет собой "рабочий процесс", где есть шаг утверждения, прежде чем введенные результаты станут "правдой".