一篇文章搞懂数据仓库:数据仓库规范设计

目录

一、为什么要进行规范设计?

二、设计规范 - 指标

三、命名规范 - 表命名

3.1 常规表

3.2 中间表

3.3 临时表

3.4 维度表

四、开发规范

五、流程规范


一、为什么要进行规范设计?

无规矩、不方圆。规范设计是在具体开发工作之前制定的,过程中不断进行完善。目的在于约束N个人对齐认知,按照一个标准或流程进行开发,以保证数据一致性,流程清晰且稳定。

一个良好的规范设计,应当起到以下作用:提高开发效率,提升质量,降低沟通对齐成本,降低运维成本等。

下面小编将带领大家盘一盘数据仓库有哪些规范,从中挑选几个重点细说:

  • 设计规范

            逻辑架构、技术架构、分层设计、主题划分、方法论

  •  命名规范

            各层级命名、任务命名、表命名、字段命名、指标命名等 

  • 模型规范

            建模方法、建模工具、血缘关系、维度退化、一致性维度、元数据管理

  • 开发规范

            脚本注释、字段别名、编码规范、脚本格式、数据类型、缩写规范 

  • 流程规范

            需求流程、工程流程、上线流程、调度流、调度和表生命周期管理

 

二、设计规范 - 指标

  • Step1:面向主题域管理

为了提高指标管理的效率,你需要按照业务线、主题域和业务过程三级目录方式管理指标。

  • Step2:划分原子指标和派生指标

原子指标 + 原子指标  = 派生指标

  • Step3:进行指标命名规范

需要遵循两个原则:易懂与统一

  • 易懂,就是看到指标的名称,就可以基本判断这个指标归属于哪个业务过程;
  • 统一,就是要确保派生指标和它继承的原子指标命名是一致的。

对于原子指标,标名称适合用“动作 + 度量”的命名方式(比如注册用户数、购买用户数)

对于派生指标,应该严格遵循“时间周期 + 统计粒度 + 修饰词 + 原子指标”的命名方式。(比如30天内黑卡会员购买用户数)

  • Step4:分级管理

指标确实是多,如果一视同仁去管理其实很难,所以可以按照下面的原则进行等级划分:

  • 一级指标:数据中台直接产出,核心指标(提供给公司高层看的)、原子指标以及跨部门的派生指标。
  • 二级指标:基于中台提供的原子指标,业务部门创建的派生指标。

三、命名规范 - 表命名

3.1 常规表

常规表是我们需要固化的表,是正式使用的表,是目前一段时间内需要去维护去完善的表。

规范:分层前缀[dwd|dws|ads|bi]_业务域_主题域_XXX_更新评率|全量/增量。 

业务域、主题域我们都可以用词根的方式枚举清楚,不断完善,粒度也是同样的,主要的是时间粒度、日、月、年、周等,使用词根定义好简称。

例如:  dwd_xxx_xxx_da

  • di :每日增量

  • da:每日全量

  • mi:每月增量

  • ma:每月全量

3.2 中间表

中间表一般出现在Job中,是Job中临时存储的中间数据的表,中间表的作用域只限于当前Job执行过程中,Job一旦执行完成,该中间表的使命就完成了,是可以删除的(按照自己公司的场景自由选择,以前公司会保留几天的中间表数据,用来排查问题)。

规范:mid_table_name_[0~9|dim]

table_name是我们任务中目标表的名字,通常来说一个任务只有一个目标表。这里加上表名,是为了防止自由发挥的时候表名冲突,而末尾大家可以选择自由发挥,起一些有意义的名字,或者简单粗暴,使用数字代替,各有优劣吧,谨慎选择。通常会遇到需要补全维度的表,这里我喜欢使用dim结尾。中间表在创建时,请加上 ,如果要保留历史的中间表,可以加上日期或者时间戳

3.3 临时表

临时表是临时测试的表,是临时使用一次的表,就是暂时保存下数据看看,后续一般不再使用的表,是可以随时删除的表。

规范:tmp_xxx

只要加上tmp开头即可,其他名字随意,注意tmp开头的表不要用来实际使用,只是测试验证而已。

3.4 维度表

