一、什么是数据仓库
1、数据仓库:Data warehouse(简写DW或者DWH),是在数据库已经大量存在的情况下,它是一整套包括了ETL(提取、转换和加载的过程),调度,建模在内的完整理论体系。
2、数据仓库的方案建设目的:为前端查询和分析作为基础,主要用于OLAP(on-line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 目前行业流行的大数据分析和数据仓库领域使用的工具:
- Hive(建立在Apache Hadoop之上的数据仓库基础设施,可以将结构化的查询语言,转化为MapReduce任务进行并行处理)。
- Greenplm(基于开源的大数据分析平台)。
- AWS Redshift(亚马逊提供)。
3、数据仓库并不是数据的最终目的地,而是为数据最终的目的地做好准备,这些准备包含:数据清洗,转义,分类,重组,合并,拆分,统计等。
二、为什么要数据分层
为了解决我们可能面临的问题,需要一套行之有效的数据组织,管理和处理方法,来让我们的数据体系更加有序。数据分层的有点:
- 清晰的数据结构:让每个数据层都有自己的作用和职责,在使用和维护的时候能够更加方便和理解。
- 复杂问题简化:将一个复杂的任务拆解成多个步骤来分步骤完成,每个层只解决特定的问题。
- 统一的数据口径:通过数据分层,提供统一的数据出口,统一的输出口径。
- 减少重复开发:规范数据分层,开发通用的中间层,可极大的减少重复计算的工作。
三、数据分层
每个公司的业务都可以根据自己的业务需求分层不同的层次;目前比较流行的数据分层:数据运营层、数据仓库层、数据服务层。
Ⅰ--数据运营层ODS
数据运营层: Operation Data Store数据准备区,也成为贴源层.数据源中的数据,经过抽取,洗净,传输,也就是ETL过程之后进入本层 该层的主要功能:
- ODS是后面数据仓库层的准备区
- 为DWD层提供原始数据
- 减少对业务系统的影响
为了考虑后续可能要追溯数据问题,因此对于这一层ODS不建议做过多的数据清洗工作.
Ⅱ--数据仓库层DW
数据仓库层从上到下,又可以分为3个层:数据细节层DWD,数据中间层DWM,数据服务层DWS。
1、数据细节层DWD
该层是业务层何数据仓库的隔离层,保持和ODS层一样的数据颗粒度,主要是对ODS数据层做一些数据清洗和规范化的操作,比如去除空数据,脏数据,离群值等。
为了提高数据明细层的易用性,该层通常会采用一些维度退化方法,将维度退化至事实表中,减少事实表和维表的关联。
2、数据中间层DWM
该层是在DWD层的数据基础上,对数据做一些轻微的聚合操作,生成一系列的中间结果表,提升公共指标的复用性,减少重复加工的工作。
简答来说,对通用的核心维度进行聚合操作,算出相对应的统计指标。
3、数据服务层DWS
该层是基于DWM上的基础数据,整合汇总成分析某一个主题域的数据服务层,用于提供后续的业务查询,OLAP分析,数据分发等。
一般来说,该层的数据表会相对较少;一张表会涵盖表较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表。
Ⅲ--数据应用层ADS
该层主要是提供给数据产品和数据分析使用的数据,一般会存放在ES,Redis,PostgreSql等系统中供线上系统使用;也可以存放在hive或者Druid(一个快速,高性能的开源分布式数据存储和实时分析工具)中,供数据分析和数据挖掘使用,比如常用的数据报表就是存在这里的。
维表层Dimension
维度表或维表,又是也称查找表(lookup Table),是与事实表相对应的一种表,它保存了维度的属性值,它可以跟事实表做关联,相当于将事实表上经常重复出现的属性抽取,规范出来用一张表进行管理。
维度表主要是包含两个部分:
高基数维度数据:一般是用户资料表,商品资料聊类似的资料表,数据量千万级或上亿级别。
低基数维度数据:一般是配置表,比如枚举字段对应的中文含义,或者日期维表等;数据量小。
ETL(Extract-Transform-Load)过程:
数据提取阶段:涉及从各种数据源(数据库,文件,API等)中获取数据。
数据转换阶段:包括对提取的数据进行清洗,过滤,聚合,计算等操作,使数据适用于目标系统的结构和要求。
数据加载阶段:将经历过转换的数据加载到目标数据仓库或目标系统中。
本文介绍了数据仓库的概念,包括其在OLAP中的应用和流行的工具如Hive和Greenplum。同时探讨了数据分层的重要性,特别是数据运营层、数据仓库层和数据服务层,以及ETL过程在数据处理中的关键作用。
2154

被折叠的 条评论
为什么被折叠?



