为什么要做数仓分层,不做行吗?
来源:数据社 作者:数据一哥 编辑:数据一哥
全文共1404个字,建议阅读4分钟
大家好,我是一哥。
今天跟大家聊一聊数仓为什么分层?
01
经典的数仓分层
首先跟大家聊一个经典的数仓分层结构,主要包括ODS、DWS、DW、APP四层。
ODS:抽取的原始业务数据,结构一般和原始业务数据库表结构或者抽取的业务日志数据结构保持一致。一句话:从业务系统增量抽取,数据不做清洗转换,与业务系统数据模型保持一致。
DWS:根据ODS层,增加一些维度信息,过滤一些异常数据。为DW层提供来源明细数据,提供业务系统细节数据的长期沉淀,为未来分析类需求的扩展提供历史数据支撑。
DW:模型层,根据DWS层数据,按各个业务需求,以某个维度ID进行粗粒度汇总聚合。此层一般会根据数仓涉及的业务发展或者主数据的建立等,抽象出一些公用的聚合汇总模型
APP:应用层/指标层/报表层,每个公司的叫法不一样,一般指根据特定的某个应用或者报表进行的数据指标开发汇总。
02
数仓为什么分层
那么为什么数据仓库会有分层呢?
每多一层不就会多一些开发工作吗?还会经常有多层数据重复?不分层可不可以?
也许上面这些问题会困扰你,可能还会有人说,我来公司的时候已经有开发规范了,不分层不行!
其实数据仓库分层原因可以概括为以下4个方面:
用空间换时间:数仓的发展已经几十年了,在大数据技术出现之前,我们一般采用Oracle等一些关系型数据库来做数仓,但随着数据量的发展,特别是电信和银行业务的快速发展(那时候互联网企业还没起来),在进行一个数仓应用开发过程中,我们需要分很多步骤来进行,所以会考虑用空间来换时间,包括现在市面上也会有一些用空间换时间这样的OLAP产品。
减少重复开发:可以把一些指标用到的汇总数据进行抽象,建立一个或者多个模型,这些模型可以支撑我们建立多个数仓报表,这一步需要对业务非常了解,不然就会出现上面问题说的“ 还会经常有多层数据重复?”
复杂的问题简单化:做过传统数仓的都知道,以前Oracle的存储过程会写几千行,所以现在我们一般很少写几千行的业务ETL逻辑了,而是分为多个ETL过程,从明细层到应用层进行逻辑拆解,中间也会进行一些逻辑合并,形成模型层。
数据安全:通过分层,可以更方便地对不同层,不同的数据模型进行权限管理,特定业务场景下,对不同的开发人员和业务人员屏蔽一些敏感的数据。
03
数仓分层的模板
我们可以看到现在网上有很多数仓建模的规范,那么到底有没有一套万能的规范模板,直接拿来就能用呢?
每个公司的业务发展都不尽相同,不能完全套搬一些规范,在建立数仓之前是要对自己公司的业务进行梳理,包括业务种类、数据量、需求量等,也许公司的数据量本来就不大,而且业务比较单一,那么明细层(DWS)可以不要呀,直接通过原始数据层来建立模型汇总层。
规范是给大家拓展思路参考的,数仓的开发建设本来就是和业务强关联的。开发效率提升了,分析人员用着模型说好了,业务应用人员用着说好了,那就可以了。
详解如何在数仓中管理元数据(文末彩蛋~)
「数仓面试」如何确定主题域?
企业级数据仓库建设最新版(附16页文档)
公众号推送规则变了
点击上方公众号名片,收藏公众号,不错过精彩内容推送!
为什么要做数仓分层,不做行吗?相关推荐
- ODS DWD DWS ADS 数仓分层
数仓分层 ODS:Operation Data Store 原始数据 DWD(数据清洗/DWI ) data warehouse detail 数据明细详情,去除空值,脏数据,超过极限范围的明细解析 ...
- 数仓建模的edw_浅谈数仓分层和模型
数仓分层 ODS层基础层-ODS(Operational Data Store-操作型数据存储):主要是未经过加⼯的原始数据 中间层-CDM\EDW(Enterprise Data Warehouse ...
- 谈笑间学会数仓-分层架构
1.数据仓库 1-1.什么是数仓呢? 数据仓库(Data Warehouse)简称DW或DWH,是数据库的一种概念上的升级,可以说是为满足新需求设计的一种新数据库,而这个数据库是需容纳更多的数据, ...
- 数仓分层(ODS、DWD、DWS、DWT、ADS)和数仓建模
文章目录 一.数仓分层 数仓概念 ODS(原始数据层)做了哪些事 DWD(明细数据层)做了哪些事 DWS(服务数据层)做了哪些事 DWT(主题数据层)做了哪些事 ADS(应用数据层)做了哪些事 二.数 ...
- 数仓分层的意义及通用设计
文章目录 为什么要设计数据分层 数仓分层的意义 通用的数仓分层设计 总结 为什么要设计数据分层 大多数情况下,我们完成的数据体系依赖复杂.层级混乱,在不知不觉中,容易出现循环依赖体系.因此,我们需要设 ...
- 【博学谷学习记录】超强总结,用心分享|大数据之数仓分层
数仓是什么? 数据仓库,简称数仓,英文名称为Data Warehouse,可简写为DW或DWH.数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合.它是单个数据存储,出于分析性报 ...
- [hive]数仓分层|用户纬度拉链表|维度建模
https://www.modb.pro/404?redirect=%2Fdb%2F241289 一.数仓分层 1.ODS层:原始数据层 ODS(O=original D=data S=store) ...
- 数据仓库知识点总结(数仓分层建模、维度建模等)
数据仓库知识点总结 推荐学习<华为数据之道><数据仓库工具箱-维度建模权威指南>两本书. 此文档是数据仓库建模的知识点总结文档,在持续更新中(2021-10-13). 文章目录 ...
- 数据中台-数仓分层思想
一.数仓分层思想 1.为什么要分层 通过分层管理来实现分步完成工作, 用空间换时间,通过数据预处理提高效率,提升应用系统的用户体验(效率),简化数据清洗的过程,使每一层处理逻辑变得更简单. 每一层的处 ...
最新文章
- 西农大许金荣课题组在小麦赤霉病研究领域取得重要突破
- linux 禁止普通用户su到root
- 计算机视觉开源库OpenCV之图像翻转
- 链接器相关的一些基本问题
- 移动硬盘计算机无法打开硬盘,移动硬盘无法识别
- 2017.9.19 Gcd 思考记录
- 美团打车低至1分,前三月司机零抽成,快车市场将再起波澜
- 利用IE的滤镜解决IE6下PNG图片透明BUG
- bzoj3224 普通平衡树(splay 模板)
- 计算机音乐广东爱情故事,改编自网易云音乐——广东十年爱情故事热评
- python 修改证件照的尺寸
- Unity(一)Scene和GameObject
- JavaScript设计模式与开发实践
- outlook2016关闭时最小化到任务栏的完美解决方法
- 功放限幅保护_【干货】如何利用限幅器保护音箱√
- Python3 将汉语转换为汉语拼音
- 【js】js面试题汇总
- QML如何实现背景透明
- 矩形广告是什么?矩形广告如何设置?
- Git版本工具系列之一:Git常用命令
热门文章
- 扫描仪怎样装无线网络服务器,扫描仪(7140)安装说明
- h3c登录交换机的配置方法
- 强化学习 qlearning解决tsp问题
- Android 自定义View 一行显示不下换行显示
- 调用模板类出现undefined reference to的情况及解决方案
- android 图片内存缓存文件在哪个文件夹,别再用手机管家清理内存了!1分钟删掉这些文件夹,内存多出几个G...
- 用hadoop计算PI值
- laravel validate 验证器
- 计算机历史博物馆观后感:阿达·洛芙莱斯生平1
- 《A Survey on Transfer Learning》迁移学习研究综述 翻译