(三):建立维度
一:确定字段
1. 向下钻取
1.1 一个合格的数仓设计师因该总是思考添加到现有环境中的额外向下钻取的路径。
1.2 针对于事实表。
1.3 向下钻取就是left join其他表。例如,我们在维度表中有地点这个字段,那么我们需不需要将哪个国家,哪个省,哪个市等更加详细的数据体现出来。
2. 横向钻取
2.1 横向钻取就是union。
2.2 针对事实表。
2.3 横向钻取多个事实表,前提这几个事实表需要一致化维度。意思为,我们在这几个表中取的字段的必须一致。
二:确定时间
1. 时间处理
据时间的粒度我们将时间分为事物粒度,定期快照粒度,累计快照粒度。
(1)事物粒度-当时间发生的时候,记录一个时间。
增量表
全量表
快照表
(2)定期快照粒度,有开始时间,有结束时间。
(3)累计快照粒度。有多个时间,例如一个订单的日期包含 原始订单日期,实际交货日期,交付日期,最终交付日期以及退货日期。
三:注意事项
1.每一个事实表中的所有事实都必须有一个与之关联的日期维度表。
2.确保每一张事实表中是所有事实都处于相同的粒度。
事实表中,每一行的粒度应该是相同的。
3.围绕业务过程来建立维度表。
4.维度表中代表的数据必须是原子级别。
有些时候,我们的需求是求聚合数据,我们在维度表中得到了聚合数据,但是后期如果要进行更加详细的需求,需要重新构建表。不利于后期的扩展。
5.在维度表中存储报告标签。
使用转码和码值来体现一些数据。
6.使用代理键。
因为是星星模型,所有维度表和事实表之间有些关联,所以,我们可以使用代理键将表关联起来。