sql-server – 在多个事实表之间加入维度

前端之家收集整理的这篇文章主要介绍了sql-server – 在多个事实表之间加入维度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果请求的报告需要有关相同维度(并且具有相同的粒度)的汇总信息,但基础数据存储在单独的事实表中,那么数据仓库设计的好方法是什么?

例如,一份报告显示每个员工每年报告的工资总额和报告的总费用,当时工资和费用记录在不同的事实表中.或者一份报告,列出公司销售的每个SKU每月的总销售额和每月收到的库存,当销售来自一个事实表并且接收来自另一个.

天真地解决这个问题看起来很简单:只需并行查询和聚合两个事实表,然后将聚合结果拼接在数据仓库或客户端应用程序中.

但我也有兴趣考虑其他方法来思考这个问题.别人怎么解决了?我想知道数据仓库架构和设计,以及使客户端工具设计友好,以构建报告,如上面的例子.

此外,这个“维度三明治”用例是否在规范数据仓库术语中有名称?如果是,那么将更容易通过谷歌进行研究.

我们正在使用sql Server,但我现在提出的问题有望与平台无关.

解决方法

我今天了解到这种技术被称为 Drilling Across

Drilling across simply means making separate queries against two or
more fact tables where the row headers of each query consist of
identical conformed attributes. The answer sets from the two queries
are aligned by performing a sort-merge operation on the common
dimension attribute row headers. BI tool vendors refer to this
functionality by varIoUs names,including stitch and multipass query.

听起来像上面的天真解决方案(并行查询多个事实表并将结果拼接在一起)也是建议的解决方案.

更多信息:

> Drilling Across – Kimball概述文章
> http://blog.oaktonsoftware.com/2011/12/three-ways-to-drill-across.html – 用于钻取的sql实现建议

非常感谢@MarekGrzenkowicz指出我正确的方向找到我自己的答案!我在这里回答它,以防其他人正在寻找同样的事情.

原文链接:https://www.f2er.com/mssql/76699.html

猜你在找的MsSQL相关文章