如何网站托管,disqus wordpress,网站建设中的发布维护包括,微信如何建立公众号1#xff1a;为什么要分层
大多数情况下#xff0c;我们完成的数据体系却是依赖复杂、层级混乱的。在不知不觉的情况下#xff0c;我们可能会做出一套表依赖结构混乱#xff0c;甚至出现循环依赖的数据体系。
我们需要一套行之有效的数据组织和管理方法来让我们的数据体系…1为什么要分层
大多数情况下我们完成的数据体系却是依赖复杂、层级混乱的。在不知不觉的情况下我们可能会做出一套表依赖结构混乱甚至出现循环依赖的数据体系。
我们需要一套行之有效的数据组织和管理方法来让我们的数据体系更有序这就是谈到的数据分层。数据分层并不能解决所有的数据问题。
2数仓的三层结构
我们将数据模型分为三层数据运营层 ODS 、数据仓库层DW和数据应用层/应用数据存储APP/ADSODS层存放的是接入的原始数据 DW层是存放我们要重点设计的数据仓库中间层数据 APP/ADS是面向业务定制的应用数据。
1、数据运营层ODSOperational Data Store
“面向主题的”数据运营层也叫ODS层是最接近数据源中数据的一层数据源中的数据经过抽取、洗净、传输也就说传说中的 ETL 之后装入本层。本层的数据总体上大多是按照源头业务系统的分类方式而分类的。 一般来讲为了考虑后续可能需要追溯数据问题因此对于这一层就不建议做过多的数据清洗工作原封不动地接入原始数据即可至于数据的去噪、去重、异常值处理等过程可以放在后面的DWD层来做。
2、数据仓库层DWData Warehouse
数据仓库层是我们在做数据仓库时要核心设计的一层在这里从 ODS 层中获得的数据按照主题建立各种数据模型。DW层又细分为 DWDData Warehouse Detail层、DWMData WareHouse Middle层和DWSData WareHouse Servce层。
1数据明细层DWDData Warehouse Detail
该层一般保持和ODS层一样的数据粒度并且提供一定的数据质量保证。同时为了提高数据明细层的易用性该层会采用一些维度退化手法将维度退化至事实表中减少事实表和维表的关联。 另外在该层也会做一部分的数据聚合将相同主题的数据汇集到一张表中提高数据的可用性。
2数据中间层DWMData WareHouse Middle
该层会在DWD层的数据基础上对数据做轻度的聚合操作生成一系列的中间表提升公共指标的复用性减少重复加工。 直观来讲就是对通用的核心维度进行聚合操作算出相应的统计指标。
3数据服务层DWSData WareHouse Servce
又称数据集市或宽表。按照业务划分如流量、订单、用户等生成字段比较多的宽表用于提供后续的业务查询OLAP分析数据分发等。 一般来讲该层的数据表会相对比较少一张表会涵盖比较多的业务内容由于其字段较多因此一般也会称该层的表为宽表。
3、数据应用层APPApplication/ADS
在这里主要是提供给数据产品和数据分析使用的数据一般会存放在 ES、PostgreSql、Redis等系统中供线上系统使用也可能会存在 Hive 或者 Druid 中供数据分析和数据挖掘使用。比如我们经常说的报表数据一般就放在这里。
3总结及其他
ODS层: 源数据层作用: 对接数据源, 和数据源的数据保持相同的粒度(将数据源的数据完整的拷贝到ODS层中)注意:如果数据来源于文本文件, 可能会需要先对这些文本文件进行预处理(spark)操作, 将其中不规则的数据, 不完整的数据, 脏乱差的数据先过滤掉, 将其转换为一份结构化的数据, 然后灌入到ODS层一般放置 事实表数据和少量的维度表数据DW层: 数据仓库层DWD层: 明细层作用: 用于对ODS层数据进行清洗转换工作 , 以及进行少量的维度退化操作少量: 1) 将多个事实表的数据合并为一个事实表操作2) 如果维度表放置在ODS层 一般也是在DWD层完成维度退化DWM层: 中间层 作用: 1) 用于进行维度退化操作 2) 用于进行提前聚合操作(周期快照事实表)DWS层: 业务层 作用: 进行细化维度统计分析操作DA层: 数据应用层作用: 存储基于DWS层再次分析的结果, 用于对接后续的应用(图表, 推荐系统...)例如:比如DWS层的数据表完成了基于订单表各项统计结果信息, 但是图表只需要其中销售额, 此时从DWS层将销售额的数据提取出来存储到DA层DIM层: 维度层作用: 存储维度表数据