Doris 数仓分层建模规范
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_60f50cbb/adminwdq。
技能介绍
要解决什么问题
在 Apache Doris 上落地 ODS/DIM/DWD/DWS 分层时,团队常遇到物化视图刷新语法不一致、REFRESH AUTO ON COMMIT 误用于高频 CDC、MV 嵌套周期配置不当导致数据时差,以及 ODS 层混入过滤与 JOIN 等问题。本技能把无固定库绑定的通用规范写进 Agent 工作流:脚本首行由使用者自行 USE 业务库名;,连接说明统一为 IP:9030,并明确 Doris ≥ 2.1.4 才可用 ON COMMIT。
技能如何组织规范
- 分层对照表:ODS 为 Unique Key 物理表镜像 CDC;DIM/DWD/DWS-MV 为 Duplicate Key 物化视图(禁止手动指定 Unique/Aggregate Key);DWS-VIEW 为无落地的逻辑宽表。
- 刷新策略:单表低写入用
BUILD IMMEDIATE REFRESH AUTO ON COMMIT;多表合并与日批用ON SCHEDULE EVERY 1 DAY;同业务多子表 DWD 区分 11 分钟与 30 分钟定时,且定时语句必须带ON SCHEDULE。 - 命名与字段:
ods_、dim_*_df、dwd_*_mini、dws_*_mv/dws_*_wide;全局统一审计字段,禁止分区与lifecycle。 - 部署顺序:ODS + Routine Load → DIM(先 ON COMMIT 再日批合并)→ DWD → DWS-MV(间隔大于上游)→ DWS-VIEW。
- 故障排查:通过
tasks()查 MV 刷新 FAIL,四步流程(状态 → ErrorMsg/LastQueryId → FE/BE 日志 → 手动完整刷新);注意tasks()仅保留约 100 条近期记录。
适用边界
DWD 禁止跨业务事实表 JOIN;DIM/DWD 不存用户姓名等长文本(仅 user_id,文本在 DWS 视图侧);DWS-VIEW 不做比率、同比、窗口等复合计算,交给 BI。实时持续 CDC 严禁 ON COMMIT。无 ADS 层对象;storage_medium 仅为可选优化,非强制校验项。
使用场景
- 新业务库首次在 Doris 上批量建 ODS Unique 表并配置 Routine Load,需要按固定顺序部署 DIM/DWD/DWS
- 同业务多张流水子表要写 DWD 物化视图,需区分 11 分钟与 30 分钟 `ON SCHEDULE` 且避免误用 ON COMMIT
- 上线前要对全量 SQL 做分区、lifecycle、跨业务 JOIN 等 13 项通用校验,避免违反分层禁用清单
- DWS-MV 刷新 FAIL 时,需按四步流程查 RefreshState、`tasks()` 的 ErrorMsg 并手动完整刷新兜底
适合人员
- 负责 Doris 集群建模的数据平台工程师,要把 ODS/DIM/DWD/DWS 刷新策略与命名写成可评审的统一脚本
- 维护日批与准实时 CDC 的数仓开发,需要在 2.1.4+ 集群上正确选用 ON COMMIT 与定时刷新
- 上线前做 SQL 门禁的数据治理或架构同学,需对照禁用语法与 MV 嵌套周期约束逐项验收
- 值班排查物化视图 FAIL 的 DBA/运维,熟悉 Navicat 与 MySQL 命令行两种 `tasks()` 查询写法