数仓分层ODS、DWD、DWM、DWS、DIM、DM、ADS
创作时间:
作者:
@小白创作中心
数仓分层ODS、DWD、DWM、DWS、DIM、DM、ADS
引用
CSDN
1.
https://blog.csdn.net/qq_73181349/article/details/140786773
数据仓库(Data Warehouse)是企业级数据管理的核心组件,用于存储和管理来自不同业务系统的数据。为了提高数据处理效率和数据质量,数据仓库通常采用分层架构。本文将详细介绍数据仓库的分层结构,包括ODS、DWD、DWM、DWS、DIM和ADS等层次,并解释每个层次的作用和特点。
1. 数仓分层
那么为什么要数据仓库进行分层呢?
- 用空间换时间,通过大量的预处理来提升应用系统的用户体验(效率),因此数据仓库会存在大量冗余的数据;不分层的话,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大。
- 通过数据分层管理可以简化数据清洗的过程,把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要溯源并局部调整某个步骤即可。
- 分层是以解决当前业务快速的数据支撑为目的
- 抽象出共性的框架并能够赋能给其他业务线,同时为业务发展提供稳定、准确的数据支撑
- 并能够按照已有的模型为新业务发展提供方向,也就是数据驱动和赋能
一个好的分层架构,要有以下好处:
- 清晰数据结构
- 数据血缘追踪:数据ETL转化过程中的流动变化
- 减少重复开发,提高数据复用性
- 数据关系条理化
- 屏蔽原始数据的影响
数仓分层要结合公司业务进行,并且需要清晰明确各层职责,一般采用如下分层结构:
数仓建模在哪层建设呢?我们以维度建模为例,建模是在数据源层的下一层进行建设,在上图中,就是在DW 层进行数仓建模,所以 DW 层是数仓建设的核心层。 下面详细阐述下每层建设规范!
1.1 数据源层:ODS(Operational Data Store)
ODS 层是最接近数据源的一层,又叫贴源层,考虑后续可能需要追溯数据问题, 因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即可, 至于数据去噪、去重、异常值处理等过程可以放在后面的 DWD 层来做!
1.2 数据仓库层:DW(Data Warehouse)
数据仓库层是数据仓库核心层,在这里把从 ODS 层中获得的数据按照主题建立各种数据模型。该层又依次细分为DWD、DWM、DWS
1.2.1 数据明细层:DWD(Data Warehouse Detail)
- 该层一般保持和 ODS 层一样的数据粒度,并且提供一定的数据质量保证。DWD层要做的就是将数据清理、整合、规范化,把脏数据、垃圾数据、规范不一致的、状态定义不一致的、命名不规范的数据处理掉。
- 同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。
- 另外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性 。
1.2.2 数据中间层:DWM(Data WareHouse Midddle)
- 该层会在 DWD 层的数据基础上,数据做轻度聚合,生成一系列的中间表,提升公共指标的复用性,减少重复加工。
- 直观来讲,就是对通用的核心维度进行聚合操作,算出相应的统计指标。
- 在实际计算中,如果直接从 DWD 或者 ODS 计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在 DWM 层先计算出多个小的中间表,然后再拼接成一张 DWS 的宽表。由于宽和窄的界限不易界定,也可以去掉 DWM这一层,只留 DWS 层,将所有的数据再放在DWS也可。
1.2.3 数据服务层:DWS(Data WareHouse Service)
- DWS 层为公共汇总层,会进行轻度汇总,粒度比明细数据稍粗,基于 DWD 层上的基础数据,整合汇总成分析某一个主题域的服务数据。
- DWS 层应覆 盖 80% 的应用场景。又称数据集市或宽表。 按照业务划分,如主题域流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP 分析,数据分发等。
- 一般来讲,该层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表。
1.3 数据集市层:DM(Data Mart)
基于DW的基础数据,整合汇总成一个个数据集市,数据集市通常是面向部门的某个主题域的报表数据。比如用户留存表、用户活跃表、商品销量表、商品营收表等等。
1.4 维表层:DIM(Dimension)
如果维表过多,也可针对维表设计单独一层,维表层主要包含两部分数据:
- 高基数维度数据:一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。
- 低基数维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维表。 数据量可能是个位数或者几千几万
1.5 数据应用层:ADS(Application Data Service)
在这里,主要是提供给数据产品和数据分析使用的数据,一般会存放在 ES、 PostgreSql、Redis 等系统中供线上系统使用,也可能会存在 Hive 或者 Druid 中供数据分析和数据挖掘使用。比如我们经常说的报表数据,一般就放在这里。
热门推荐
Unity3D如何异步处理大量数据库
乡镇卫生院的主要职能是什么?
粤听越懂法|年关将至,关于年终奖你知多少?
洗头忽略了这一点,头皮屑永远洗不干净!皮肤科医生提醒……
今冬为何异常寒冷?专家解析全国多地气温偏低原因
NBA单赛季50+次数排名,乔丹只有8次排名第四
合资股权如何进行合理分配?分配合资股权需要遵循哪些原则?
短视频策略指标体系如何进行定义
卤菜香料指南:四种关键香料让卤味更美味
看我“火电+”七十二变!
怪味花生的做法
重庆燃气背后金主浮出水面,原来我们的燃气被五大集团控制
商业银行流动性风险管理六大措施
公路工程定额中的岩土类别区分指南
笼目材料,凝聚态物理学家的团宠
甲状腺结节手术适应症详解
🌊 哈仙岛:东北黄海中的璀璨明珠
药学专业就业形势分析 毕业后能做什么工作
2025年非全日制研究生含金量详情一览
云盘硬盘u盘哪个更占优势
全谷物食物:糖尿病患者健康饮食的“宝藏”
如何在运动中快速提高爆发力-增强耐力-达到深度训练效果
40种酒瓶子设计如何影响消费者的购买选择?
便携式水质叶绿素测定仪原理及应用
水质叶绿素a检测仪工作原理与使用方法详解
伊利诺伊大学香槟分校热门专业详解
原料上涨,业绩承压!安宫牛黄丸和片仔癀锭剂多地回收市场价格下跌
电脑被人弄坏了如何赔偿是合法
带着孩子游图卢兹:5 项亲子活动
春季干咳怎么办?5类药物对症治疗,快速缓解不适!