做了 3 年数仓,才发现分层的本质不是分表,是分职责 📅 2026/8/11 5:56:15 数仓分层治理问「详细讲一下 DWM、DWT、DWS 这些层的具体职责以及它们之间的数据流向。如果 DWS 层某个指标不准了你会怎么排查」字节数仓分层比传统 4 层更细层级全称职责示例表ODSOperational Data Store原始数据不做处理ods_orders, ods_user_behaviorDWDData Warehouse Detail清洗 维度退化 标准化dwd_order_detail, dwd_user_login_logDWMData Warehouse Middle轻度汇总通用中间层dwm_user_order_daily每个用户每天的订单汇总DWTData Warehouse Topic主题宽表跨域关联dwt_user_behavior_wide用户行为宽表DWSData Warehouse Service服务层聚合面向指标dws_gmv_daily日 GMV 指标ADSApplication Data Service应用层直接对接报表ads_dashboard_gmv_trend数据流向 ODS ─→ DWD清洗/标准化─→ DWM轻汇总─→ DWT主题宽表─→ DWS指标─→ ADS应用 └── 可以跳过 DWM/DWT 直接 DWD → DWS简单指标 └── DWM 和 DWT 之间可以双向DWT 反过来给 DWM 提供维度DWS 指标不准排查流程Step 1: 确认异常时间点→ 查监控看板确认是哪个 dt 的指标出问题Step 2: 分层回溯→ ADS 层对比昨天今天的数据量确认问题在 ADS 还是更下层→ DWS 层查该 dt 的数据量和历史同期的偏差确认问题是否在 DWSStep 3: 血缘追踪→ 查数据血缘工具Atlas / DataHub / 自研看 DWS 表依赖哪些上游表→ 逐层向上追踪DWS ← DWT ← DWM ← DWD ← ODSStep 4: 上游表对账→ 对每个上游表抽样对比今天 vs 昨天的数据量、NULL 率、关键字段分布→ 哪个表的数据量和历史偏差最大大概率是脏数据来源Step 5: 根因定位→ ODS 层问题上游业务系统字段变更 / 数据未写入 / 格式变化→ DWD 层问题清洗逻辑改动 / 增量数据未触达 / 分区写入失败→ DWM/DWT 层问题JOIN 逻辑变更 / 关联率下降Step 6: 修复 通知→ 重跑失败任务 通知下游 建专项数据质量监控规则