ITPub博客

首页 > 数据库 > Oracle > 4-dw_退化维

4-dw_退化维

原创 Oracle 作者:blt32034 时间:2019-05-12 21:39:49 0 删除 编辑

目前是一个数据爆炸时代,数据量增长很快,很多的一些维度表数据量大到足可以影响到你的报表展示,比如一些企业的客户维度表,产品维度表等。

我们拿客户维度表来说,在客户维度表中,我们有客户代码,客户名称,月结客户代码,月结客户名称等,见如下图:

在有一些大客户上,他们很多分公司,所以在业务往来的时候都是跟分公司进行合作的,但是在费用结算这块,又是跟这些大客户的总公司进行费用结算的,就像上面数据,华为很多分公司,业务是跟总部、广州分公司、上海分公司合作,但是费用统一是跟总部结算,为了更好的分析客户,所以我们的维度表设计成如上模型,即支持最细粒度的客户分析,又支持按结算口径的分析。但这样的一个维度表如果企业业务量大,客户多,这个维度表的数据可以达到几千万到几亿,因为这里包括本身的大客户和散客,散客就是指还没有成本我们的月结客户,他们发生业务不固定,频率少,但是数据量多,也是公司的一大收入。我们更应该分析这些散客成本月结客户,并服务好这些大客户。

有如下一个分析报表,他们是按月结客户来分析的,这样就把一些大客户的客户代码汇总到月结客户代码上,一些散客的客户代码汇总到 99999 的月结客户代码上,所以这个客户代码就由之前的几千万减少到几十万,数据量致少减少 2 个数量级,如果在报表上为了做一些更多的分析,关联维表后,导致模型数据才几十万要关联维度的几千万数据,严重影响性能。

这时候我们就需要在之前的维度表上做一个退化维了。把客户维度表的月结客户做一个退化维,如下图:

这样我们的退化维就只有几十万的数据量了,在基于月结客户做分析时,能很快的响应我们的数据需求,性能提供好几倍。

 

更多技术文章请关注公众号(长按后点识别图中二维码):

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

上一篇: 3-dw_缓慢变化维
下一篇: 缓慢变化维程序
请登录后发表评论 登录
全部评论
在快递和物流行业深耕多年,有丰富的行业经验和解决方案。

注册时间:2018-05-07

  • 博文量
    46
  • 访问量
    56104