数仓命名规范大全!

这篇具有很好参考价值的文章主要介绍了数仓命名规范大全!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

01 数据分层

一、数据运营层:ODS(Operational Data Store)

ODS层,是最接近数据源中数据的一层,为了考虑后续可能需要追溯数据问题,因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即可,至于数据的去噪、去重、异常值处理等过程可以放在后面的DWD层来做。

二、数据仓库层:DW (Data Warehouse)

数据仓库层是我们在做数据仓库时要核心设计的一层,在这里,从  ODS  层中  获得的数据按照主题建立各种数据模型 。DW 层又细分为DWD(Data Warehouse  Detail )层、DWM(Data WareHouse Middle )层和DWS(Data WareHouse Servce )。

1.  数据明细层:DWD  (Data Warehouse Detail)

该层一般保持和ODS层一样的数据粒度 ,并且提供一定的数据质量保证 。

DWD层要做的就是将数据清理、整合、规范化、脏数据、垃圾数据、规范不一致的、状态定义不一致的、命名不规范的数据都会被处理。

同时 ,为了提高数据明细层的易用性 ,该层会采用一些维度退化手法 ,将维度退化至事实表中, 减少事实表和维表的关联。另外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一 张表中 ,提高数据的可用性 。

2.  数据中间层:DWM  (Data WareHouse Middle)

该层会在 DWD 层的数据基础上,对数据做轻度的聚合操作,生成一系列的中间表,提升公共指标的复用性, 减少重复加工。直观来讲 , 就是对通用的核心维度进行聚合操作, 算出相应的统计指标。

在实际计算中 , 如果直接从 DWD 或者 ODS 计算出宽表的统计指标 , 会存在 计算量太大并且维度太少的问题,因此一般的做法是,在 DWM 层先计算出多个小的 中间表 ,然后再拼接成一 张 DWS 的宽表 。  由于宽和窄的界限不易界定,也可以去掉 DWM 这一层, 只留 DWS 层,将所有的数据再放在DWS 亦可。

3.数据服务层:DWS  (Data WareHouse Servce)

DWS 层为公共汇总层, 会进行轻度汇总 , 粒度比明细数据稍粗,基于DWD层上的基础数据, 整合汇总成分析某一个主题域的服务数据,一般是宽表。DWS层应覆盖 80%的应用场景 。又称数据集市或宽表。

按照业务划分,如主题域流量、订单、用户等 ,生成字段比较多的宽表 , 用 于提供后续的业务查询,OLAP分析,数据分发等。一般来讲,该层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表。

三、数据应用层:APP  (Application)

在这里,主要是提供给数据产品和数据分析使用的数据 ,一般会存放在ES 、 PostgreSql、Redis 等系统中供线上系统使用 ,也可能会存在Hive或者Druid中供数据分析和数据挖掘使用 。比如我们经常说的报表数据,一般就放在这里。

四、维表层 (Dimension)

最后补充一个维表层,维表层主要包含两部分数据:高基数维度数据:一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。

低基数维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维表。

数据量可能是个位数或者几千几万。

02 表规范

关于词根

词根属于数仓建设中的规范 ,属于元数据管理的范畴,现在把这个划到数据治理的一部分。完整的数仓建设是包含数据治理的,只是现在谈到数仓偏向于数据建模 , 而谈到数据治理,更多的是关于数据规范、数据管理。

表命名 ,其实在很大程度上是对元数据描述的一种体现 ,表命名规范越完善 ,我们能从表名获取到的信息就越多。比如:一部分业务是关于货架的,英文名是:rack , rack 就是一个词根,那我们就在所有的表、字段等用到的地方都叫 rack, 不要叫成  别的什么 。 这就是词根的作用, 用来统一命名,表达同一个含义。

指标体系中有很多“率”的指标,都可以拆解成XXX+率 ,率可以叫 rate ,那我 们所有的指标都叫做 XXX+rate。

词根 :可以用来统一表名、字段名、主题域名等等。

举例 :以流程图的方式来展示,更加直观和易懂,本图侧重 dwm 层表的命名 规范, 其余命名是类似的道理 :

