Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Преобразование иерархии из OLTP в DWH
|
|||
|---|---|---|---|
|
#18+
Ситуация такова. Есть олтп-таблица имеющая след. структуру GRUPPA ( GRUPPA_ID number, GRUPPA_NAME varchar2(100), PARENT_ID number ). Уровень иерархии = 2. Первый уровень - группа. Второй уровень - подгруппа. Некоторые группы могут не иметь подгрупп. Данная таблица будет размерностью в хранилище. Ее необходимо преобразовать в удобоворимый для хранилища формат. Отчеты по хранилищу в рамках данной размерности будут делаться в основном по группе (лишь малая часть по подгруппе, но такие отчеты будут). Вот вариант как это можно сделать SUB_GRUPPA ( SUB_GRUPPA_ID number, SUB_GRUPPA_OLD_ID number, GRUPPА_OLD_ID number, SUB_GRUPPA_NAME varchar2(100), GRUPPA_NAME varchar2(100) ) SUB_GRUPPA_ID - новый ключ в хранилище SUB_GRUPPА_OLD_ID - ключ из олтп системы (для заливки данных) А вот что будет в фактах FACT ( ..., SUB_GRUPPA_ID number, SUB_GRUPPA_NAME varchar2(100), GRUPPA_NAME varchar2(100), ... ) Как считаете - правилен ли мой вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 13:53 |
|
||
|
Преобразование иерархии из OLTP в DWH
|
|||
|---|---|---|---|
|
#18+
нет. Первая ошибка - не надо размещать в таблице фактов строки. в таблице фактов только ссылка на измерение и все. Второе - измерение можно либо сделать на основе одной представленной таблице (Parent-Child измерение), либо на основе двух для каждого уровня (Snowflake) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 14:11 |
|
||
|
Преобразование иерархии из OLTP в DWH
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ! Про первое я понял ... А вот про второе 1) "измерение можно либо сделать на основе одной представленной таблице (Parent-Child измерение)" - можно поподробнее??? схема snowflake - не подходит. P/s Вот есть же иерархия Календарь день - > месяц -> год я хочу нечто подобное и тут сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 15:57 |
|
||
|
Преобразование иерархии из OLTP в DWH
|
|||
|---|---|---|---|
|
#18+
Если используется MS AS: При создании измерения при помощи визарда можно выбрать Parent-Child - именно Ваш случай. Если не подходит такой вариант, то можно денормализовать таблицу (ведь уровней всего два) и представить так: ID - идентификатор дочернего уровня (id) Name - название дочернего уровня (varchar) Parent Name - название родительского уровня (varchar). Тогда Paren Name пойдет в верхний уровень измерения, Name - в нижний. В таблице фактов будет ссылка на ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 16:28 |
|
||
|
Преобразование иерархии из OLTP в DWH
|
|||
|---|---|---|---|
|
#18+
Спасибо. я примерно так и думал. Единственное, что запросы в 99% случаев будут выполнятся по Parent Name. Т.е. получается, что с данной таблицей размерности постоянно нужно будет соединяться. Может в факт добавить еще и PARENT_ID для оптимизации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 12:19 |
|
||
|
|

start [/forum/topic.php?fid=49&fpage=360&tid=1871406]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 271ms |
| total: | 385ms |

| 0 / 0 |
