数据仓库搭建之数据仓库设计
1.数据仓库的分层规划
本项目的分层规划如下图所示:
对于原始数据层(ODS):该层我们存放的是未经处理的原始数据,结构上与源系统保持一致,这是数据仓库的数据准备区。
对于明细数据层(DWD):该层我们是基于维度建模理论进行构建的,用于存放维度模型中的事实表,保存各个业务过程的最小粒度的操作记录。
对于公共维度层(DIM):该层我们是基于维度模型建模理论进行构建的,存放的是维度模型中的维度表,保存一致型维度信息。
对于数据汇总层(DWS):该层的搭建则是根据上层的指标需求,以分析的主题对象作为构建模型驱动,构建公共统计粒度的汇总表。
对于数据应用层(ADS):该层用于存放各项统计指标的结果。
2.数据仓库设计
我们本次项目的数据仓库设计依照下图当中的流程进行:
1)数据调研:在数仓设计的最初阶段,我们需要进行业务调研和需求分析。业务调研,调研的是业务系统中的数据和业务系统的逻辑;而需求分析,我们需要分析数仓下游将来会有哪些需求。
我们可以把数据仓库的设计开发比作厨师进行炒菜。设计数仓的过程就好比厨师做菜的一个过程。厨师的工作是将各种各样的食材经过加工处理,做成美味佳肴给顾客吃;而我们数仓开发者,需要处理的“食材”,就是业务系统产生的各种各样的数据,我们需要对这些数据进行一步一步的加工,最终将处理好的数据提供给数仓下游的应用进行使用。作为厨师,如果想让自己做的菜符合顾客的口味,那么厨师就不但需要熟悉做饭使用的食材,还需要了解顾客想要吃什么,这样才可以使用已有的食材做出令顾客满意的美食;我们进行数仓开发也是一样的道理。
2)明确数据域:对数据进行分类,按照特定标准对数据进行纵向划分。
3)构建业务总线矩阵:按照维度建模理论,对业务数据进行分析,抽象出业务过程和维度。
4)维度模型设计:构建DWD层和DIM层。
5)明确统计指标:对报表需求进行分析,整理出指标体系,包括原子指标、派生指标以及衍生指标。
6)汇总模型设计:构建DWS层
2.1数据调研
数据调研是我们本项目重点要做的两项工作,它主要包括业务调研和需求分析。一个优秀的数据仓库的落地,必须要有充分的业务调研和需求分析。
2.1.1业务调研
业务调研的目标是熟悉业务流程、熟悉业务数据。
熟悉业务流程,需要明确每个业务的具体流程,需要将该业务所包含的每个业务过程一一列举出来。
熟悉业务数据,需要将数据(包括埋点日志和业务数据表)与业务过程对应起来,明确每个业务过程会对哪些表的数据产生影响,以及产生什么影响。产生的影响,需要具体到,是新增一条数据,还是修改一条数据,并且需要明确新增的内容或者是修改的逻辑。
我们对交易业务进行分析,在我们电商的交易业务当中,主要的业务过程有买家下单、买家支付、卖家发货、买家收货:
2.1.2需求分析
典型的需求指标如,最近一天各省份手机品类订单总额。
分析需求时,需要明确需求所需的业务过程及维度信息,例如该需求所需的业务过程就是买家下单,所需的维度有日期,省份,