数据仓库命名规范详解

一、数仓中为什么要在数据开发过程中强调遵守数仓开发命名规范呢?

  • 养成良好的编程习惯
  • 写出清楚、易懂、易维护的程序代码
  • 提高代码质量与沟通效率
  • 减少编码中的不必要的错误

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

(1)数据仓库命名规范

(2)表命名规范

(3)字段命名规范

(4)字段类型规范

三、规范详解

(1)数据仓库命名规范

数据仓库命名规范详解_第1张图片

(2)表命名规范

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

ODS层表命名规范:

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

表名示例:ods.ods_db_logs_gold_logs_i_d

规范说明:

         -- 存储库名:ods

         -- 来源类型:区分不同来源及系统,含结构化、半结构及非结构化数据。

        -- 类型分类:DataBase(db)、Http(api)、Rsync Log(rsync)、MQ(topicName)、hive(layerName)。

        -- 业务表名:与数据来源系统一致,以避免造成其二义性。有分表则去除分表规则,目标添加source_table字段区分来源表名。

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

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

DWD层表命名规范:

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

表名示例:dwd.dwd_log_app_click_info_i_d

规范说明:

        -- 存储库名:dwd

         -- 一级数据域:用户域、内容域、日志域、财务域、互动域、服务域等等

        -- 二级数据域:移动端、Web端、会员、金币等等,统一定义

        -- 业务过程:曝光、浏览、点击、注册、登录、注销等等,统一定义

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

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

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

DWS层表命名规范:

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

表名示例:dws.dws_log_mbr_event_info_1d

规范说明:

        -- 存储库名:dws

        -- 一级数据域:用户域、内容域、日志域、财务域、互动域、服务域等等

        -- 二级数据域:流量、渠道、会员、留存、事件等等

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

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

        -- 统计周期:统计实际周期范围,缺省情况下,离线计算应该包括最近一天(_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)。

ADS层表命名规范:

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

表名示例:ads.ads_rpt_channel_user_1d_d

规范说明:

        -- 存储库名:ads

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

        -- 业务主题:看板、驾驶仓、ROI、渠道分析、漏斗分析、留存分析、活跃分析等等

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

        -- 统计周期:统计实际周期范围,缺省情况下,离线计算应该包括最近一天(_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_pub_city_lvl、dim_pub_chl_i_h

规范说明:

        - 存储库名:dim - 应用类型:公共、自定义 - 业务主题:渠道、版本、产品、城市等等

        - 业务描述:描述业务内容 - 层级:层级(lvl)

        - 装载策略:增量(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数据处理小时

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

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

(3)字段命名规范

通用规范:

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

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

命名长度尽量控制在30个字符以内,特殊字段除外 名称的各部分之间以"_"(下划线)连接 约定俗成的业务缩略词,统一参考【字典库】 实体名称作为前缀

其他:

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

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

正例:create_time,create_name

反例:ctime,cname

(4)字段类型规范

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

数据仓库命名规范详解_第2张图片

看到这里啦,点个赞再走呗!

你可能感兴趣的:(数据仓库,hive,hadoop,数据库,sql,database,数据库架构)