1 2 Fork me on GitHub 6

数据仓库开发规范

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表,过滤数据 日期到昨天。核对数据条数时,取截止昨天的业务数据条数与数仓数据条数核对。

posted @ 2021-01-08 14:57  peng_li  阅读(679)  评论(0编辑  收藏  举报
1