6.数据仓库搭建之数据仓库设计

数据仓库搭建之数据仓库设计

1.数据仓库的分层规划

本项目的分层规划如下图所示:

6.数据仓库搭建之数据仓库设计_第1张图片

对于原始数据层(ODS):该层我们存放的是未经处理的原始数据,结构上与源系统保持一致,这是数据仓库的数据准备区。

对于明细数据层(DWD):该层我们是基于维度建模理论进行构建的,用于存放维度模型中的事实表,保存各个业务过程的最小粒度的操作记录。

对于公共维度层(DIM):该层我们是基于维度模型建模理论进行构建的,存放的是维度模型中的维度表,保存一致型维度信息。

对于数据汇总层(DWS):该层的搭建则是根据上层的指标需求,以分析的主题对象作为构建模型驱动,构建公共统计粒度的汇总表。

对于数据应用层(ADS):该层用于存放各项统计指标的结果。

2.数据仓库设计

我们本次项目的数据仓库设计依照下图当中的流程进行:
6.数据仓库搭建之数据仓库设计_第2张图片

1)数据调研:在数仓设计的最初阶段,我们需要进行业务调研和需求分析。业务调研,调研的是业务系统中的数据和业务系统的逻辑;而需求分析,我们需要分析数仓下游将来会有哪些需求。

我们可以把数据仓库的设计开发比作厨师进行炒菜。设计数仓的过程就好比厨师做菜的一个过程。厨师的工作是将各种各样的食材经过加工处理,做成美味佳肴给顾客吃;而我们数仓开发者,需要处理的“食材”,就是业务系统产生的各种各样的数据,我们需要对这些数据进行一步一步的加工,最终将处理好的数据提供给数仓下游的应用进行使用。作为厨师,如果想让自己做的菜符合顾客的口味,那么厨师就不但需要熟悉做饭使用的食材,还需要了解顾客想要吃什么,这样才可以使用已有的食材做出令顾客满意的美食;我们进行数仓开发也是一样的道理。

2)明确数据域:对数据进行分类,按照特定标准对数据进行纵向划分。

3)构建业务总线矩阵:按照维度建模理论,对业务数据进行分析,抽象出业务过程和维度。

4)维度模型设计:构建DWD层和DIM层。

5)明确统计指标:对报表需求进行分析,整理出指标体系,包括原子指标、派生指标以及衍生指标。

6)汇总模型设计:构建DWS层

2.1数据调研

数据调研是我们本项目重点要做的两项工作,它主要包括业务调研和需求分析。一个优秀的数据仓库的落地,必须要有充分的业务调研和需求分析。

2.1.1业务调研

业务调研的目标是熟悉业务流程熟悉业务数据

熟悉业务流程,需要明确每个业务的具体流程,需要将该业务所包含的每个业务过程一一列举出来。

熟悉业务数据,需要将数据(包括埋点日志和业务数据表)与业务过程对应起来,明确每个业务过程会对哪些表的数据产生影响,以及产生什么影响。产生的影响,需要具体到,是新增一条数据,还是修改一条数据,并且需要明确新增的内容或者是修改的逻辑。

我们对交易业务进行分析,在我们电商的交易业务当中,主要的业务过程有买家下单、买家支付、卖家发货、买家收货:

6.数据仓库搭建之数据仓库设计_第3张图片

2.1.2需求分析

典型的需求指标如,最近一天各省份手机品类订单总额。

分析需求时,需要明确需求所需的业务过程维度信息,例如该需求所需的业务过程就是买家下单,所需的维度有日期,省份,商品品类。

2.1.3后续沟通

做完业务分析和需求分析之后,要保证每个需求都能找到与之对应的业务过程及维度。若现有数据无法满足需求,则需要和业务方进行沟通,例如某个页面需要新增某个行为的埋点。

2.2明确数据域

数据仓库模型设计除横向的分层外,通常也需要根据业务情况进行纵向划分数据域。划分数据域的意义是便于数据的管理和应用。通常我们可以根据业务过程或者部门进行划分,本项目根据业务过程进行划分,需要注意的是一个业务过程只能属于一个数据域。

下面是我们的数仓项目所需的所有业务过程及数据域划分详情。

数据域 业务过程
交易域 加购、下单、取消订单、支付成功、退单、退款成功
流量域 页面浏览、启动应用、动作、曝光、错误
用户域 注册、登录
互动域 收藏、评价
工具域 优惠券领取、优惠券使用(下单)、优惠券使用(支付)

2.3构建业务总线矩阵

