4-dw_退化维
作者:互联网
目前是一个数据爆炸时代,数据量增长很快,很多的一些维度表数据量大到足可以影响到你的报表展示,比如一些企业的客户维度表,产品维度表等。
我们拿客户维度表来说,在客户维度表中,我们有客户代码,客户名称,月结客户代码,月结客户名称等,见如下图:
在有一些大客户上,他们很多分公司,所以在业务往来的时候都是跟分公司进行合作的,但是在费用结算这块,又是跟这些大客户的总公司进行费用结算的,就像上面数据,华为很多分公司,业务是跟总部、广州分公司、上海分公司合作,但是费用统一是跟总部结算,为了更好的分析客户,所以我们的维度表设计成如上模型,即支持最细粒度的客户分析,又支持按结算口径的分析。但这样的一个维度表如果企业业务量大,客户多,这个维度表的数据可以达到几千万到几亿,因为这里包括本身的大客户和散客,散客就是指还没有成本我们的月结客户,他们发生业务不固定,频率少,但是数据量多,也是公司的一大收入。我们更应该分析这些散客成本月结客户,并服务好这些大客户。
有如下一个分析报表,他们是按月结客户来分析的,这样就把一些大客户的客户代码汇总到月结客户代码上,一些散客的客户代码汇总到99999的月结客户代码上,所以这个客户代码就由之前的几千万减少到几十万,数据量致少减少2个数量级,如果在报表上为了做一些更多的分析,关联维表后,导致模型数据才几十万要关联维度的几千万数据,严重影响性能。
这时候我们就需要在之前的维度表上做一个退化维了。把客户维度表的月结客户做一个退化维,如下图:
这样我们的退化维就只有几十万的数据量了,在基于月结客户做分析时,能很快的响应我们的数据需求,性能提供好几倍。
更多技术文章请关注公众号(长按后点识别图中二维码):
标签:月结,代码,客户,退化,数据量,散客,维度,dw 来源: https://blog.csdn.net/u012667253/article/details/90145936