数仓命名规范

数据仓库命名规范:简洁、一致、可扩展

数仓开发命名规范主要分为以下几个方面

(1)数据仓库命名规范

(2)表命名规范

(3)字段命名规范

(4)字段类型规范

数据仓库命名规范

库命名库描述数仓层命名命名备注
ods数据操作存储层/贴源层odsods_开头
dwd数据明细层dwddwd_开头
dws数据汇总层dwsdws_开头
ads/dm数据应用层ads/dmads/dm_开头
dim统一维度层dimdim_开头
temp临时数据处理层temptemp_开头

表命名规范

  1. 命名全部采用小写字母和数字构成,只能以字母开头,并且尽量避免使用数字。
  2. 命名应采用能够准确反映其中文含义的英文单词或英文单词或中文缩写构成,避免出现英文单词和汉语拼音混用的局面。
  3. 命名长度尽量控制在30个字符以内,考虑可读性、易懂性、规范性;如果超过30个字符,尽量把长单词转换成缩略词。
  4. 名称的各部分之间以"_"(下划线)拼接。
  5. 数据域、主题域命名统一管理

ODS层表命名规范:

表名规范:ods_来源类型[业务|系统]_业务表名_装载策略_装载周期

表名示例:ods.ods_his_surgery_info_i_d

规范说明:

     -- 存储库名(分层前缀):ods

     -- 来源类型(业务域|系统名):区分不同来源及系统,含结构化、半结构及非结构化数据。如HIS系统,AIMS手麻系统,PACS影像中心等。
     
    -- 业务表名:与数据来源系统一致,以避免造成其二义性。有分表则去除分表规则,目标添加source_table字段区分来源表名。

     -- 装载策略:增量(i)、全量(a)、快照(s)、 拉链(h)、

     -- 装载周期:根据实际装载周期确定。实时(rt)、小时(h)、天(d)、周(w)、月(m)、季(q)、年(y)、一次性任务(o)、无周期(n)

DWD层表命名规范:

表名规范:dwd_一级数据域_二级数据域[_业务过程]_业务描述_装载策略_装载周期

表名示例:dwd.dwd_cdr_surgery_record_i_d

规范说明:

    -- 存储库名(分层前缀):dwd

     -- 一级数据域:临床数据、运营数据、科研数据等等

    -- 二级数据域(若没有可直接到业务过程):手术、用户、耗材、护理、门诊、住院等等

    -- 业务过程:入院、出院、检查、检验等等,统一定义

    -- 业务描述:描述业务内容(手术记录)

    -- 装载策略:增量(i)、全量(a)、快照(s)、 拉链(h)

    -- 装载周期:根据实际装载周期确定。实时(rt)、小时(h)、天(d)、周(w)、月(m)、季(q)、年(y)、一次性任务(o)、无周期(n)

DWS层表命名规范:

表名规范:dws_一级数据域_二级数据域_数据粒度_业务描述_统计周期_装载周期

表名示例:dws.dws_cdr_hos_person_cnt_1d_d(最近一天的住院人次数量)
dws.dws_cdr_hos_person_cnt_cd_d (当天的住院人次数量)
dws.dws_cdr_hos_person_cnt_cm_m (当月的住院人次数量,按月分区)
规范说明:

    -- 存储库名(分层前缀):dws

    -- 一级数据域:临床数据、运营数据、科研数据等等

    -- 二级数据域:手术、门诊、住院、费用等等

    -- 数据粒度:描述业务数据粒度

    -- 业务描述:描述业务内容

    -- 统计周期:统计实际周期范围,缺省情况下,离线计算应该包括最近一天(_1[h|d|w|m|q|y]),最近N天(_n[h|d|w|m|q|y])和历史截至当天(_t[h|d|w|m|q|y])三个表。当前周期如当天,当月(_c[h|d|w|m|q|y])。小时(h)、天(d)、周(w)、月(m)、季(q)、年(y)。
    
    -- 装载周期:根据实际装载周期确定。实时(rt)、小时(h)、天(d)、周(w)、月(m)、季(q)、年(y)、一次性任务(o)、无周期(n)

