

DWD层不做跨域的核心原因(美团数据开发面试要点)
DWD明细层核心设计原则
单域、明细、原子、可复用、高内聚低耦合,基于该原则,DWD层不支持跨域操作。
主要有 4 个原因:
1 违背分层职责(单一职责原则)
DWD只负责单个业务域的清洗、去重、标准化、脱敏,比如用户域、订单域、商品域各自独立。 跨域关联、整合是汇总服务层DWS的职责,不能下沉到明细层。
2 表耦合严重,维护成本极高
如果DWD里跨域join其他域表,一旦上游某张表结构、逻辑、粒度变了,所有用到它的跨域DWD表全部要改, 牵一发动全身,线上稳定性极差。
3 口径混乱、无法复用
不同业务会做不同的跨域逻辑,如果都写在DWD,会出现同样的关联逻辑散落在多张表, 相同指标口径不一致,明细表变成定制化表,无法被其他主题通用复用。
4 明细膨胀、性能浪费
DWD是最细粒度明细,跨域join会导致数据量爆炸、存储翻倍、计算变慢, 违背明细层轻量、高效、基础的定位。
所以:DWD 只做单域,跨域必须上浮到 DWS。
往期精彩
零售行业数仓本体建模落地方案
读者提问:DWD 层用户登录明细事实表是否只保留最后一次登录明细?去重逻辑应放在 DWD 层还是 DWS 层?
数据本体论如何指导数仓建模?
用Java OOP思想透视数仓模型设计原则:从理论共鸣到数据资产增效
指标与标签体系协同设计策略
SQL实战:电商用户季度累计消费金额测算与多维度排名分析
渠道用户生命周期价值 (CLV) 数据分析实战 | HiveSql
用 Java 面向对象思想,解锁数仓宽表设计的底层逻辑
SQL高效技巧:如何优雅地求解滑动窗口最大值
数据开发面试通关:如何用“最字法”拆解你的核心竞争力?
滴滴网约车数分笔试 SQL 题:用户分层与取消率 Top 用户挖掘
技术债务缠身的老数仓,是先重构还是先业务?
网硕互联帮助中心




评论前必须登录!
注册