来源:数据社 作者:数据一哥 编辑:数据一哥

全文共1404个字,建议阅读4分钟

大家好,我是一哥。

今天跟大家聊一聊数仓为什么分层?

01

经典的数仓分层

首先跟大家聊一个经典的数仓分层结构,主要包括ODS、DWS、DW、APP四层。

ODS:抽取的原始业务数据,结构一般和原始业务数据库表结构或者抽取的业务日志数据结构保持一致。一句话:从业务系统增量抽取,数据不做清洗转换,与业务系统数据模型保持一致。

DWS:根据ODS层,增加一些维度信息,过滤一些异常数据。为DW层提供来源明细数据,提供业务系统细节数据的长期沉淀,为未来分析类需求的扩展提供历史数据支撑。

DW:模型层,根据DWS层数据,按各个业务需求,以某个维度ID进行粗粒度汇总聚合。此层一般会根据数仓涉及的业务发展或者主数据的建立等,抽象出一些公用的聚合汇总模型

APP:应用层/指标层/报表层,每个公司的叫法不一样,一般指根据特定的某个应用或者报表进行的数据指标开发汇总。

02

数仓为什么分层

那么为什么数据仓库会有分层呢?

每多一层不就会多一些开发工作吗?还会经常有多层数据重复?不分层可不可以?

也许上面这些问题会困扰你,可能还会有人说,我来公司的时候已经有开发规范了,不分层不行!

其实数据仓库分层原因可以概括为以下4个方面:

  1. 用空间换时间:数仓的发展已经几十年了,在大数据技术出现之前,我们一般采用Oracle等一些关系型数据库来做数仓,但随着数据量的发展,特别是电信和银行业务的快速发展(那时候互联网企业还没起来),在进行一个数仓应用开发过程中,我们需要分很多步骤来进行,所以会考虑用空间来换时间,包括现在市面上也会有一些用空间换时间这样的OLAP产品。

  2. 减少重复开发:可以把一些指标用到的汇总数据进行抽象,建立一个或者多个模型,这些模型可以支撑我们建立多个数仓报表,这一步需要对业务非常了解,不然就会出现上面问题说的“ 还会经常有多层数据重复?”

  3. 复杂的题简单化:做过传统数仓的都知道,以前Oracle的存储过程会写几千行,所以现在我们一般很少写几千行的业务ETL逻辑了,而是分为多个ETL过程,从明细层到应用层进行逻辑拆解,中间也会进行一些逻辑合并,形成模型层。

  4. 数据安全:通过分层,可以更方便地对不同层,不同的数据模型进行权限管理,特定业务场景下,对不同的开发人员和业务人员屏蔽一些敏感的数据。

03

数仓分层的模板

我们可以看到现在网上有很多数仓建模的规范,那么到底有没有一套万能的规范模板,直接拿来就能用呢?

每个公司的业务发展都不尽相同,不能完全套搬一些规范,在建立数仓之前是要对自己公司的业务进行梳理,包括业务种类、数据量、需求量等,也许公司的数据量本来就不大,而且业务比较单一,那么明细层(DWS)可以不要呀,直接通过原始数据层来建立模型汇总层。

规范是给大家拓展思路参考的,数仓的开发建设本来就是和业务强关联的。开发效率提升了,分析人员用着模型说好了,业务应用人员用着说好了,那就可以了。

详解如何在数仓中管理元数据(文末彩蛋~)

「数仓面试」如何确定主题域?

企业级数据仓库建设最新版(附16页文档)

公众号推送规则变了

点击上方公众号名片,收藏公众号,不错过精彩内容推送!

