数据仓库开发规范
Schema定义
ODS层
ods_业务系统名_业务系统里的schema名(如ods_lps_kkb_cloud_passport)
DM层
应用层
DWD层
数据清洗层,去重,标准化,数据补齐。
可以基于ER建模和维度建模。
DWS层
数据汇总与过程表维度表
TEMP层
临时表
DIM表
公共维度
EXT层
外部导入表,短期或长期使用,由该表负责人自己维护
开发环境:
DEV_DM
DEV_DWD
DEV_DWS
DEV_TEMP
DEV_EXT
DEV_DIM
表的定义
采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线''组成,命名简洁明确,多个单词用下划线''分隔(特殊符号以及-严格要求不准使用)。
全部小写命名,禁止出现大写
表名称命名禁止使用数据库关键字,如:name,time ,datetime,password,tmp,ext等
用单数形式表示名称,例如,使用 employee,而不是 employees
单词单词分割用_分割
表名称的通用命名规则:
表名类型_主题域名称_业务名称1_业务名称2_后缀类型
备注:
表名类型:
DIM 维度表
FCT 事实表,事件表,关系表
RPT 报表类表
APP 数据产品类模型或其他服务宽表
MID 中间表
SMY 数据汇总表
后缀类型:
H 0-23 颗粒度快照表
D 天颗粒度快照表
M 月颗粒度快照表
Y 年颗粒度快照表
P 累计表或者过程表
V 视图表
_di是日快照,增量抽数,昨天的数据。
_f(a)是日快照,全量抽数,历史到昨天的数据。
表存储形式:
无分区表和分区表,分区表一般以时间维度做分区列
DW层表经常使用的表类型
DIM和FCT类型表
DM层经常使用的表类型
RPT表
表创建
其他项目组成员如需要创建临时自用表,需要通过外部表的方式进行创建,数据文件创建在自己的文件系统中如
create external table test(id int,name string,age int,tel string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
location '/user/liudaipeng/data/test';
如创建一个临时的外部表test到/user/liudaipeng/data/test目录下。
字段定义
采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线''组成,命名简洁明确,多个单词用下划线''分隔
全部小写命名,禁止出现大写
字段首字符必须为英文字母,避免字段名为hive关键字
字段名称一般采用名词或动宾短语
不要在列的名称中包含数据类型
单词单词分割用_分割
正确例子:
①名词 示例:user_id user_name sex
②动宾短语 示例:is_friend is_good
错误例子:
①大小写规则不统一
错误示例:user_id houseID
说明:使用统一规则,修改为”user_id”,”house_id”
②加下划线规则不统一
错误示例:username userid isfriend isgood
说明:使用下划线进行分类,提升可性,方便管理,修改为”user_name”,”user_id”,”is_friend”,”is_good”
保留常用字段,数据中台下面字段代表特有含义
id 表主键,一般数据中台代理主键
created_time 创建时间
updated_time 更新时间
process_day etl处理日期
year 分区年字段
month 分区月字段
day 分区日字段
T+1的数据,数仓的dim表 和 fct表,过滤数据 日期到昨天。核对数据条数时,取截止昨天的业务数据条数与数仓数据条数核对。