业务总线矩阵中包含维度模型所需的所有事实(业务过程)以及维度,以及各业务过程与各维度的关系。矩阵的行是一个个业务过程,矩阵的列是一个个的维度,行列的交点表示业务过程与维度的关系一个业务过程对应维度模型中一张事务型事实表,一个维度则对应维度模型中的一张维度表。所以构建业务总线矩阵的过程就是设计维度模型的过程。但是需要注意的是,总线矩阵中通常只包含事务型事实表,另外两种类型的事实表需单独设计。

按照事务型事实表的设计流程,选择业务过程 ->声明粒度 ->确认维度 ->确认事实,得到的最终的业务总线矩阵如下所示:

6.数据仓库搭建之数据仓库设计_第4张图片

后续在构建DWD层以及DIM层的构建时,需要参照我们绘制的业务 总线矩阵。

2.4明确统计指标

明确统计指标具体的工作是,深入分析需求,构建指标体系。构建指标体系的主要意义就是指标定义标准化。所有指标的定义,都必须遵循同一套标准,这样能有效的避免指标定义存在歧义,指标定义重复等问题。

2.4.1指标体系相关概念

(1)原子指标

原子指标基于某一业务过程度量值,是业务定义中不可再拆解的指标,原子指标的核心功能就是对指标的聚合逻辑进行了定义。我们可以得出结论,原子指标包含三要素,分别是业务过程、度量值和聚合逻辑

例如订单总额就是一个典型的原子指标,其中的业务过程为用户下单、度量值为订单金额,聚合逻辑为sum()求和。需要注意的是原子指标只是用来辅助定义指标一个概念,通常不会对应有实际统计需求与之对应。

(2)派生指标

派生指标基于原子指标,其与原子指标的关系如下图所示:

6.数据仓库搭建之数据仓库设计_第5张图片

与原子指标不同,派生指标通常会对应实际的统计需求。

(3)衍生指标

衍生指标是在一个或多个派生指标的基础上,通过各种逻辑运算复合而成的。例如比率、比例等类型的指标。衍生指标也会对应实际的统计需求。

6.数据仓库搭建之数据仓库设计_第6张图片

2.4.2指标体系对于数仓建模的意义

通过上述两个具体的案例可以看出,绝大多数的统计需求,都可以使用原子指标、派生指标以及衍生指标这套标准去定义。同时能够发现这些统计需求都直接的或间接的对应一个或者是多个派生指标。

当统计需求足够多时,必然会出现部分统计需求对应的派生指标相同的情况。这种情况下,我们就可以考虑将这些公共的派生指标保存下来,这样做的主要目的就是减少重复计算,提高数据的复用性。

这些公共的派生指标统一保存在数据仓库的DWS层。因此DWS层设计,就可以参考我们根据现有的统计需求整理出的派生指标。

2.4.3现有需求分析得出派生指标

2.4.3.1最近1/7/30日各渠道访客数

6.数据仓库搭建之数据仓库设计_第7张图片

2.4.3.2最近1/7/30日各渠道会话平均停留时长

6.数据仓库搭建之数据仓库设计_第8张图片

2.4.3.3最近1/7/30日各渠道会话平均浏览页面数

6.数据仓库搭建之数据仓库设计_第9张图片

2.4.3.4最近1/7/30日各渠道总会话数

6.数据仓库搭建之数据仓库设计_第10张图片

2.4.3.5最近1/7/30日各渠道跳出率

6.数据仓库搭建之数据仓库设计_第11张图片

2.4.3.6最近1/7/30日页面浏览路径分析(各跳转次数)

6.数据仓库搭建之数据仓库设计_第12张图片

2.4.3.7流失用户数

6.数据仓库搭建之数据仓库设计_第13张图片

2.4.3.8回流用户数

6.数据仓库搭建之数据仓库设计_第14张图片

2.4.3.9用户新增留存率

6.数据仓库搭建之数据仓库设计_第15张图片

2.4.3.10最近1/7/30日新注册用户数

6.数据仓库搭建之数据仓库设计_第16张图片

2.4.3.11最近1/7/30日活跃用户数

6.数据仓库搭建之数据仓库设计_第17张图片

2.4.3.12漏斗分析

6.数据仓库搭建之数据仓库设计_第18张图片

2.4.3.13最近1/7/30日新增下单用户数

6.数据仓库搭建之数据仓库设计_第19张图片

2.4.3.14最近1/7/30日新增支付用户数

6.数据仓库搭建之数据仓库设计_第20张图片

2.4.3.15最近1/7/30日各年龄段下单人数

6.数据仓库搭建之数据仓库设计_第21张图片

2.4.3.16最近7/30日各品牌复购率

6.数据仓库搭建之数据仓库设计_第22张图片

2.4.3.17最近1/7/30日各品牌商品订单数

6.数据仓库搭建之数据仓库设计_第23张图片

