吴乙己的数仓指南_4自顶向下需求拆解

0.引言

前面的四篇文章,为大家讲解了许多理论,没有见到落地的东西。在本章我将以一个简单的指标需求demo讲解从需求拆解为各层表设计的过程。

1.demo

1.1demo简介

用户是某制造业生产管理部门高管,希望每天9:00可以看到昨日一号车间生产总量以及总出勤时长

1.2 设计过程

1.2.1设计ADS层表结构

基于demo,我们得到了生成ADS层表的4个关键要素,也就是分析维度统计周期业务限定,和计算公式

分析维度:日期(昨日),部门(一号车间)
统计周期:每日刷新,9:00前需刷新完毕
业务限定:昨日/一号车间
计算公式:生产总量——sum(产量),总出勤时长——sum(出勤时长)

有了这4个要素,就可以设计出ADS表的表结构:
在这里插入图片描述
——彩色部分为实际表结构,无底色部分为汇总说明,文章后面内容也是如此

1.2.2设计DWS层表结构

基于上一小节设计的ADS层表结构,我们可以看到该汇总表根据度量分解由两个原子指标构成。因两指标之分析维度并不全量匹配,故需拆为两表。

1.昨日一号车间各产品生产总量

分析维度:日期(昨日),部门(一号车间),产品品类(各产品)
统计周期:每日刷新,9:00前需刷新完毕
业务限定:昨日/一号车间
计算公式:生产总量——sum(产量)

在这里插入图片描述

2.昨日一号车间总出勤时长

分析维度:日期(昨日),部门(一号车间),人员(打卡)
统计周期:每日刷新,9:00前需刷新完毕
业务限定:昨日/一号车间
计算公式:总出勤时长——sum(出勤时长)

在这里插入图片描述

如果多个原子指标的分析维度统计周期业务限定都是可以复用的,而且在分析场景中是基于业务高内聚的,我们可以把它们放在一个DWS层表中。

1.2.4设计DWD层表结构

基于DWS层表结构以及统计周期/业务限定/原子指标,可以设计出DWD层表结构,有:

1.车间装箱明细表

在这里插入图片描述
P.S.代理键可理解为主键

2.车间员工打卡明细表

在这里插入图片描述

【重要】实际场景事实表的设计方式要基于业务需求数据来源

1.2.5设计维度表结构

综上,在该业务需求中有4种维度:日期/部门/人员/产品品类。
此处以日期举例有:
日期:

在这里插入图片描述

维度表的设计应考虑当下分析和未来的分析需求,具体业务问题具体设计。

1.2.6设计ODS层表结构

基于DWD表&数据源支持情况设计ODS层表结构:
1.车间装箱明细表

在这里插入图片描述

2.车间员工打卡表

在这里插入图片描述

【重要】实际场景事实表的设计方式要基于DWD层表结构数据来源

2.最大公约数

细心的阅读者可能已经发现,衍生指标一拥有日期/部门/产品品类,三个维度;衍生指标二拥有日期/部门/人员,三个维度;而组装出的汇总表只有日期/部门两个维度。

与1.2.2最后一句的含义相同,我抛出的就是“最大公约数”原则,多个指标组装,组装出的汇总表拥有的维度组合单元必须是所有指标共有的


以上就是本章内容,如何设计表明、字段名、字段类型、表更新逻辑、DAG图在这里不再展开,相信大家看到图中示意,如何落地表+设计ETL任务已经一目了然。

看完本章大家如果只能记住一个词我希望是“最大公约数”。

下一章讲一下维度建模常用的技巧,敬请期待。

【版权所有,翻版必究。】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值