1.背景
工作中遇到个问题,那就是我们有了一批数仓 dw层的表,这时候需要开发一批dm表,用于下发数据,大约有30+张表,互相之间是有依赖关系的
比如:有一张 t_org 组织关系表,用来确定下发的学校是哪个区域的
其他的表需要下发这个区域 A,都需要关联这个表
这时候我们就有两个选择
- 每个表都关联 t_org 并且筛选 区域 A
- 先生成一个下发表 dm_org ,之后的表都关联 dm_org
看起来好像影响都不大,都能成功下发,方案二貌似还能减少数据的筛选关联,提升效率
2.结论及说明
其实在工作中我们都会选择方案1
为什么呢?有如下几点考虑
-
通常情况下,数仓dw表都是稳定的,建模相对固定,变化频率很低的,也就是上层基本稳定,那么对下层的影响就很小
-
第二种方案,把数据计算的逻辑变长了,这时候就给了数据从中间变动的机会,如果在生成dm_org的时候这次是需要10个字段,然后交接给另外一个人,那个人拿到一个需求,是去除2个字段,他不了解上下游关系,只做了字段减少,就会导致下游数据出现问题
-
越多的表使用这个表,将来影响的面越广,最终导致积重难返