|
|
|
Как организовать данные в DWH для процесов с "датой ОТ" и "датой ПО"? +SSAS
|
|||
|---|---|---|---|
|
#18+
Есть проекты. Пример одного из них, у которого менялся исполнитель и статус ID Имя комментарий исполнитель Статус Сумма ДАТА ОТ ДАТА ПО25435 Стар --- Петров в работе 7000 01.01.2019 16.02.201925435 Стар --- Иванов в работе 7000 16.02.2019 21.02.201925435 Стар --- Иванов в тестировании 7000 21.02.2019 28.02.2019 И вот таких проектов полно, визуально представлено на рисунке ниже. Вопрос: Как правильно представить эти данные в хранилище данных, чтобы можно было на основе этого сделать куб? Гранулярность - день. Я вижу это так - представленную выше таблицу придётся переделать в ежедневную: ID Имя комментарий исполнитель Статус Сумма ДАТА ОТ25435 Стар --- Петров в работе 7000 01.01.201925435 Стар --- Петров в работе 7000 02.01.201925435 Стар --- Петров в работе 7000 03.01.201925435 Стар --- Петров в работе 7000 04.01.2019.....................25435 Стар --- Петров в работе 7000 15.01.201925435 Стар --- Иванов в работе 7000 16.02.201925435 Стар --- Иванов в работе 7000 16.02.201925435 Стар --- Иванов в работе 7000 16.02.2019..................... И тогда пользователь может смотреть отчёт хоть с гранулярностью месяц, хоть неделя, хоть день - просто сумму по первому дню периода в формуле делаю и всё. Но уж больно дико разрастается база. 1-гигабайтовая база проектов после такого конвертирования превращается в 100-гигабайтовую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 01:27 |
|
||
|
Как организовать данные в DWH для процесов с "датой ОТ" и "датой ПО"? +SSAS
|
|||
|---|---|---|---|
|
#18+
Nika gnome, Вы можете в DWH хранить данные в виде интервалов (как есть сейчас), а при загрузке в куб - делать join с таблицей дней, чтобы получить требуемую гранулярность в кубе. Из опыта подобных решений - если данных много, то лучше ввести вспомогательную сущность - интервал с кодом, датой начала и датой окончания, и для него вспомогательную таблицу - перечень дней в интервале. В таблицу проектов - добавить поле кода интервала, соответствующего датам начала и окончания. Без этого - join с условиями вида неравенства приводит к nested loop в плане выполнения запроса и плохой производительности / длительному процессингу куба. Если сделать join по коду интервала с перечнем дней интервала - в плане будет merge join / hash match с гораздо лучшей производительностью запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 14:20 |
|
||
|
Как организовать данные в DWH для процесов с "датой ОТ" и "датой ПО"? +SSAS
|
|||
|---|---|---|---|
|
#18+
Ferdipux Nika gnome, Вы можете в DWH хранить данные в виде интервалов (как есть сейчас), а при загрузке в куб - делать join с таблицей дней, чтобы получить требуемую гранулярность в кубе. блин( без понятия, почему это очевидное решение в голову не пришло. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 14:56 |
|
||
|
|

start [/forum/topic.php?fid=49&fpage=8&tid=1857334]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 353ms |

| 0 / 0 |
