在OLAP Cube中使用带有SQL连接查询的视图是一个好习惯吗?

时间:2013-08-07 08:03:16

标签: sql schema olap-cube mondrian workbench

我正在尝试为Mondrian服务器创建我的第一个olap立方体架构。 我想出了一个视图作为一个事实表,有几个连接将外键放入其中,让我们说它看起来像这样:

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求和,因为会话表已连接且同一会话多次出现。

另外,我不认为我按照我应该的方式这样做。

你能帮我正确地做吗? 感谢

1 个答案:

答案 0 :(得分:1)

在规范化数据集上创建OLAP模型通常是不好的做法。您应该阅读有关OLAP系统的非规范化模型以及如何利用ETL / ELT技术来创建这些模型。

有很多文献可以帮助你。我建议熟悉OLAP'明星'模式和ETL工具。