本节课主要是梳理数据仓库的基础知识,详细课程内容可以去b站观看,搜索《小晨说数据》就可以。
武哥的初衷,就是让天下没有难学的数仓,欢迎????大家提问题,大家在公司遇到的问题都可以一起探讨交流
整理群内学员问题:
问题1:
阿里4层架构,ods-dwd-dws-ads会将dwd明细事实表的某些重要维度属性字段做适当冗余,即宽表化处理
但是有些架构比如武哥介绍ods-dw-dmd-dms-ads不建议在dw做维度退化,dw只做数据解析和清洗和加密,dw为啥不建议做维度退化,是出于什么考虑呢
问题2:
举例子还款计划表,数据量比较大,源系统mysql根据状态,对已结清的信息导入还款计划历史表tb1,未结清的导入还款计划表tb2
tb1和tb2表结构一致,那么tb1和tb2入仓时,如果需要合并,在ods层做,还是dw层做合适呢?(分库分表同例)
问题3:
业务部门有构建数据集市需求,构建仓内集市,按照ods-dw-dmd-dms-ads,集市层放到哪层比较好呢,对于不同部门的集市构建不同的库?还是一个库按业务划分
武哥回解答:
为什么在DW层不考虑做退维,首先一点是在DW层,我们要退维的话,首先要构思好你的维表,但是你的维表可能来自于各个的业务部门以及各个的中间部门,那么你维表要构思好,构思好之前你需要将维表这套体系全部捋明白和打通,并且作为维表的宽表去推广。
不同的部门侧重点不一样,所以对于我们来说,每个bu也好,每个app_name也好,他们都有单独的一套体系,既然是单独的一套体系,共同性肯定只有50%-60%,其他都是各自的重点的东西,所以说不同的业务,不同的划分方式以及不同的建域模型。
现在书仓有两套做法,一套慢工出细活:我按部就班的做模型建设,从DW开始做退维,但实际上大多数业务场景下我们跟不上业务的迭代,因为我做的是业务数据仓,所以我要快速的业务迭代,所以在DW,我一般会选择不退位,因为人力有限,第二我会在DMD存货DMS层进行一次扩充和退化,要不然的话我上层建筑玩不了,所以说这是我的考虑。
推荐阅读武哥原创:
进武哥交流群加武哥助理:vx(喜欢学习的来哈)
公众号回复:“资料全集”,海量PPT等你来拿。