首页/数据/数仓建模速查/数据集市层 DM 的位置与取舍
分层与规范64 条

数据集市层 DM 的位置与取舍

部分团队在 DWS 与 ADS 之间设 DM(集市)层,用于业务线隔离与独立口径演进;代价是多一层存储与调度,需要明确与 DWS 的边界。

数仓建模速查数据更新于 2026-10-13

数据集市层 DM 的位置与取舍

部分团队在 DWS 与 ADS 之间设一层 DM(数据集市),用来隔离业务线:每条业务线有自己的集市,口径可以独立演进,不被其他业务牵制。代价是多一层存储与调度链路,所以必须先划清 DM 与 DWS 的边界,否则同一指标会在两层各算一遍。

基本信息

位置DWS 之后、ADS 之前
主要目的业务线隔离与口径独立演进
代价多一层存储与调度链路
替代方案DWS 按主题域划分直接服务 ADS
设层判据是否存在稳定且独立演进的口径集合

典型使用场景

  • 多条业务线口径差异大且各自独立演进:为每条业务线建集市,变更互不影响
  • 口径统一、维度共享的团队:DWS 直接服务 ADS,不额外引入 DM 层
  • 命名按业务线前缀区分(dm_trade_、dm_user_),避免与 DWS 表混淆
  • 成本评估:每加一层就多一份调度与回刷链路,先算清维护人力再决定
  • 治理检查:同一指标在 DM 与 DWS 各算一遍时收敛到一层,明确权威口径

目录与命名示意

目录与命名示意
corp_dw.dm_trade_store_day    交易线集市(门店日汇总)
corp_dw.dm_user_active_day    用户线集市(活跃日汇总)
corp_dw.ads_trade_board_day   交易线看板结果(消费 DM)

边界原则:DM 面向业务线,DWS 面向主题域
同一指标只在一层权威计算,另一层只做引用与展示加工

取舍参考

场景建议原因
多条业务线口径差异大设 DM 层变更互不影响
口径统一、维度共享DWS 直接服务 ADS少一层链路更易维护
只为单个报表服务不设 DMADS 即可承载
设层判据是「存在稳定且独立演进的口径集合」;如果只是临时报表需求,用 ADS 承载更轻,也不必为它长期维护一条链路。
DM 表要写清它的上游与权威口径归属:它从 DWS 派生,但不复制口径计算逻辑,否则两层的数字会慢慢漂移,对账变成常态工作。

易错点

  • DM 与 DWS 职责重叠:同一指标在三处计算,数字不一致且无人知道该信哪个
  • 为单个报表引入 DM 层:调度与回刷链路变长,收益不抵维护成本
  • DM 层重新实现口径计算:与 DWS 结果逐渐漂移,对账成为日常负担
  • 集市命名不带业务线标识:跨业务线取数时拿错表,口径混淆

数据来源与参考

  • DAMA-DMBOK 第2版
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