首页/数据/数仓建模速查/DWS 与 ADS 的边界判据
分层与规范64 条

DWS 与 ADS 的边界判据

DWS 保持口径中性、可跨报表复用;ADS 承载最终口径与展示形态(业务规则、单位、格式)。两者混用会让报表数字来源不明。

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

DWS 与 ADS 的边界

DWS 是面向主题域的轻度汇总层,口径中性、能被多个报表复用;ADS 是面向具体应用的结果层,承载最终口径与展示形态。两者混用后,同一张表的数字说不清来自哪一层,报表对不上时也无法判断是口径差异还是数据错误。

基本信息

DWS 职责口径中性、可跨应用复用
ADS 职责应用口径与展示形态
判据规则是否只属于某一应用
聚合指标落点DWS 汇总,ADS 做应用修正
文档口径写进指标卡

典型使用场景

  • 判断一段业务规则放哪层:被两个以上应用复用的聚合放 DWS,只服务单个报表的过滤与换算放 ADS
  • 报表数字对不上时按层排查:先比 DWS 是否一致,再逐个核对 ADS 的应用规则
  • 新报表上线优先复用已有 DWS 表,不为一个报表在 DWS 加专用过滤
  • 口径变更通知范围不同:DWS 变更要通所有下游,ADS 变更只需通知本应用
  • 发现 DWS 表名带应用名(如 dws_x_board)时,基本可判定落层错了

规则落点示例

规则落点示例
-- DWS:口径中性,不加应用侧过滤
SELECT store_id, dt, order_cnt, pay_amt
FROM dws_trade_store_day
WHERE dt = '2026-10-12';

-- ADS:承载应用规则,落成看板专用结果
CREATE TABLE ads_sale_board_day AS
SELECT store_id, pay_amt
FROM dws_trade_store_day
WHERE dt = '2026-10-12'
  AND store_id NOT IN (SELECT store_id FROM dim_internal_store);  -- 排除内部测试门店

边界判据对照

判断项放 DWS放 ADS
聚合粒度被多个应用复用单一报表专用
业务过滤通用维度过滤应用专属过滤
单位与格式统一口径按展示需要换算
表命名dws_<域>_<粒度>ads_<应用>_<粒度>
同一个指标在 DWS 和 ADS 各算一遍且公式不同,是最常见的数字对不上来源;指标卡里要写清哪一层是权威口径,另一层只是展示变体。
如果多张 ADS 表里出现完全相同的过滤或口径修正逻辑,说明这段规则本该沉到 DWS 或维表,继续留在 ADS 会演化成多处维护。

易错点

  • 业务规则写在 DWS:另一个下游拿到被过滤的数据,且从表面看不出来
  • DWS 表按报表名命名:第二个应用想复用时会与现有口径冲突,只能再建一张表
  • 同一指标在两层各算一遍且公式不一致:报表对不上时无人能判定哪个是权威值
  • ADS 表被多个应用共用并各自改口径:字段含义逐步失控,最后无法安全变更

数据来源与参考

  • 阿里《大数据之路:阿里巴巴大数据实践》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