为什么要做数仓分层,不做行吗?相关推荐

  1. ODS DWD DWS ADS 数仓分层

    数仓分层 ODS:Operation Data Store 原始数据 DWD(数据清洗/DWI ) data warehouse detail 数据明细详情,去除空值,脏数据,超过极限范围的明细解析 ...

  2. 数仓建模的edw_浅谈数仓分层和模型

    数仓分层 ODS层基础层-ODS(Operational Data Store-操作型数据存储):主要是未经过加⼯的原始数据 中间层-CDM\EDW(Enterprise Data Warehouse ...

  3. 谈笑间学会数仓-分层架构

    1.数据仓库 1-1.什么是数仓呢? ​ 数据仓库(Data Warehouse)简称DW或DWH,是数据库的一种概念上的升级,可以说是为满足新需求设计的一种新数据库,而这个数据库是需容纳更多的数据, ...

  4. 数仓分层(ODS、DWD、DWS、DWT、ADS)和数仓建模

    文章目录 一.数仓分层 数仓概念 ODS(原始数据层)做了哪些事 DWD(明细数据层)做了哪些事 DWS(服务数据层)做了哪些事 DWT(主题数据层)做了哪些事 ADS(应用数据层)做了哪些事 二.数 ...

  5. 数仓分层的意义及通用设计

    文章目录 为什么要设计数据分层 数仓分层的意义 通用的数仓分层设计 总结 为什么要设计数据分层 大多数情况下,我们完成的数据体系依赖复杂.层级混乱,在不知不觉中,容易出现循环依赖体系.因此,我们需要设 ...

  6. 【博学谷学习记录】超强总结,用心分享|大数据之数仓分层

    数仓是什么? 数据仓库,简称数仓,英文名称为Data Warehouse,可简写为DW或DWH.数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合.它是单个数据存储,出于分析性报 ...

  7. [hive]数仓分层|用户纬度拉链表|维度建模

    https://www.modb.pro/404?redirect=%2Fdb%2F241289 一.数仓分层 1.ODS层:原始数据层 ODS(O=original D=data S=store) ...

  8. 数据仓库知识点总结(数仓分层建模、维度建模等)

    数据仓库知识点总结 推荐学习<华为数据之道><数据仓库工具箱-维度建模权威指南>两本书. 此文档是数据仓库建模的知识点总结文档,在持续更新中(2021-10-13). 文章目录 ...

  9. 数据中台-数仓分层思想

    一.数仓分层思想 1.为什么要分层 通过分层管理来实现分步完成工作, 用空间换时间,通过数据预处理提高效率,提升应用系统的用户体验(效率),简化数据清洗的过程,使每一层处理逻辑变得更简单. 每一层的处 ...

最新文章

  1. Jenkins Mac安装更改用户名
  2. 谷歌发布地图「时光机」:100年前,你家街道长啥样?
  3. 每日站立会议12/23
  4. html引入iview如何修改样式,vue中如何修改iView的样式,
  5. Firefox将以HTTP明文发送密码的网站标注为不安全
  6. 视频图像不正常的几个表现及解决方法
  7. 百度上线独立视频App百度看看,能搜到微视、B站内容?
  8. Kafka集群全部断开,然后重启时报“The broker is trying to join the wrong cluster. Configured zookeeper.connect……”问题
  9. 怎么进入计算机网络权限设置方法,电脑怎么设置网络访问权限保护共享文件安全...
  10. 相机视场角和焦距_摄像机焦距和视场角计算.doc
  11. 基于微信小程序的小说阅读系统(小程序+Nodejs)
  12. 从B树谈到R树之B树的c实现
  13. python如何下载安装spacy_SpaCy下载及安装
  14. 带时间轴的文章归档的html页面,WordPress纯CSS打造时间轴归档页面
  15. java for class_Class forClass
  16. 用易拉罐自制的“蜘蛛音箱”,效果出乎意料
  17. IDEA创建maven项目没有srcmainjava目录问题解决
  18. Android 第三方库--2017年Android开源项目及库汇总
  19. DIY pt2262遥控器和2272-m4接收器
  20. 【光纤通信课程-每周一练(含答案)】第九周—波分复用系统

热门文章

  1. rpcbind服务死活启动不了
  2. 【自制】WS2812光立方
  3. H3C交换机常用命令(初学)
  4. 关于python格式对齐的问题_解决python对齐错误的方法
  5. 20211212做实验时的感想
  6. 什么是图论和图论在数字图像中的应用
  7. 每日加瓦,终成栋房5-正则表达式
  8. 汇总-13台虚拟机搭建一个高可用负载均衡集群架构
  9. 怎么打开jsp文件目录_它怎么能这么快?
  10. java nio rewind_NIO-java.nio.ByteBuffer中flip、rewind、clear方法的区别