四、电商数据仓库系统——第5章 数据仓库设计

5.1 数据仓库分层规划

优秀可靠的数仓体系,需要良好的数据分层结构。合理的分层,能够使数据体系更加清晰,使复杂问题得以简化。以下是该项目的分层规划。

5.2 数据仓库构建流程

以下是构建数据仓库的完整流程。

5.2.1 数据调研

数据调研重点要做两项工作,分别是业务调研和需求分析。这两项工作做的是否充分,直接影响着数据仓库的质量。

1)业务调研

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

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

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

下面业务电商中的交易为例进行演示,交易业务涉及到的业务过程有买家下单、买家支付、卖家发货,买家收货,具体流程如下图。

2)需求分析

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

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

3)总结

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

5.2.2 明确数据域

数据仓库模型设计除横向的分层外,通常也需要根据业务情况进行纵向划分数据域。

划分数据域的意义是便于数据的管理和应用

通常可以根据业务过程或者部门进行划分,本项目根据业务过程进行划分,需要注意的是一个业务过程只能属于一个数据域。

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

数据域

业务过程

交易域

加购、下单、取消订单、支付成功、退单、退款成功

流量域

页面浏览、启动应用、动作、曝光、错误

用户域

注册、登录

互动域

收藏、评价

工具域

优惠券领取、优惠券使用(下单)、优惠券使用(支付)

5.2.3 构建业务总线矩阵

业务总线矩阵中包含维度模型所需的所有事实(业务过程)以及维度,以及各业务过程与各维度的关系。矩阵的行是一个个业务过程,矩阵的列是一个个的维度,行列的交点表示业务过程与维度的关系。

一个业务过程对应维度模型中一张事务型事实表,一个维度则对应维度模型中的一张维度表。所以构建业务总线矩阵的过程就是设计维度模型的过程。但是需要注意的是,总线矩阵中通常只包含事务型事实表,另外两种类型的事实表需单独设计。

按照事务型事实表的设计流程,选择业务过程à声明粒度à确认维度à确认事实,得到的最终的业务总线矩阵见以下表格。

数据域

业务过程

粒度

维度

度量

时间

用户

商品

地区

活动(具体规则)

优惠券

支付方式

退单类型

退单原因类型

渠道

设备

交易域

加购物车

一次加购物车的操作

商品件数

下单

一个订单中一个商品项

下单件数/下单原始金额/下单最终金额/活动优惠金额/优惠券优惠金额

取消订单

一次取消订单操作

下单件数/下单原始金额/下单最终金额/活动优惠金额/优惠券优惠金额

支付成功

一个订单中的一个商品项的支付成功操作

支付件数/支付原始金额/支付最终金额/活动优惠金额/优惠券优惠金额

退单

一次退单操作

退单件数/退单金额

退款成功

一次退款成功操作

退款件数/退款金额

流量域

页面浏览

一次页面浏览记录

浏览时长

动作

一次动作记录

无事实(次数1)

曝光

一次曝光记录

无事实(次数1)

启动应用

一次启动记录

无事实(次数1)

错误

一次错误记录

无事实(次数1)

用户域

注册

一次注册操作

无事实(次数1)

登录

一次登录操作

无事实(次数1)

工具域

领取优惠券

一次优惠券领取操作

无事实(次数1)

使用优惠券(下单)

一次优惠券使用(下单)操作

无事实(次数1)

使用优惠券(支付)

一次优惠券使用(支付)操作

无事实(次数1)

互动域

收藏商品

一次收藏商品操作

无事实(次数1)

评价

一次取消收藏商品操作

无事实(次数1)

后续的DWD层以及DIM层的搭建需参考业务总线矩阵。

5.2.4 明确统计指标

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

1)指标体系相关概念
(1)原子指标

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

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

(2)派生指标

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

与原子指标不同,派生指标通常会对应实际的统计需求。请从图中的例子中,体会指标定义标准化的含义。

(3)衍生指标

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

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

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

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

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

按照上述标准整理出的指标体系如下:

word文档中。

5.2.4 维度模型设计

维度模型的设计参照上述得到的业务总线矩阵即可。事实表存储在DWD层,维度表存储在DIM层。