第一个判断条件是该表的用途,是中间表、原始日志还是业务展示用的表如果该表被判断为中间表, 就会走入下一个判断条件:表是否有 group 操作 通过是否有 group 操作来判断该表该划分在 dwd 层还是 dwm 和 dws 层如果不是 dwd 层,则需要判断该表是否是多个行为的汇总表(即宽表)。

最后再分别填上事业群 、部门、业务线、自定义名称和更新频率等信息即可。

分层 :表的使用范围

事业群和部门:生产该表或者该数据的团队

业务线 :表明该数据是哪个产品或者业务线相关

主题域 :分析问题的角度,对象实体

自定义 :一般会尽可能多描述该表的信息,比如活跃表、留存表等

更新周期 :比如说天级还是月级更新

1、常规表

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

规范:分层前缀[dwd|dws|ads]_部门_业务域_主题域_XXX_更新周期|数据范围。

业务域、主题域我们都可以用词根的方式枚举清楚,不断完善, 更新周期主要的是时间粒度、日、月、年、周等。

2 、中间表

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

规范:mid_table_name_[0~9|dim]

table_name 是我们任务中目标表的名字,通常来说一个任务只有一个目标表。 这里加上表名,是为了防止自由发挥的时候表名冲突,而末尾大家可以选择自 由发挥,起一些有意义的名字,或者简单粗暴,使用数字代替,各有优劣吧,谨慎选择。

通常会遇到需要补全维度的表,这里使用dim 结尾。

中间表在创建时,请加上 ,如果要保留历史的中间表,可以加上日期或者时间戳。

3 、临时表

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

规范:tmp_xxx

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

4 、维度表

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

出来,也可以手工来维护。

规范:dim_xxx

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

5 、手工表

手工表是手工维护的表,手工初始化一次之后,一般不会自动改变,后面变更,

也是手工来维护。

一般来说,手工的数据粒度是偏细的,所以,暂时我们统一放在dwd层,后面 如果有目标值或者其他类型手工数据,再根据实际情况分层。

规范:dwd_业务域_manual_xxx

手工表,增加特殊的主题域,manual ,表示手工维护表。

03 指标规范

3.1 命名

小写

下划线分割

可读性优于长度(词根,避免出现同一个指标,命名一致性)数量字段后缀_cnt等标识...

金额字段后缀_price标识

禁止使用sql关键字

3.2 字段格式

浮点数使用decimal(28,6)控制精度等

3.3 NULL 字段处理

对于维度字段,需设置为-1

对于指标字段,需设置为0

04  口径规范

保证主题域内,指标口径一致,无歧义。另外,还需要注意同一口径的指标数据来源要一致。

05 数据处理方式

1.增量表:

新增数据,增量数据是上次导出之后的新数据。

(1) 记录每次增加的量,而不是总量;

(2) 增量表,只报变化量,无变化不用报

(3) 每天一个分区

2 、全量表

每天的所有的最新状态的数据。

(1) 全量表,有无变化,都要报

(2) 每次上报的数据都是所有的数据 (变化的 +  没有变化的)

(3) 只有一个分区

3、快照表

按日分区,记录截止数据日期的全量数据。

(1) 快照表,有无变化,都要报

(2) 每次上报的数据都是所有的数据(变化的+没有变化的)

(3) 一天一个分区

4、拉链表

记录截止数据日期的全量数据。

(1) 记录一个事物从开始,一直到当前状态的所有变化的信息;

(2) 拉链表每次上报的都是历史记录的最终状态,是记录在当前时刻的历史总量;

(3) 当前记录存的是当前时间之前的所有历史记录的最后变化量(总量);

(4) 只有一个分区文章来源地址https://www.toymoban.com/news/detail-539720.html

