1、四步骤:
- 确定业务过程:客户广告业务
- 确定最小粒度:每个账户的日消费快照
- 确定维度表:产品线维度、账户维度、
- 确定事实表:主键、可加型数值
2、确保建模基于最细粒度,便于增加新的维度。
2、维度表主要包含不可加的分类信息,用于筛选记录
维度表可以拆分为多个,是否拆分取决于维度体系的相关性,例如月份与季度关系密切,可以一起放入日期维度表,而日期与行业完全无关,如果放一起就会产生m*n种分类,需要拆分为日期维度表、行业维度表。
维度表随着规范化的深入,依次表现为:星型模型->雪花模型->范式建模,数据冗余逐渐减少,维护更为方便,但查询所需的连接逐渐增加。由于维度表本身体量不大,适当冗余是有意义的。
维度表应倾向于不符合范式。
3、事实表主要包含可加的数值型信息,用于汇总计算
事实表不可出现空字段。(在事实表中增加新生效的维度时,需将旧记录的该列设为"不可用"而不是null)
事实表中应尽量避免出现退化维度,维度过多时需要将其按体系相关性整合为独立的维度表。
事实表应倾向于符合范式。
4、维度表和事实表的桥梁应该是代理关键字(符合特定规则的整数编号)而不是实际的账户名称、id等,
代理关键字本身符合范式,优势就在于便于维护和性能
5、事实表的存储:粗粒度长期事实表+细粒度近期事实表
6、事实表三种类型:
- 事务事实表:时间点、合同号、处理流程(发起/批准/生效/失效),一行数据记录一个事务的信息。(虽然某一个时间点的快照+事务事实表就可以还原任意时间点的情况,但本身过于复杂)
- 周期快照事实表(最常见):日、账户、消费金额,一行数据记录一个时间段内的汇总值。
- 累积快照事实表:合同号、发起时间、批准时间、生效时间、失效时间,一行数据对应一个合同的生命周期。(伴随大量update)
7、数据仓库总线架构:企业数据仓库范围内维护一系列维度(时间、客户、产品、行业等),面向不同主题时,取其中的一部分子集作为自己的维度构建数据集市。
优势:1、重用资源,提升前期建设效率;2、接口规范,利于后期打通不同集市中的数据。
总线矩阵:列为维度,行为不同数据集市的主题