5.2.5 汇总模型设计

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
01_数仓项目介绍.avi4 b4 Q* Q8 Z0 Y) C6 O! w 02_数仓采集_用户行为采集课程介绍.avi8 \7 f3 O. c- {: v# W& V$ Y& b 03_数仓采集_数仓的概念.avi8 Z# X* q/ c; }3 A* [ T 04_数仓采集_项目需求.avi6 B8 n s0 h! M4 X# j! |0 ` 05_数仓采集_项目技术选型.avi8 [% N% W, U# y5 s 06_数仓采集_系统数据流程设计.avi8 N: L Y6 D6 y 07_数仓采集_框架版本选型.avi, k8 c& `! j& B 08_数仓采集_框架版本具体型号.avi1 x& Q/ D. O' l 09_数仓采集_服务器选型.avi3 _: b. H. i! a; O8 V3 A7 [1 s0 t; B 100_业务数仓_DWS层之用户行为宽表.avi* o! `2 N, _5 u& a$ W 101_业务数仓_需求九:GMV成交总额.avi; x4 H& X( _' I8 L7 r* n3 I/ y 102_业务数仓_需求十:ADS层之新增用户占日活跃用户比率.avi 103_业务数仓_需求十一:ADS层之用户行为漏斗分析.avi 104_业务数仓_用户购买商品明细表(宽表).avi 105_业务数仓_需求十二:ADS层品牌复购率.avi 106_业务数仓_需求十三:求每个等级的用户对应的复购率前十的商品排行(学生分享).avi6 e) h" C# G2 X+ z6 B 107_业务数仓_数据可视化.avi! @5 r5 g- n0 f, J3 l 108_业务数仓_Azkaban安装.avi( r9 z2 L3 \% G' k9 [: t9 K 109_业务数仓_GMV指标获取的全调度流程.avi& O, S. M2 Q# o 10_数仓采集_集群资源规划设计.avi 110_业务数仓_拉链表理论.avi 111_业务数仓_拉链表制作.avi+ k: N4 e; P4 X; ?( i' O0 {0 u. M9 Y 112_业务数仓_业务数仓项目总结.avi/ {1 S. ^* Y" b# M) | 113_业务数仓_即席数仓课程介绍.avi 114_即席数仓_Presto简介.avi+ r. E# z! Z4 t% o+ r8 }7 Q 115_即席数仓_Presto安装及使用.avi 116_即席数仓_Presto优化.avi% @4 x# m3 } G# h 117_即席数仓_Druid概念、特点、场景.avi 118_即席数仓_Druid对比其他框架.avi7 C4 m1 z" }# n% h( F 119_即席数仓_Druid框架原理.avi 11_数仓采集_测试集群服务器规划.avi* X" H5 S4 M1 C0 j" w 120_即席数仓_Druid数据结构.avi, V& D, ]# l" a0 R1 ?) n; L f 121_即席数仓_Druid安装.avi 122_面试题_总体架构.avi! c' O1 I8 T6 n Q 123_面试题_技术框架.avi 124_面试题_用户行为、业务数据、即席查询.avi4 N2 j# j6 P% O" a 125_面试题_开发经验.avi3 b$ C' k; H" B2 p# c( \ 126_CDH数仓_课程介绍.avi9 _. V/ m% J5 ^* s/ g+ f; g( s 127_CDH数仓_CM简介及架构.avi8 ]' ]* B! X' j. Z9 [ 128_CDH数仓_CM安装环境准备.avi, Q8 k8 x/ j3 v 129_CDH数仓_CM、Hadoop、Zookeeper安装.avi7 z) @! o) G0 @4 s; J 12_数仓采集_埋点数据基本格式.avi 130_CDH数仓_采集Flume的安装.avi# V L4 F& x1 t* }( Z8 F' o9 g' ` 131_CDH数仓_Kafka安装.avi" N8 o- i b/ W) o3 j8 j/ a/ g 132_CDH数仓_测试Flume和Kafka安装.avi 133_CDH数仓_消费Flume配置完成.avi6 ?$ m3 H4 m; C# ^$ j 134_CDH数仓_Hive、Oozie、Hue安装.avi# ]& Y, M2 |) A( o# Y( b& w 135_CDH数仓_用户行为数仓ODS层导数据.avi 136_CDH数仓_用户行为数仓完结.avi. F4 z* v& a; q" }% V* \ 137_CDH数仓_业务数据生成.avi7 W7 \$ ~$ n% w2 N, {( A; l! }8 K: S 138_CDH数仓_业务数仓完结.avi! N7 f. d0 U2 N( }' w) P- b" S 139_CDH数仓_Oozie执行前准备.avi 13_数仓采集_事件日志数据(上).avi2 S' ` H& ^& S3 a1 X 140_CDH数仓_Oozie任务编写及运行.avi 141_CDH数仓_即席查询数仓搭建Impala.avi 142_CDH数仓_Spark安装及总结.avi 14_数仓采集_事件日志数据(下).avi 15_数仓采集_日志生成代码编写.avi4 |* G) Z3 J4 ]/ b9 z$ @ 16_数仓采集_Logback日志打印控制.avi 17_数仓采集_服务器准备.avi 18_数仓采集_Hadoop安装.avi 19_数仓采集_项目经验之HDFS多目录配置.avi 20_数仓采集_项目经验之支持LZO压缩配置.avi j3 Q& D8 m* G9 R Q$ G 21_数仓采集_项目经验之基准测试.avi 22_数仓采集_项目经验之HDFS参数调优.avi; F" t) F) H7 W' {& L% n3 H ~7 s 23_数仓采集_Zookeeper安装.avi6 c1 v9 x4 \% K5 D. \0 M 24_数仓采集_项目经验之ZK集群启动停止脚本.avi( i1 P# ^( y1 Q- a 25_数仓采集_生成测试日志.avi 26_数仓采集_集群日志生成启动脚本.avi 27_数仓采集_集群时间同步修改脚本.avi, n2 a/ j1 @) t* d w 28_数仓采集_集群所有进程查看脚本.avi 29_数仓采集_每日回顾.avi; R" Y P2 X, E/ [+ B' j# ~& K. e 30_数仓采集_日志采集Flume安装.avi* V0 |0 U7 o- @* R; w) M 31_数仓采集_Flume组件及配置.avi 32_数仓采集_日志采集Flume配置分析.avi U6 j% Q4 F$ T6 U5 ^ 33_数仓采集_ETL拦截器.avi 34_数仓采集_分类型拦截器.avi! b5 ^. a8 ^; }$ x8 z) l2 U3 }" p 35_数仓采集_日志采集Flume启动停止脚本.avi2 ~/ r- J: h$ U, q/ e# e7 k% M 36_数仓采集_Kafka集群安装.avi3 L6 `7 F& o/ U6 F" U5 U 37_数仓采集_Kafka集群启动停止脚本.avi 38_数仓采集_Kafka Manager安装及脚本.avi& h9 z' v' g0 ^. }0 j 39_数仓采集_项目经验之Kafka压力测试.avi7 ~8 m+ w$ q/ G$ ?- _- K 40_数仓采集_项目经验之Kafka机器数量计算.avi 41_数仓采集_消费Kafka数据Flume.avi 42_数仓采集_项目经验之Flume内存优化.avi; q3 Q6 E! I, d7 n& k# {# B6 K 43_数仓采集_项目经验之Flume组件.avi- S+ J+ s/ {5 S0 d 44_数仓采集_采集通道启动停止脚本.avi! Q; X6 }4 C" g. f 45_数仓采集_调试经验.avi! P; q2 w N1 c i5 Z' c; i" i' O- x 46_数仓采集_面试题(Linux、Shell、Hadoop).avi2 R" A6 R7 D' p9 h( i. \ I" F9 w 47_数仓采集_面试题(Flume、Kafka).avi& A1 w0 W) S1 ~# i& n, } ~6 o( b& o 48_用户行为数仓_每日回顾.avi% U( @. v7 D* C* B W J 49_用户行为数仓_用户行为数仓课程介绍.avi 50_用户行为数仓_为什么要分层.avi! J- C* F* K' R* l 51_用户行为数仓_数仓分层.avi4 W _. ]: j5 U; l$ Q9 l. Q [/ u 52_用户行为数仓_数据集市与数据仓库概念.avi5 U5 c# e( Y8 B% c 53_用户行为数仓_数仓命名规范.avi 54_用户行为数仓_Hive&MySQL;安装.avi 55_用户行为数仓_Hive运行引擎Tez.avi! L# \% m0 s- F; A" q 56_用户行为数仓_项目经验之元数据备份.avi 57_用户行为数仓_ODS层启动日志和事件日志表创建.avi 58_用户行为数仓_ODS层加载数据脚本.avi' J8 ^- I/ b5 O3 Y) @9 a- h 59_用户行为数仓_DWD层启动日志建表及导入数据.avi9 h3 [. T0 F1 ~6 s! i/ J 60_ 用户行为数仓_DWD层启动表加载数据脚本.avi$ \1 Z0 Z/ m; d: F+ B5 u$ c 61_用户行为数仓_DWD层事件基础明细表创建.avi; Y& i+ U7 S6 P" X) T3 n! V 62_用户行为数仓_自定义UDF函数(解析公共字段).avi7 Q/ i) X8 O6 S0 M( V' m- ]- M 63_用户行为数仓_自定义UDTF函数(解析事件日志基础明细表).avi 64_用户行为数仓_DWD层数据解析脚本.avi 65_用户行为数仓_DWD层事件表加载数据脚本.avi 66_用户行为数仓_今日回顾.avi* e9 W+ P$ {5 ?! x9 [- e5 ]# a 67_用户行为数仓_业务术语.avi 68_用户行为数仓_日期的系统函数.avi 69_用户行为数仓_每日活跃设备明细.avi 70_用户行为数仓_每周活跃设备明细.avi 71_用户行为数仓_每月活跃设备明细.avi 72_用户行为数仓_DWS层加载数据脚本.avi- i* h$ d' Q7 M1 G0 ?% f 73_用户行为数仓_需求一:ADS层日活、周活、月活用户数.avi- I- Q* u3 n; v. n, T 74_用户行为数仓_每日新增设备明细表.avi/ B# |; {' c4 y6 y9 \2 r( i 75_用户行为数仓_需求二:ADS层每日新增设备表.avi 76_用户行为数仓_用户留存分析.avi 77_用户行为数仓_1、2、3、n日留存用户明细.avi v. ^5 Q1 \ `9 V4 Q 78_用户行为数仓_需求三:ADS层留存用户和留存比率.avi 79_用户行为数仓_新数据准备.avi 80_用户行为数仓_需求四:沉默用户.avi 81_用户行为数仓_需求五:本周回流用户数.avi 82_用户行为数仓_需求六:流失用户.avi2 x0 _( B( `, z4 j$ |5 S2 Z4 T- e% R) ] 83_用户行为数仓_需求七:最近连续3周活跃用户数.avi 84_用户行为数仓_需求八:最近七天内连续三天活跃用户数.avi- C- l" J O8 v3 x- J$ r 85_用户行为数仓_用户行为数仓业务总结.avi- V4 n, x9 B* A( P6 n/ e! E! U 86_用户行为数仓_Hive企业面试题总结.avi3 l9 J8 F2 t0 p& S! O! ^ 87_业务数仓_业务数仓课程介绍.avi 88_业务数仓_商业务与数据结构简介.avi 89_业务数仓_表的分类.avi# X. Q* ~# f7 F P' @; i+ z 90_业务数仓_同步策略.avi; k0 r$ A: b9 E) @1 W 91_业务数仓_范式理论.avi5 ~2 z+ A' F+ N- J" S% r 92_业务数仓_雪花模型、星型模型和星座模型.avi 93_业务数仓_配置Hadoop支持Snappy压缩.avi 94_业务数仓_业务数据生成.avi 95_业务数仓_Sqoop安装及参数.avi% s/ l0 E. R( Y9 s, h3 k 96_业务数仓_Sqoop导入数据.avi4 {8 ~! a8 o4 `" y: p5 {1 ^ 97_业务数仓_ODS层建表及数据导入.avi 98_业务数仓_DWD层建表及导入数据.avi 99_业务数仓_需求讲解.avi7 X6 q, I3 Y+ F: N8 h 源码笔记资料.rar0 W

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怕被各位卷死

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值