2.4.3.18最近1/7/30日各品牌商品订单人数

6.数据仓库搭建之数据仓库设计_第24张图片

2.4.3.19最近1/7/30日各品牌商品退单数

6.数据仓库搭建之数据仓库设计_第25张图片

2.4.3.20最近1/7/30日各品牌商品退单人数

6.数据仓库搭建之数据仓库设计_第26张图片

2.4.3.21最近1/7/30日各品类商品订单数

6.数据仓库搭建之数据仓库设计_第27张图片

2.4.3.22最近1/7/30日各品类商品订单人数

6.数据仓库搭建之数据仓库设计_第28张图片

2.4.3.23最近1/7/30日各品类商品退单数

6.数据仓库搭建之数据仓库设计_第29张图片

2.4.3.24最近1/7/30日各品类商品退单人数

6.数据仓库搭建之数据仓库设计_第30张图片

2.4.3.25最近1/7/30日订单总额

6.数据仓库搭建之数据仓库设计_第31张图片

2.4.3.26最近1/7/30日订单数

6.数据仓库搭建之数据仓库设计_第32张图片

2.4.3.27最近1/7/30日订单人数

6.数据仓库搭建之数据仓库设计_第33张图片

2.4.3.28最近1/7/30日退单数

6.数据仓库搭建之数据仓库设计_第34张图片

2.4.3.29最近1/7/30日退单人数

6.数据仓库搭建之数据仓库设计_第35张图片

2.4.3.30最近1/7/30日各省份下单次数

6.数据仓库搭建之数据仓库设计_第36张图片

2.4.3.31最近1/7/30日各省份下单金额

6.数据仓库搭建之数据仓库设计_第37张图片

2.4.3.32最近30日发布的各优惠券补贴率

6.数据仓库搭建之数据仓库设计_第38张图片

2.4.3.33最近30日发布的各优惠活动补贴率

6.数据仓库搭建之数据仓库设计_第39张图片

2.5维度模型设计

6.数据仓库搭建之数据仓库设计_第40张图片

维度模型的设计参照上图当中业务总线矩阵的设计即可。

我们本次维度模型中,维度表有时间维度表,用户维度表,商品维度表,地区维度表,活动维度表和优惠券维度表。

事实表有:交易域加购事务事实表,交易域下单事务事实表,交易域取消订单事务事实表,交易域支付成功事务事实表,交易域退单事务事实表,交易域退款成功事务事实表,交易域购物车周期快照事实表,工具域优惠券领取事务事实表,工具域优惠券使用(下单)事务事实表,工具域优惠券使用(支付)事务事实表,互动域收藏商品事务事实表,互动域评价事务事实表,流量域页面浏览事务事实表,流量域启动事务事实表,流量域动作事务事实表,流量域曝光事务事实表,流量域错误事务事实表,用户域用户注册事务事实表,用户域用户登录事务事实表共19张事实表。

具体的表结构在后续中进行详述。

2.6汇总模型设计

汇总模型的设计参考上述整理出的指标体系(主要是派生指标)即可。汇总表与派生指标的对应关系是,一张汇总表通常包含业务过程相同、统计周期相同、统计粒度相同的多个派生指标

我们将指标体系整理成表格的形式,来总结出汇总表来:

6.数据仓库搭建之数据仓库设计_第41张图片

最终我们设计的汇总表有:

2.6.1最近1日汇总表

(1)交易域用户商品粒度订单最近1日汇总表

(2)交易域用户商品粒度退单最近1日汇总表

(3)交易域用户粒度订单最近1日汇总表

(4)交易域用户粒度加购最近1日汇总表

(5) 交易域用户粒度支付最近1日汇总表

(6)交易域省份粒度订单最近1日汇总表

(7)交易域用户粒度退单最近1日汇总表

(8)流量域会话粒度页面浏览最近1日汇总表

(9)流量域访客页面粒度页面浏览最近1日汇总表

2.6.2最近n日汇总表

(1)交易域用户商品粒度订单最近n日汇总表

(2)交易域用户商品粒度退单最近n日汇总表

(3)交易域用户粒度订单最近n日汇总表

(4)交易域用户粒度加购最近n日汇总表

(5) 交易域用户粒度支付最近n日汇总表

(6)交易域省份粒度订单最近n日汇总表

(7)交易域优惠券粒度订单最近n日汇总表

(8)交易域活动粒度订单最近n日汇总表

(9)交易域用户粒度退单最近n日汇总表

(10)流量域访客页面粒度页面浏览最近n日汇总表

关于表的具体设计,我们在后续中详述。

你可能感兴趣的:(东软睿购跨境电商数仓项目,数据仓库,big,data,hive)