Agent Skills
返回列表
Doris 数仓建设规范

Doris 数仓建设规范

数据分析 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_60f50cbb/2134324234。

技能介绍

它解决什么问题

Doris 的物化视图让预聚合变得很便宜,代价是团队很容易把数仓建成一堆口径不明的 MV:DWD 里跨业务域 JOIN 造成扫描膨胀、DWS 用 FULL JOIN 拼宽表导致口径漂移、*DateKey 与源字段重复存储、PatientId 和 patientId 混用、上线后没人记得字段含义。这个技能把这类问题收敛成一套可执行的规范,而不是躺在 wiki 里的建议。

核心能力

分层与存储选型有明确规则:ODS 保持原样;DIM 和 DWD 一律用 MATERIALIZED VIEW 自动刷新,明细与维度数据预先算好;DWS 优先用 VIEW 零存储,只有高频聚合才落 MV。维度层做扁平星型模型,明确不采用雪花。

命名与字段约定可检查:分层前缀 dim_、dwd_、dws_;字段用 camelCase 对齐 ODS 源表大小写,消除 PatientId 这类 PascalCase 源字段的歧义;每个字段必须带中文 -- 注释,sourceTypeLevel1 这类下划线写法被禁止。

建模细节针对 Doris 特性:小维表用 [broadcast] hint,患者相关表用 colocate_with='patient_group' 配合 DISTRIBUTED BY HASH(patientId) BUCKETS 10;除数统一用 NULLIF 保护;DWS 用 UNION ALL + GROUP BY 替代 FULL JOIN,骨架表用源表 UNION 而非 CROSS JOIN;所有子查询带 statDate 过滤走分区裁剪,日期列直接用 DATEV2。DWD 只允许引用 ODS,禁止跨业务域 JOIN 与 DWD 互引。

交付物是完整工程:00_build_ods_all.sql 到 08_arch_fix.sql 的分层脚本、run_deploy.ps1 与一键部署脚本、部署指南、设计文档与使用文档,外加 12 项验收清单(对象数量、主键存在性、DWS 字段命名、colocate 配置、宽表 COUNT(*) 冒烟测试等)。

适用边界

  • 面向已有或新建 ODS 的 Doris 数仓,DWD 按单一业务域切分,适配医院、临床这类多业务域场景,跨域汇总交给 DWS。
  • 它是方法论加模板,SQL 模板与部署脚本里的占位符要按实际库表替换,不负责生成业务口径。
  • 不覆盖 ODS 的 CDC 链路设计,也不处理 BI 层的组合指标与值域、活动分层。
  • IsInactive、RecordUpdatedTime、TenantId 等系统字段被硬性排除在 DIM/DWD 之外,如果你的分析确实依赖它们,需要先在 ODS 侧加工。

使用场景

  • 新建 Doris 数仓时,编写分层 DDL 脚本并按规范命名各层对象
  • 在已有数仓中新增业务域,设计 DWD 与 DWS 宽表口径
  • 评审现有分层架构,检查 DWD 是否跨业务域 JOIN、字段命名是否一致
  • 交接数仓设计,补齐设计文档、使用文档与部署验收清单

适合人员

  • 数据仓库工程师:要在 Doris 上落地 DIM/DWD/DWS 分层的建表与脚本
  • 数据分析架构师:负责评审或重构 Doris 数仓的建模与命名规范
  • BI 开发工程师:需要稳定的 DWS 宽表口径与可复用的 JOIN 优化写法
  • 数仓团队负责人:要统一团队建模约定并输出标准化的部署与验收文档