在多个事实表之间加入维度

Jus*_*ant 6 sql-server data-warehouse dimension dimensional-modeling business-intelligence

如果请求的报告需要有关相同维度(并且具有相同的粒度)的汇总信息,但基础数据存储在单独的事实表中,那么数据仓库设计的好方法是什么?

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

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

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

此外,这个"维度三明治"用例是否在规范数据仓库术语中有名称?如果是,则可以更轻松地通过Google进行研究.

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

Jus*_*ant 5

我今天了解到这种技术叫做Drilling Across:

钻取简单意味着针对两个或多个事实表进行单独查询,其中每个查询的行标题包含相同的一致属性.通过对公共维度属性行标题执行排序合并操作来对齐来自两个查询的答案集.BI工具供应商通过各种名称来引用此功能,包括针脚和多遍查询.

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

更多信息:

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