首页/数据/数仓建模速查/建表 DDL 模板(含注释与分区)
分层与规范64 条

建表 DDL 模板(含注释与分区)

团队统一 DDL 模板:字段清单、类型、注释、分区、存储格式、表注释六要素齐全;新建表复制模板改字段,避免漏项。

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

DDL 模板是什么

建表 DDL 模板把团队约定固定成六要素:字段清单、字段类型、字段注释、分区定义、存储格式、表注释。新建表时复制模板改字段,能避免漏项——尤其是字段注释与表注释,这两项漏了以后补写要改元数据,成本远高于建表时顺手写上。模板还应固化命名与存储格式的选择,让评审有据可依。

基本信息

六要素字段、类型、注释、分区、存储格式、表注释
字段顺序普通字段在前,分区字段单独声明
存储格式ORC 或 Parquet,列式且可压缩
表注释内容业务含义、粒度、周期、负责人
管理方式模板纳入代码库,变更走评审

典型使用场景

  • 新建明细表:复制模板改字段与注释,几分钟内产出规范 DDL
  • 代码评审:按六要素逐项检查,缺注释或缺分区的表直接打回
  • 交接与检索:表注释写明粒度与负责人,接手者不必逐个问人
  • 批量建表:模板参数化后由脚本生成,避免手写差异
  • 历史表整改:用模板逐项补齐缺失的注释与分区定义

六要素与后果

要素要求漏掉的后果
字段类型金额用定点小数,时间按需选类型类型不一致导致下游比较与汇总出错
字段注释每列都写 COMMENT,注明含义与单位后补注释要改元数据,含义无人说得清
分区定义明确分区字段与取值格式没有分区,查询只能全表扫描
存储格式统一 ORC 或 Parquet文本格式让扫描量成倍上升
表注释写明业务含义、粒度、周期、负责人判断不了这张表能不能用,容易取错

DDL 模板

DDL 模板
CREATE TABLE dwd_trade_order_di (
  order_id     STRING        COMMENT '订单ID',
  customer_sk  BIGINT        COMMENT '客户代理键',
  store_id     STRING        COMMENT '门店ID',
  pay_amt      DECIMAL(18,2) COMMENT '支付金额,单位元',
  create_time  STRING        COMMENT '下单时间 yyyy-MM-dd HH:mm:ss'
)
COMMENT '交易域订单明细-日增量;粒度:order_id;负责人:data-zhang'
PARTITIONED BY (dt STRING COMMENT '数据日期 yyyy-MM-dd')
STORED AS ORC;
-- 建表后确认结构符合约定
DESCRIBE FORMATTED dwd_trade_order_di;
模板纳入代码库管理,变更模板需评审,避免各团队自行演化出多套风格。模板的价值不在格式好看,而在于把「一张表该写清什么」变成不需要讨论的事。
内部表与外部表的选择也建议写进模板说明:贴源层用外部表,删除表只删元数据、文件保留;加工层用内部表,生命周期由数仓统一管理。这两种表误用的后果差别很大。

易错点

  • DDL 缺字段注释:上线后补注释要改元数据,还容易出现同一字段多种理解
  • 表注释不写粒度与周期:下游无法判断这张表能不能用,容易取错
  • 存储格式不统一:文本格式表扫描量成倍上升,查询性能差异明显
  • 模板不入代码库:各团队各自演化,评审时没有统一标准可依
  • 字段顺序与分区定义随意:同类表结构不一致,脚本无法复用

数据来源与参考

  • Hive 官方文档:LanguageManual DDL
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