数据仓库规范

不以规矩,不成方圆。
——《孟子·离娄章句上》

文章目录

  • 前言
  • 一、数仓规范总览
  • 二、数仓规范各细则
    • (一)设计规范
      • 1. 数据模型规范
      • 2. 命名规范
      • 3. 代码编写规范
      • 4. 指标体系建设
      • 5. 词根库
    • (二)流程规范
      • 1. 需求提交流程
      • 2. 模型设计流程
      • 3. ETL开发流程
      • 4. 前端开发规范
      • 5. 上线流程
    • (三)质量管控规范
      • 1. 源端管控
      • 2. 数仓管理
      • 3. 应用管控
    • (四)安全规范
      • 1. 网络安全
      • 2. 账号安全
      • 3. 数据安全
  • 总结


前言

介绍数据仓库开发全流程中可以遵循的各类规范,供各位小伙伴参考。持续优化中。


一、数仓规范总览

数据仓库规范_第1张图片

二、数仓规范各细则

(一)设计规范

设计规范主要包含模型报表开发过程中

1. 数据模型规范

(1)分层规范;
(2)各模型侧重点规范。

序号 数仓分层 分层中文解释 备注
1 ods O层数据源 一般为业务关系型数据库备份库直接接入
2 dwd D层事实表 一般是对某一事务进行数据清洗,关联维表,也可以进行维度退化
3 dim 维度表 记录维度数据,累全量保证当天维度唯一
4 dws D层初步汇总表 对数据进行初步汇总,可以形成宽表给ads复用
5 ads A层报表 根据需求对粒度和维度再次汇总,展示最终汇总统计的数据,是用户看到的表,需保证隐私问题没有敏感数据

2. 命名规范

(1)库命名规范;
(2)表命名规范;
(3)脚本文件名称规范。

后缀 后缀中文解释 表命名示例 中文命名示例
tf 事务事实表 dwd_sale_order_tf_dm 销售订单事务事实表
sf 快照事实表
ds 全量天表
dm 增量天表
ca 可加
xa 不可加
ma 半可加

3. 代码编写规范

(1)空格
(2)注释
(3)大小写

-- ################################################################
-- name    : dim_xxx_ds.sql
-- desc    : XXX维度表
-- version : aa_2.0.1
-- source  : ods_zzz;
-- create  : zhangliushi 20220101
-- modify  :
-- ################################################################

USE dim;
SET hive.auto.convert.join = true;
SET hive.exec.parallel = true;

-- XXX;
CREATE EXTERNAL TABLE IF NOT EXISTS dim.dim_xxx_ds
(
    etl_id                      STRING     COMMENT 'ETL代理ID'
   ,dept_code                   STRING     COMMENT '部门代码'
   ,first_dept                  STRING     COMMENT '一级部门'
   ,second_dept                 STRING     COMMENT '二级部门'
   ,third_dept                  STRING     COMMENT '三级部门'
   ,fourth_dept                 STRING     COMMENT '四级部门'
   ,fifth_dept                  STRING     COMMENT '五级部门'
   ,etl_time                    STRING     COMMENT 'ETL时间'
   ,standardized_first_dept     STRING     COMMENT '标准化一级部门'
   ,standardized_second_dept    STRING     COMMENT '标准化二级部门'
   ,standardized_third_dept     STRING     COMMENT '标准化三级部门'
   ,standardized_fourth_dept    STRING     COMMENT '标准化四级部门'
   ,standardized_fifth_dept     STRING     COMMENT '标准化五级部门'
   ,active_flag                 BOOLEAN    COMMENT '启用标志'
)
COMMENT 'XXX维度表'
PARTITIONED BY (pt_d VARCHAR(10) COMMENT '天分区')
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
LINES TERMINATED BY '\n'
STORED AS ORC
LOCATION 'cosn://qqq/dim/dim_xxx_ds'
TBLPROPERTIES('orc.compress'='ZLIB')
;

-- iii
DROP TABLE IF EXISTS tmp.tmp_a;
CREATE TABLE IF NOT EXISTS tmp.tmp_a
AS
SELECT
   KKK
FROM lll
;

INSERT OVERWRITE TABLE dim.dim_common_mdm_dept_ds
PARTITION (pt_d = '${pt_d}')
SELECT
    XXX
FROM tmp.tmp_a
;

DROP TABLE IF EXISTS tmp.tmp_a;

4. 指标体系建设

将公司目标定为核心指标,细分出下级指标。

5. 词根库

将同一中文含义的字段使用相同英文命名,如下所示:

词根英文名 词根中文解释 字段英文命名示例 中文命名示例
date 日期 update_date 更新日期
update 更新
dept 部门

(二)流程规范

流程规范主要是从数仓管理的角度,对数仓场景下的各种流程进行约束。

1. 需求提交流程

(1)需求对接人;
(2)需求提交途径;
(3)需求澄清、评审会。

2. 模型设计流程

模型评审会沟通

3. ETL开发流程

数据接入方式,数据接入工具

4. 前端开发规范

(1)报表风格;
(2)更新时间监控。

5. 上线流程

(1)确定上线时间;
(2)确定上线途径;
(3)确定上线后验证。

(三)质量管控规范

质量管控规范主要是针对从数据源到应用层的数据质量问题

1. 源端管控

(1)监控数据源接入任务是否正常执行;
(2)监控数据源数据是否正常。

2. 数仓管理

(1)监控模型任务是否正常执行;
(2)监控模型数据是否正常。

3. 应用管控

(1)监控报表任务是否正常执行;
(2)监控报表数据是否正常。

(四)安全规范

安全规范对外是为了防止数据通过网络泄露,对内是通过权限的管理实现数据权限最小化。

1. 网络安全

考虑数据应用层是否需要外网使用。

2. 账号安全

一个一账号原则,可以与公司内部账号绑定,遵循数据权限最小化。

3. 数据安全

(1)涉及到个人信息的数据加密处理;
(2)必须要明文展示的敏感数据掩码处理;
(3)前端报表页面加水印显示数据使用人信息。


总结

“不以规矩,不能成方圆。”出自《孟子》的《离娄章句上》。讲的是没有规矩,就不会有规整的方圆。形容合理地规则更有助于我们做成一件事。恰逢世界杯期间,咱以足球为例。在古代,足球比赛是充斥着暴力和血腥的一项运动,正是有了规则的限制,才使得这项运动变成如今这边受欢迎,合理地规则能够保护球员,尽量避免其受伤,也能够让比赛双方尽可能的实现公平竞争。
在数据仓库开发的过程中,遵循一定的规范能够避免我们的开发偏离原有设计的方向,也能够保证数据安全。

你可能感兴趣的:(数据仓库,数据仓库,hive,大数据)