数仓为什么分层

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 数仓为什么分层

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

01经典的数仓分层

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

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

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

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

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

02数仓为什么分层

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

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

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

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

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

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

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

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

03数仓分层的模板

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

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

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

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
7月前
|
SQL 分布式计算 关系型数据库
实时数仓 Hologres产品使用合集之分区表创建冷热分层后,查询语法会与原先有区别吗
实时数仓Hologres的基本概念和特点:1.一站式实时数仓引擎:Hologres集成了数据仓库、在线分析处理(OLAP)和在线服务(Serving)能力于一体,适合实时数据分析和决策支持场景。2.兼容PostgreSQL协议:Hologres支持标准SQL(兼容PostgreSQL协议和语法),使得迁移和集成变得简单。3.海量数据处理能力:能够处理PB级数据的多维分析和即席查询,支持高并发低延迟查询。4.实时性:支持数据的实时写入、实时更新和实时分析,满足对数据新鲜度要求高的业务场景。5.与大数据生态集成:与MaxCompute、Flink、DataWorks等阿里云产品深度融合,提供离在线
|
5月前
|
SQL 消息中间件 OLAP
OneSQL OLAP实践问题之实时数仓中数据的分层如何解决
OneSQL OLAP实践问题之实时数仓中数据的分层如何解决
89 1
|
7月前
|
DataWorks 安全 数据库
DataWorks产品使用合集之简单模式下,如何实现数仓分层
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
112 3
|
8月前
|
存储 数据挖掘 大数据
大数据数仓建模基础理论【维度表、事实表、数仓分层及示例】
数据仓库建模是组织和设计数据以支持数据分析的过程,包括ER模型和维度建模。ER模型通过实体和关系描述数据结构,遵循三范式减少冗余。维度建模,特别是Kimball方法,用于数据仓库设计,便于分析和报告。事实表存储业务度量,如销售数据,分为累积、快照、事务和周期性快照类型。维度表提供描述性信息,如时间、产品、地点和客户详情。数仓通常分层为ODS(源数据)、DWD(明细数据)、DIM(公共维度)、DWS(数据汇总)和ADS(应用数据),以优化数据管理、质量、查询性能和适应性。
2149 3
|
8月前
|
存储 数据可视化 前端开发
数仓常用分层与维度建模
本文介绍了数据仓库的分层结构和维度建模。数仓通常分为ODS、DIM、DWD、DWS和ADS五层,各层负责不同的数据处理阶段。维度建模是数据组织方法,包括星型和雪花模型。星型模型简单直观,查询性能高,适合简单查询;雪花模型则通过规范化减少冗余,提高数据一致性和结构复杂性,但可能影响查询效率。选择模型需根据业务需求和数据复杂性来定。
833 0
|
8月前
|
存储 分布式计算 数据挖掘
数仓分层架构
数仓分层架构
301 0
|
运维 大数据 数据管理
数据仓库(06)数仓分层设计
目前主流的数据仓库分层大多为四层,也有五层的架构,这里介绍基本的四层架构。 分别为数据贴源层(ods)、数据仓库明细层(dw)、多维明细层(dws)和数据集市层(dm)。
928 1
数据仓库(06)数仓分层设计
|
8月前
|
存储 数据采集 大数据
大数据必知必会系列——数仓分层架构及三层架构流程[新星计划]
大数据必知必会系列——数仓分层架构及三层架构流程[新星计划]
1218 0
|
存储 canal 消息中间件
数据仓库系列(三)数仓分层的意义价值及如何设计数据分层
数据仓库系列(三)数仓分层的意义价值及如何设计数据分层
1573 0
数据仓库系列(三)数仓分层的意义价值及如何设计数据分层
|
消息中间件 大数据 关系型数据库

热门文章

最新文章