【发布时间】:2014-12-08 10:49:17
【问题描述】:
我正在开展一个 SSIS/SAAS 项目以构建 BI 解决方案。
我的一个数据源包含有关服务台的信息。
用户可以创建与服务目录相关的新请求(例如,因为他的笔记本电脑崩溃了)。 因此它将在请求表中生成一个新行(创建日期、评论、跟踪号等)。 要解决此问题,将执行很少的操作。所以这些动作都会被记录在动作表中(Request和Action表之间是一对多的关系)。
动作可以是:“尝试格式化计算机”、“更换硬盘”等。 在生产环境中,一个请求包含大约 10 到 100 个操作。
我在设计这个时遇到了一个问题,因为我的事实表的许多列无法聚合。 实际上有很多日期列、跟踪号(字符串)、布尔值和只有几个 SUM 属性。
这是 dw 模型的摘录:
事实请求:
- ID(DW 主键)
- 业务密钥(原始PK)
- 请求编号(字符串)
- 开始日期(日期时间)
- 结束日期(日期时间)
- 最大分辨率日期(日期时间)
- 是时候解决请求了
- 评论(字符串)
- 延迟(整数)
- ...
事实行动:
- ID(DW 主键)
- 业务密钥(原始PK)
- 开始日期(日期时间)
- 结束日期(日期时间)
- 名称(字符串)
- 是时候解决问题了
- ...
我知道在事实表中添加不可聚合的数据并不是最好的解决方案。
在我的 SSAS 项目中,我基于我的 FactRequest 表创建了一个新的多维数据集。 除了“字符串”属性(例如请求标识符)之外,它工作正常,因为它是一个字符串。 我应该使用 SSAS“事实维度”根据我的 FactRequest 表创建“请求”维度吗?
有什么想法吗? 非常感谢,
【问题讨论】:
-
你的最后一句话基本上说明了一切。将所有非度量移出事实度量组本身,并指向它自己的维度。然后,您可以使用此维度进行过滤并执行您想要的操作,并且胖表可以跨常规维度进行聚合。
标签: sql-server ssis sql-server-2012 ssas