字段命名风格
字段命名统一为小写加下划线(snake_case),不用驼峰、中文和空格。这一条在跨引擎时尤其重要:Hive 会把未加引号的字段名统一转成小写,源系统的 customerId 落到 Hive 里可能变成 customerid,与下游引用的写法不一致就会报字段不存在。除大小写风格外,字段还应当遵循「主体_对象_限定」的组合顺序,缩写在同一套数仓里保持一致。
基本信息
| 风格 | 全小写加下划线(snake_case) |
|---|---|
| 组合顺序 | 主体_对象_限定,如 user_id |
| 布尔字段 | 以 is_ 或 has_ 开头,如 is_first_order |
| 缩写约定 | 同一含义只用一种缩写,全库统一 |
| 禁止写法 | 驼峰、中文、空格、引擎保留字 |
常见字段模式
| 字段类型 | 命名规律 | 示例 |
|---|---|---|
| 主键与标识 | 以 _id 或 _sk 结尾 | order_id、customer_sk |
| 度量值 | 以 _cnt、_amt、_rate 结尾 | order_cnt、pay_amt |
| 布尔标记 | 以 is_ 或 has_ 开头 | is_new_user、has_coupon |
| 时间字段 | 以 _time 或 _date 结尾 | create_time、birth_date |
字段示例
字段示例
SELECT user_id, -- 主体 + 标识
order_cnt, -- 对象 + 数量度量
pay_amt, -- 金额度量
is_first_order, -- 布尔标记,is_ 开头
create_time -- 时间字段,_time 结尾
FROM dwd_trade_order_di;同一含义出现 customerId、cust_id、c_id 三种写法,下游关联与口径对齐都会出错:JOIN 时看着名字不同就当成两列处理,实际指的是同一个人,指标因此被拆分或放大。
命名冲突要提前规避:导出工具生成的 col1、col2 这类字段名,以及 order、group 这类各引擎的保留字,都应在建模阶段改成有含义且不冲突的名字;等表上线后再改,需要协调所有下游。
改字段名的影响面常被低估:下游脚本、BI 数据集、接口字段映射都可能引用它。所以新增含义时优先新增字段并把旧字段标注废弃,而不是直接改名;确需改名时要留出兼容期,让消费方自行切换。
字段一致性可以用工具检查:把字段清单导出成字段字典,定期比对同义字段的命名与类型,比人工评审更容易发现问题。字段字典同时也是新人熟悉这套数仓最快的入口。