Является ли использование представлений с запросами соединения SQL в OLAP Cube хорошей практикой?

Я пытаюсь создать свою первую схему куба olap для сервера Mondrian. Я придумал создать представление в виде таблицы фактов с несколькими объединениями, чтобы поместить в нее внешние ключи, допустим, это выглядит так:

SELECT call.id, record.user, topic.id, session.id, user.id, session.end, session.start FROM calls call
  LEFT JOIN call_records record ON (record.call_id = call.id)
  LEFT JOIN topis topic ON (topic.id = record.topic_id)
  LEFT JOIN login_sessions session ON (record.session_id = session.id)
  LEFT JOIN users user ON (session.user_id = user.id)

Я также создал Измерение под названием Users, Topics (и некоторые другие, но я стараюсь не усложнять), и все работает нормально, и я получил всю необходимую информацию, кроме сводки рабочего времени по Теме или для каждого пользователя.

Я не могу просто суммировать session.end - session.start, потому что таблица сеансов объединена, и один и тот же сеанс повторяется несколько раз.

Кроме того, я не думаю, что делаю это так, как должен.

Можете ли вы помочь мне сделать это правильно? Спасибо


person Community    schedule 07.08.2013    source источник


Ответы (1)


Создание модели OLAP по нормализованному набору данных обычно является плохой практикой. Вам следует прочитать о денормализованных моделях для систем OLAP и о том, как методы ETL/ELT используются для их создания.

Существует много литературы, которая поможет вам. Я бы посоветовал ознакомиться со схемами «звезда» OLAP и инструментами ETL.

person Luc    schedule 12.08.2013