ADS层表命名规范:

表名规范:ads_应用类型_业务主题_业务描述_统计周期_装载周期

表名示例:ads.ads_bi_channel_user_1d_d

规范说明:

    -- 存储库名:ads

    -- 应用类型:固定报表、分析报表、标签系统、用户画像、数据接口

    -- 业务主题:看板、驾驶仓、三级绩效、二级绩效等等

    -- 业务描述:描述业务内容

    -- 统计周期:统计实际周期范围,缺省情况下,离线计算应该包括最近一天(_1[h|d|w|m|q|y]),最近N天(_n[h|d|w|m|q|y])和历史截至当天(_t[h|d|w|m|q|y])三个表。小时(h)、天(d)、周(w)、月(m)、季(q)、年(y)。
    
    -- 装载周期:根据实际装载周期确定。实时(rt)、小时(h)、天(d)、周(w)、月(m)、季(q)、年(y)、一次性任务(o)、无周期(n)

DIM层表命名规范:

表名规范:dim_业务主题_业务描述_[装载策略_装载周期]

表名示例:dim.dim_cdr_surgery_level_a_d、dim_odr_org_info_s_d

规范说明:

    - 存储库名:dim

    - 业务主题:临床数据、产品等等

    - 业务描述:手术级别、组织机构信息等

    - 装载策略:增量(i)、全量(f)、快照(s)、 拉链(h) 
    
    - 装载周期:根据实际装载周期确定。实时(rt)、小时(h)、天(d)、周(w)、月(m)、季(q)、年(y)、一次性任务(o)、无周期(n)

TEMP层表命名规范:

表名规范:temp_目标表名_((数据日期[_数据小时])|(开始日期_结束日期))

表名示例:temp.temp_dwd_log_app_click_info_i_d_20210311(会话表)、temp.temp_username_test_20210311_20210321 (临时表)

规范说明:

     - 存储库名:temp

    - 目标表名: 会话表:目标表名,临时表:业务描述

    - 数据日期:ETL跑批日期 、ETL数据处理日期

    - 数据小时:ETL跑批小时 、ETL数据处理小时

    - 开始日期:临时表有效开始日期

    - 结束日期:临时表有效结束日期

字段命名规范

通用规范:

命名全部采用小写、字母和数字构成,且只能以字母开头,并且尽量避免使用数字;

不允许使用除数字、字母、下划线之外的特殊字符 命名应采用能够准确反映其中文含义的英文单词或英文单词缩写构成,避免出现英文单词和汉语拼音混用的局面,尽量达到见字知意效果。

其他:

【禁止】禁止使用关键字,如desc、from、select、left、join、time等 等,请参考Hive官方保留字。

【禁止】禁止缩写英文单词的首字母的元音

【强制】表名、字段名必须使用小写字母或数字,必须以字母开头,禁止使用除数字、字母、下划线之外的特殊字符,禁止两个下划线中间只出现数字。

正例:create_time,create_name

反例:ctime,cname

字段约束
字段命名优先使用词根中已有关键字(数仓标准配置中的词根管理),定期 Review 新增命名的不合理性。

  • 词根的设计-指标规范:
基础词根字段类型词根样例样例中文
数量int/bigintcntperson_cnt人员数量
金额/费用decimal(8,2)/decimal(18,4)amthos_amt住院费用
比例/占比/比率double/decimal(8,2)rateout_hos_rate出院率
日期类型词根
小时h
d
w
m
q
y
聚合类型词根备注样例样例中文
累加/求和td按周累加/求和/累计hos_cnt_wtd周出院人数
平均avg按天/周/月/年平均host_cnt_wavg周平均出院人数

字段类型规范

长度一般不能超过25个字符长度。如无特殊需要,只允许使用以下几种字段类型。

类型释义场景举例备注
string字符串类型名字、评论、地址
bigint整形类型人数、人次数、数量、人均数量
double浮点型类型比例、比率、占比
decimal高精度浮点型类型金额、费用、人均费用推荐精度(18,4)
复合类型复合类型map,array
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值