表的命名要做到见名知意,通过表名就可以知道它是哪个业务域,干嘛用的,什么粒度的数据。
1 表规范
公式:层-域-表描述-时间周期
1、业务接入层:ods_{源数据库类型}_{库名}_{表名}
2、维度层:dim_{维度定义}
3、明细层:dwd_{数据域}_{业务过程}
4、汇总层:dws_{主题域}_{业务过程}
2 字段规范
1、有ID字段,尽量也有NAME字段
2、如果是HIVE关键词,加_col结尾(eg. select_col)
3、判断型,is_
4、金额类,(rmb)
5、日期类,(date)
6、计数类,{业务含义}{时间区间}{计数标识 cnt、uv、pv}
3 注释规范
所有字段都要有注释,简洁、明确
1、枚举型,例状态说明:1-有效,0-无效
2、金额型,{单位}(RMB)
3、判断型,{是否}订单有效
4、外健型,[被参照表.]被参照字段
5、废弃型,已废弃,参照新字段[col]
4 代码规范
1、Id 统一大小写
2、字符串类统一替换空格 回车 制表符等
3、数据表 如果有bit类型 统一换成 tinyint,因为hadoop读取不了bit型的数据
5词根库
业务域、主题域我们都可以用词根的方式枚举清楚,不断完善,粒度也是同样的,主要的时间粒度、日、月、年、周等,使用词根定义好简称。
多次出现的要增加到词根库。