维度建模技巧总结

来源:互联网 发布:淘宝网三星平板电脑 编辑:程序博客网 时间:2024/04/30 15:32

全局架构上:
一套全局的metadata管理框架。
ODS的考量可以容后,架构在数据源系统之后或者数据仓库内的一个特殊组成部分。

 

Dimension Table(占10%空间):
主键使用代理键(surrogate key)。
非范式化,扁平化层级关系。
存储可以直接作为报表标签栏的值,而非代码/职能码,报表可直接使用,无需转化。
维度表A和维度表B的笛卡尔积如果不大,且有一定相关性,则可以考虑合并两张表。
一张维度表里multiple hierarchies是允许的,只要各自列名定义清晰。
预先存储的聚合表。
维度表的维度表(一般是View)称为Outrigger。
引用一致性:在维度表里相应地插入一行,标识该维度不可用,以避免事实表里的空外键。

Fact Table(占90%空间):
用外键的一个子集作主键(组合键)。
一个事实表里的所有数据必须用同一粒度。
物理存储或视图具有可加性的计算结果。毛利润
比率存储分子分母。毛利润率
非事实型事实表,记录产品是否卖出,没有事实度量。(更详细信息待补充)
巨大的事实表可以依据日期进行分区(partition)。


结合:
架构上,有人考量要不要使用一种纯粹作为数据仓库源的stage层,这在测试方面有一定作用。真正的source很多时候并不允许和不适合被DW更改,即使是dev环境。Stage层的引入可以为数据仓库测试数据的设计提供可能性。
一般将重复率较高的文本设计成维度。
fact外键满足对dimension的引用完整性。
退化的维度是指仅存在于事实表中的维度,而没有对应的维度表。

Market Basket Analysis使用成对商品外键、商品数量和商品销售额,创建专门的单一商品维度表,在商品上从最高的层级逐级往下筛选。配对分析“尿片与啤酒”现象。

库存周期快照。近60天保存每天库存量,之前保存每周的。

 

 

未完待续……

原创粉丝点击