采用四步设计方法
1. 选择业务过程以及确定事实表类型
比如淘宝的订单流转的业务过程有四个:创建订单,买家付款,卖家发货,买家确认收货
明确了业务过程后,根据具体业务需求来选择与维度建模有关的业务过程。
比如买家付款这个业务过程,那么事实表应只包括买家付款这一个业务过程的单事务事实表
总而言之就是选择了哪些业务过程,那么所建立的事实表应为包含了所有业务过程的累积快照事实表
2. 声明粒度
粒度声明非常重要,尽量选择最细级别的原子粒度,以确保事实表的应用具有最大的灵活性,比如一次购物车下单,一个父订单可能是购物车,一个子订单是每个商品的订单,那么订单事实表选择子订单粒度
3. 确定维度
完成粒度声明意味着声明了主键,对应的维度组合就可以确定了
应该选择能够清楚描述业务过程的维度信息
例如订单事实表,粒度为子订单,相关的维度有卖家、买家、商品,收货人,时间等维度
4. 确定事实
应该选择与业务过程有关的所有事实,且事实的粒度要和声明的粒度一致,比如在淘宝订单付款事务事实表中,同粒度的事实有子订单分摊的支付金额、邮费、优惠金额等
5. 冗余维度
大数据的事实表设计中,冗余尽可能多的维度让下游方便使用,减少连表数量