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 会演化成多处维护。