到了这里,关于数仓命名规范大全!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据课程K2——Spark的RDD弹性分布式数据集

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解Spark的RDD结构; ⚪ 掌握Spark的RDD操作方法; ⚪ 掌握Spark的RDD常用变换方法、常用执行方法; 初学Spark时,把RDD看做是一个集合类型(类似于Array或List),用于存储数据和操作数据,但RDD和普通集合的区别

    2024年02月12日
    浏览(55)
  • Spark大数据分析与实战笔记(第三章 Spark RDD 弹性分布式数据集-02)

    人生很长,不必慌张。你未长大,我要担当。 传统的MapReduce虽然具有自动容错、平衡负载和可拓展性的优点,但是其最大缺点是采用非循环式的数据流模型,使得在迭代计算式要进行大量的磁盘IO操作。Spark中的RDD可以很好的解决这一缺点。 RDD是Spark提供的最重要的抽象概念

    2024年02月22日
    浏览(96)
  • 大数据开源框架环境搭建(七)——Spark完全分布式集群的安装部署

    前言:七八九用于Spark的编程实验 大数据开源框架之基于Spark的气象数据处理与分析_木子一个Lee的博客-CSDN博客_spark舆情分析 目录 实验环境: 实验步骤: 一、解压 二、配置环境变量:  三、修改配置文件  1.修改spark-env.sh配置文件: 2.修改配置文件slaves: 3.分发配置文件:

    2024年02月11日
    浏览(54)
  • 云计算与大数据第16章 分布式内存计算平台Spark习题

    1、Spark是Hadoop生态(  B  )组件的替代方案。 A. Hadoop     B. MapReduce        C. Yarn             D.HDFS 2、以下(  D  )不是Spark的主要组件。 A. Driver      B. SparkContext       C. ClusterManager D. ResourceManager 3、Spark中的Executor是(  A  )。 A.执行器      B.主节

    2024年02月14日
    浏览(119)
  • 分布式计算中的大数据处理:Hadoop与Spark的性能优化

    大数据处理是现代计算机科学的一个重要领域,它涉及到处理海量数据的技术和方法。随着互联网的发展,数据的规模不断增长,传统的计算方法已经无法满足需求。因此,分布式计算技术逐渐成为了主流。 Hadoop和Spark是目前最为流行的分布式计算框架之一,它们都提供了高

    2024年01月23日
    浏览(57)
  • 数据存储和分布式计算的实际应用:如何使用Spark和Flink进行数据处理和分析

    作为一名人工智能专家,程序员和软件架构师,我经常涉及到数据处理和分析。在当前大数据和云计算的时代,分布式计算已经成为了一个重要的技术方向。Spark和Flink是当前比较流行的分布式计算框架,它们提供了强大的分布式计算和数据分析功能,为数据处理和分析提供了

    2024年02月16日
    浏览(62)
  • ZooKeeper的应用场景(命名服务、分布式协调通知)

    命名服务(NameService)也是分布式系统中比较常见的一类场景,在《Java网络高级编程》一书中提到,命名服务是分布式系统最基本的公共服务之一。在分布式系统中,被命名的实体通常可以是集群中的机器、提供的服务地址或远程对象等一这些我们都可以统称它们为名字(Name),

    2024年02月12日
    浏览(45)
  • 分布式计算框架:Spark、Dask、Ray 分布式计算哪家强:Spark、Dask、Ray

    目录 什么是分布式计算 分布式计算哪家强:Spark、Dask、Ray 2 选择正确的框架 2.1 Spark 2.2 Dask 2.3 Ray 分布式计算是一种计算方法,和集中式计算是相对的。 随着计算技术的发展, 有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间来完成

    2024年02月11日
    浏览(70)
  • Spark单机伪分布式环境搭建、完全分布式环境搭建、Spark-on-yarn模式搭建

    搭建Spark需要先配置好scala环境。三种Spark环境搭建互不关联,都是从零开始搭建。 如果将文章中的配置文件修改内容复制粘贴的话,所有配置文件添加的内容后面的注释记得删除,可能会报错。保险一点删除最好。 上传安装包解压并重命名 rz上传 如果没有安装rz可以使用命

    2024年02月06日
    浏览(83)
  • spark分布式解压工具

    ​ spark解压缩工具,目前支持tar、gz、zip、bz2、7z压缩格式,默认解压到当前路下,也支持自定义的解压输出路径。另外支持多种提交模式,进行解压任务,可通过自定义配置文件,作为spark任务的资源设定 2.1 使用hadoop的FileSystem类,对tos文件的进行读取、查找、写入等操作

    2024年02月02日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包