维度表是基于底层数据,抽象出来的描述类的表。维度表可以自动从底层表抽象出来,也可以手工来维护。

规范:dim_xxx

维度表,统一以dim开头,后面加上,对该指标的描述,可以自由发挥。

四、开发规范

1表和列的注释释是否有缺失,复杂计算逻辑是否有注释释
2任务是否支持多次重跑而输出不变,不能有insert into语句
3分区表是否使用分区键过滤并且有有效裁剪
4外连接的过逑条件是否使用正确,例如在左连接的where语句存在右表的过滤条件
5关联小表,是否使用/*+ map join * / hint
6不允许引用别的计算任务临时表
7原则上不允许存在一个任务更新多个目标表
8是否存在笞、迪卡尔积
9禁止在代码里面使用drop 111ble、creat它111ble、renaiue 111ble、chan零column等ddl语句
10使用动态分区时,有没有检查分区键值为NULL的情况
11DQC质量监控规则是否配置,严禁棵奔
12代码中有没有进行适当的规避数据倾斜语句
13Where条件中is null语句有没有进行空字符串处理

五、流程规范

根据阿里流程规范,本文将数据仓库研发流程抽象为如下几点:

  1. 需求阶段:数据产品经理应如何应对不断变化的业务需求。
  2. 设计阶段:数据产品经理、数据开发者应如何综合性能、成本、效率、质量等因素,更好地组织与存储数据。
  3. 开发阶段:数据研发者如何高效、规范地进行编码工作。
  4. 测试阶段:测试人员应如何准确地暴露代码问题与项目风险,提升产出质量。
  5. 发布阶段:如何将具备发布条件的程序平稳地发布到线上稳定产出。
  6. 运维阶段:运维人员应如何保障数据产出的时效性和稳定性。

流程图

 

数仓系列传送门:https://blog.csdn.net/weixin_39032019/category_8871528.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

map的详解及常见面试题

map的概念 map是STL中的一个关联式容器,它提供一对一的K-V的数据处理能力,由于这个特性,在我们需要完成Key-Value数据处理的时候可以很方便的调用。map的底层结构是红黑树,这棵树对数据有自动排序的功能,所以map中的数…

无处不在的人工智能,IBM沃森的20个行业应用

来源:资本实验室聚焦前沿科技创新与传统产业升级自2011年在美国综艺电视节目《危险边缘》中一战成名后,IBM的Watson就一直是最受关注的人工智能之一。从菜谱分析到球队管理,从健康顾问到酒店礼宾服务,Watson基于自然语言处理和机器…

一篇文章搞懂数据仓库:数据仓库架构-Lambda和Kappa对比

在介绍Lambda和Kappa架构之前,我们先回顾一下数据仓库的发展历程: 传送门-数据仓库发展历程 写在前面 咳,随着数据量的暴增和数据实时性要求越来越高,以及大数据技术的发展驱动企业不断升级迭代,数据仓库架构方面也在…

宇宙和你,本质上其实只是个八维数字?

剑桥大学的数学物理学家Cohl Furey正在寻找粒子物理标准模型和八元数之间的联系。八元数的乘法规则被编码在被称为法诺面的三角图中。来源: 环球科学对于一维、二维乃至四维的数字,人们都不陌生:一维的实数一直都存在于经典物理中&#xff0c…

一篇文章搞懂数据仓库:数据应用--OLAP

目录 1、OLAP和OLTP的区别 2、OLAP分类 3、OLAP基本操作 4、OLAP选型 1、olap和oltp的区别 OLTPOLAP对象业务开发人员分析决策人员功能日常事务处理面向分析决策模型关系模型多维模型数据量几条或几十条记录>百万于万条记录操作类型增、删、查、改(CRUD)查询为主…

欧洲、美国、中国智慧城市的不同实践路径

来源:远望智库摘要:随着ICT、大数据、物联网等各类新兴技术的不断发展,智慧城市的运营和实践也不断趋于成熟。随着ICT、大数据、物联网等各类新兴技术的不断发展,智慧城市的运营和实践也不断趋于成熟。通过整理欧美各大典型智慧城…

使用IOUtils和FileUtils

文本输出应该比较常用,以前都是通过反复的创建InputStream, InputReader, OutputStream, OutputWriter等去输入输出文本,比较麻烦。Apache提供了一个commons-io.jar包,里面有很多IO相关的工具,比如输入输出文本等,着实…

重磅推荐:机器人行业深度报告

来源:WPR随着中国人口红利消失,机器人不仅在制造业上正在替代工人,还将在军事、服务、娱乐等领域取代人类,“钢铁侠”已不仅仅存在于美国科幻电影中,而正走入我们的生活。本篇报告对机器人行业及龙头上市公司进行分析&…

Could not create directory F:\Qt\Test\Error in Util.asciify(build-First_02-Desktop_Qt_5_6_3_Min

第一次使用的Qt的时候出现了这种错误! 相信很多人在第一次使用的时候都会遇到这样的情况,果不其然,搜了一下很多的处理方法,其中有一种我感觉是最有效的,就是改一下他的生成路径就好了,因为这个错误的出现…

一篇文章搞懂数据仓库:总线架构、一致性维度、一致性事实

目录 1、概述 总线架构 一致性维度 一致性事实 2、总线架构demo 1、概述 在Kimball的维度建模的数据仓库中,关于多维体系结构(MD)有三个关键性概念:总线架构(Bus Architecture),一致性维…

路易斯·罗森伯格与「群体智能」

选自 | Gigaom编译 | 网易智能(smartman163)参与 | 李擎与谷歌、Facebook等开发“传统意义上的人工智能”的技术不同,在Unanimous A.I.,科学家们利用人工智能来放大群体的智慧,而不是使用人工智能来代替人类。他们没有…

Qt实用快捷键(较全面)

总结整理的常用快捷键,欢迎留言补充!

Python下载中国数据库大会(DTCC2020)PPT全集

目录 背景 效果展示 程序下载 网盘下载 背景 前几天中国数据库大会风风火火的在京举行了,期间干货满满,收获良多。在学大佬们的ppt时,发现只能一篇一篇预览,对于求知欲强烈的小编来说简直太难受了,于是便写了个程…

Android UI布局—— 仿QQ登录界面

最近,有点空闲的时间就拿QQ登录界面来模仿练手,做了个简单的登录界面。界面一般般吧,不算很漂亮,现在拿出来分享,希望大家一起学习与进步。有什么不足之处,请各位大侠多多赐教,谢谢。这个界面涉…

新造车公司背后的「资本大佬」

来源:电动汽车观察家(ID:evobserver)为了代表行业全貌,我们既分析光鲜靓丽的头部企业,也涉及比较不知名、甚至陷入舆论漩涡的一些企业,共十家代表企业资金的来源分析。1、蔚来汽车过往融资成绩&…

MEMS传感器科普文

来源:MEMS技术MEMS 的全称是微型电子机械系统,利用传统的半导体工艺和材料,集微传感器、微执行器、微机械机构、信号处理和控制电路、高性能电子集成器件、接口、通信和电源等于一体的微型器件或系统。具有小体积、低成本、集成化等特点。MEM…

NFS服务器原理、搭建、配置

目录 NFS服务简介 什么是NFS? NFS挂载原理: RPC与NFS通讯原理: NFS客户端和NFS服务器通讯过程: Linux下NFS服务器部署 NFS服务所需软件及主要配置文件: 服务端安装NFS服务步骤: NFS客户端挂载配置…

2021年03月-程序员薪资分布,看看你拖后腿了吗?

程序员工资是不确定的,要根据程序员的历、能力、工作经验、是否刚毕业、工种,工资是不一样的,还与地域和公司有关,但是总的来说,程序员工资都是很高的,是很多人都羡慕的职位。 那么程序员的薪资到底多高呢…

Science:领导决策的计算和神经生物学基础

来源:思影科技摘要:最近,来自苏黎世大学的Micah G. Edelson等人在SCIENCE上发文,他们将基于知觉和价值决策的模型结合起来,以评估被试对每一个决策行为的个人效用,从而梳理出选择领导或服从的潜在动机。最近…

tar命令集合(详解)

tar 命令可以将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件。 示例 以test文件为例 压缩命令 tar -cvf test.tar test test1解压命令 tar -xvf test.tar主操作模式: -A, --catenate, --concatenate 追加 tar 文件至归档 -c, --…