构建信息立方体维度的基本原则

        SAP BW的各信息提供者中可以说最重要的就是信息立方体,因为它是分析报表最主要的基础。而对于信息立方体模型,最重要的莫过于维度的设计,它不只决定着查询的性能,而且会影响到数据上传的时间。一个好的设计方案,不只能提高查询的访问速度,而且可以大大降低把数据更新到信息立方体的时间。
在信息立方体的设计中,如果能够遵循下面的这些基本的原则,那么你就可以构建一个相对高效的信息立方体模型:
1> 不要把查询用不到的CHARACTERISTIC放到信息立方体中。
        如果一个CHARACTERRISTIC不会被查询用到,而且你也不能确定它一定会在以后的查询中用到,那么就不要把它放到信息立方体中。因为信息立方体中每多包含一个特征,它的查询性能和数据上传性能就会降低一分。对于一个多层的数据仓库架构来说,我们常常把这种特征放到中间层的DSO中。这样一方面不会影响到信息立方体的性能,另一方面,当后续开发的查询用到这个特征的时候,我们可以重新把它加入到信息立方体中,然后从DSO上传数据到信息立方体。由于它的信息已经存在于DSO中了,我们不需要重新从源系统抽取数据,避免影响到业务系统。
2> 对于NAVIGATIONAL属性和特征,前者有利于数据上传性能,而后者有利于报表性能。
        这个很好理解。但是它们还代表了不同的历史事实性。对于特征来说,它代表的是业务发生时候的历史事实。而NAVIGATIONAL属性代表的是当前事实或者某个指定时间的历史事实。比如如果你把物料甲的物料组建模为一个特征,那么基于它的报表显示的是业务发生时候的物料组。不管物料甲的物料组在这笔业务后有没有被修改过,报表数据都是基于这笔业务产生时候的物料组显示的。如果你把物料组建模为属性,那么非时效属性对应的是当前的物料组分派,也就是说不管物料甲在一笔业务发生时候的物料组分配是什么,报表数据都是基于当前分配的物料组的。而时效属性则对应于某个指定时间的物料组分配。
3> 尽量减小维度表。
        对于普通的维度,它的索引类型是BIT-MAP索引,降低维度表的大小可以大大提高BIT-MAP索引的性能,进而大大提高报表性能。另外合理的维度设计可以大大减少数据上传过程中维度ID的生成次数,提高数据上传性能。
4> 减少维度数,但是减小维度表更重要。特别是当两者冲突的时候。
5> 对于高CARDINALITY的特征来说,比如销售订单号,我们应该使用LINE ITEM维度。
       普通的维度是一个扩展了的星形结构,中间是事实表,事实表首先关联到维度表,然后经过维度表关联到主数据表。而对于LINE ITEM维度来说,它没有中间层的维度表,事实表直接和主数据表关联。这样执行SQL的时候,可以减少一个JOIN。
6> 对于高CARDINALITY的维度来说,我们应该使用B-TREE索引。
       普通维度的默认索引时BIT-MAP,如果一个维度表太大,那么BIT-MAP索引的性能会大大降低。 这时候我们应该选择使用B-TREE索引,也就是将一个普通维度改为HIGH-CARDINALITY 维度。
7>  如果一个信息立方体的特征数小于等于13, 那么你可以去掉推荐架构中的维度表这一层。将所有的特征建模为一个LINE ITEM维度。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/119153/viewspace-627033/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/119153/viewspace-627033/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值