数据仓库分层介绍(ETL、ODS、DW、APP、DIM)

数据仓库分层介绍(ETL、ODS、DW、APP、DIM)
数据仓库各层说明:
⼀、数据加载层:ETL(Extract-Transform-Load)
⼆、数据运营层:ODS(Operational Data Store)
三、数据仓库层:DW(Data Warehouse)
1. 数据明细层:DWD(Data Warehouse Detail)
商用微波炉2. 数据中间层:DWM(Data WareHouse Middle)
3. 数据服务层:DWS(Data WareHouse Service)
四、数据应⽤层:APP(Application)
五、维表层:DIM(Dimension)
分层好处:
家具附件清晰数据结构:每⼀个数据分层都有它的作⽤域和职责,在使⽤表的时候能更⽅便地定位和理解
减少重复开发:规范数据分层,开发⼀些通⽤的中间层数据,能够减少极⼤的重复计算
统⼀数据⼝径:通过数据分层,提供统⼀的数据出⼝,统⼀对外输出的数据⼝径
伤流液
复杂问题简单化:将复杂的任务分解成多个步骤来完成,每⼀层只处理单⼀的步骤,⽐较简单和容易理解。当数据出现问题之后,不⽤修复所有的数据,只需要从有问题的步骤开始修复。
屏蔽原始数据的异常:不必改⼀次业务就需要重新接⼊数据。
我们将数据模型分为三层:数据运营层( ODS )、数据仓库层(DW)和数据应⽤层(APP):
ODS层存放的是接⼊的原始数据,DW层是存放我们要重点设计的数据仓库中间层数据,APP是⾯向业务定制的应⽤数据。
⼀、数据运营层:ODS(Operational Data Store)
“⾯向主题的”数据运营层,也叫ODS层,是最接近数据源中数据的⼀层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的ETL 之后,装⼊本层。本层的数据,总体上⼤多是按照源头业务系统的分类⽅式⽽分类的。
⼀般来讲,为了考虑后续可能需要追溯数据问题,因此对于这⼀层就不建议做过多的数据清洗⼯作,原封不动地接⼊原始数据即可,⾄于数据的去噪、去重、异常值处理等过程可以放在后⾯的DWD层来做。
⼆、数据仓库层:DW(Data Warehouse)
数据仓库层是我们在做数据仓库时要核⼼设计的⼀层,在这⾥,从 ODS 层中获得的数据按照主题建⽴各种数据模型。DW层⼜细分为DWD(Data Warehouse Detail)层、DWM(Data WareHouse Middle)层和DWS(Data WareHouse Servce)层。
1. 数据明细层:DWD(Data Warehouse Detail)
该层⼀般保持和ODS层⼀样的数据粒度,并且提供⼀定的数据质量保证。同时,为了提⾼数据明细层的易⽤性,该层会采⽤⼀些维度退化⼿法,将维度退化⾄事实表中,减少事实表和维表的关联。
另外,在该层也会做⼀部分的数据聚合,将相同主题的数据汇集到⼀张表中,提⾼数据的可⽤性,后⽂会举例说明。
2. 数据中间层:DWM(Data WareHouse Middle)
该层会在DWD层的数据基础上,对数据做轻度的聚合操作,⽣成⼀系列的中间表,提升公共指标的复⽤性,减少重复加⼯。
直观来讲,就是对通⽤的核⼼维度进⾏聚合操作,算出相应的统计指标。
3. 数据服务层:DWS(Data WareHouse Servce)
⼜称数据集市或宽表。按照业务划分,如流量、订单、⽤户等,⽣成字段⽐较多的宽表,⽤于提供后续的业务查询,OLAP分析,数据分发等。
⼀般来讲,该层的数据表会相对⽐较少,⼀张表会涵盖⽐较多的业务内容,由于其字段较多,因此⼀般也会称该层的表为宽表。
在实际计算中,如果直接从DWD或者ODS计算出宽表的统计指标,会存在计算量太⼤并且维度太少的问题,因此⼀般的做法是,在DWM层先计算出多个⼩的中间表,然后再拼接成⼀张DWS的宽表。由于宽和窄的界限不易界定,也可以去掉DWM这⼀层,只留DWS层,将所有的数据在放在DWS亦可。
三、数据应⽤层:APP(Application)
在这⾥,主要是提供给数据产品和数据分析使⽤的数据,⼀般会存放在 ES、PostgreSql、Redis等系统中供线上系统使⽤,也可能会存在Hive 或者 Druid 中供数据分析和数据挖掘使⽤。⽐如我们经常说的报表数据,⼀般就放在这⾥。
四、维表层(Dimension)
最后补充⼀个维表层,维表层主要包含两部分数据:
⾼基数维度数据:⼀般是⽤户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。
低基数维度数据:⼀般是配置表,⽐如枚举值对应的中⽂含义,或者⽇期维表。数据量可能是个位数或者⼏千⼏万。
⾄此,我们讲完了数据分层设计中每⼀层的含义,这⾥做⼀个总结便于理解,如下图。
**主题(Subject)**是在较⾼层次上将企业信息系统中的数据进⾏综合、归类和分析利⽤的⼀个抽象概念,每⼀个主题基本对应⼀个宏观的分析领域。在逻辑意义上,它是对应企业中某⼀宏观分析领域所涉及的分析对象。例如“销售分析”就是⼀个分析领域,因此这个数据仓库应⽤的主题就是“销售分析”。
各层⽰例应⽤说明:
如下图,可以认为是⼀个电商⽹站的数据体系设计。我们暂且只关注⽤户访问⽇志这⼀部分数据。
消防快速接头
按业务分类汇总数据源,ODS层不同来源的⽇志⽂件汇总成⼀张表,保存到DWD层;
从DWD层中选取业务关注的核⼼维度来做聚合操作,⽐如只保留⼈、商品、设备和页⾯区域维度,以此类推⽣成很多个DWM的中间表;
从DWM层抽取数据,将⼀个⼈在整个⽹站中的⾏为数据放到⼀张表中,到DWS层,这就是我们的宽表了,可以快速满⾜⼤部分的通⽤型业务需求;
最后,在APP应⽤层,根据需求从DWS层的⼀张或者多张表取出数据拼接成⼀张应⽤表即可.
按业务分类汇总数据源,ODS层不同来源的⽇志⽂件汇总成⼀张表,保存到DWD层;
从DWD层中选取业务关注的核⼼维度来做聚合操作,⽐如只保留⼈、商品、设备和页⾯区域维度,以此类推⽣成很多个DWM的中间表;从DWM层抽取数据,将⼀个⼈在整个⽹站中的⾏为数据放到⼀张表中,到DWS层,这就是我们的宽表了,可以快速满⾜⼤部分的通⽤型业务需求;
最后,在APP应⽤层,根据需求从DWS层的⼀张或者多张表取出数据拼接成⼀张应⽤表即可
不同的层次中会⽤到什么计算引擎和存储系统:
数据层的存储⼀般如下:
Data Source:数据源⼀般是业务库和埋点,当然也会有第三⽅购买数据等多种数据来源⽅式。业务库的存储⼀般是Mysql 和PostgreSql。磁流变阻尼器
ODS 层:ODS 的数据量⼀般⾮常⼤,所以⼤多数公司会选择存在HDFS上,即Hive或者Hbase,Hive居多。
DW 层:⼀般和 ODS 的存储⼀致,但是为了满⾜更多的需求,也会有存放在 PG 和 ES 中的情况。
APP 层:应⽤层的数据,⼀般都要求⽐较快的响应速度,因此⼀般是放在 Mysql、PG、Redis中。
计算引擎的话,可以简单参考图中所列就⾏。⽬前⼤数据相关的技术更新迭代⽐较快,本节所列仅为简单参考。
柴油脱从能⼒范围来讲,我们希望80%需求由20%的表来⽀持。直接点讲,就是⼤部分(80%以上)的需求,都⽤DWS的表来⽀持就⾏,DWS ⽀持不了的,就⽤DWM和DWD的表来⽀持,这些都⽀持不了的极少⼀部分数据需要从原始⽇志中捞取。结合第⼀点来讲的话就是:80%的需求,我们都希望以对应⽤很友好的⽅式来⽀持,⽽不是直接暴露给应⽤⽅原始⽇志。

本文发布于:2024-09-22 11:37:38,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/189975.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   业务   分析   维度   部分   问题   主题   需要
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议