目录标题
- 1、数据仓库
- 1.1 数仓为何而来?
- 1.2 数据仓库的主要特性
- 1.3 数据仓库与数据库的区别
- 1.4 数据仓库三层架构
- 1.5 实战-美团酒旅数仓建设
- 1.6 ETL、ELT
- 1.6.1 ETL
- 1.6.2 ELT
1、数据仓库
数据仓库Data Warehouse 简称DH,数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持
数据仓库不产生数据 – 数据来自数据库、日志、爬虫等
数据仓库不消费数据 – 分析结果给外部的报表平台等展示
常见的数据源:
- RDBS关系型数据库-业务数据
- log file --日志文件
- 爬虫
- 其他数据
1.1 数仓为何而来?
答:为了分析数据而来
每天有大量的用户信息产生,如何存储?
要求:处理速度要快,且安全
存放在关系型数据库中—因为事务支持
事务的四大特性:原子性、一致性、隔离性、持久性
but随着业务越来越多,运营如何决策?—需要数据分析
基于业务数据开展数据分析,基于分析结果给决策提供支持
在哪里数据分析?
虽然可以直接在数据库分析,但没必要,因为:
- 数据分析也是对数据进行读取操作,会让读取压力倍增
- 数据库OLTP仅存储近期的数据
- 数据可能分析在不同数据库中,字段类型属性不统一
需要把数据拿过来搭建专门分析的地方—数据仓库出现了
即能进行分析,也可以保证数据不受影响
OLTP面向事务的数据库–开展业务的
数据仓库 – 开展分析的
结论:
- 先有数据库再有数据仓库
- 数据仓库不是大型的数据库,只是一个数据分析平台
1.2 数据仓库的主要特性
数据仓库是面向对象的、集成的、非易失的、时变的数据集合
面向主题
主题与数据可以是:1对1,1对多的关系
在数仓中开展分析,先确定主题,然后基于主题寻找、采集数据
集成性
对于来自多个数据源的数据进行规范化处理
ETL:抽取、转化、加载
非易失性:
一般存储的是历史数据
数据仓库中一般是查询操作,修改和删除操作很少
实时数仓是反例
时变性:
站在时间角度变化
1.3 数据仓库与数据库的区别
数据库与数据仓库的区别实际是OLTP和OLAP的区别
- 操作型处理,叫联机事务处理OLTP,也可以称为面向交易的处理系统。用户较为关注操作的响应时间—MySQL注重优化
OLTP系统注重的是数据安全、完整、响应效率,通常指的是关系型数据库
T —transaction事务的 - OLAP。A-analytical分析的。面向分析支持分析
- 数据仓库不是大型的数据库,也没有要取代数据库的目标,只是一个数据分析平台
注意:某些场所下,说oracle也是OLAP系统,如何理解?
如果把RDBMS只用作数据分析作用,就是OLAP系统
1.4 数据仓库三层架构
按照数据流入流出的过程,数据仓库架构可分为—源数据、数据仓库、数据应用。
企业会在这基础的三层架构中增加其他层
数据源:数据库OLTP、日志数据、爬虫数据、其他
数据仓库层:
数仓开展数据分析的基本步骤:
- 确定分析的主题
- 基于主题采集和主题相关的数据(主题和数据可能一对一,也可能一对多)
- 在主题下面基于业务需求,模型展开各种分析
- 分析的结果支持各种数据应用(Aata app)
ODS 操作型数据处理,一般叫做源数据层,通俗叫做临时存储层
- ODS层的数据来自各个不同的数据源,主要目的是把数据和数据源之间进行解耦合
- 因为是临时存储,且数据源之间差异较大,一般不用于直接分析
分层好处:
- 解耦合,员工职责明确,只需要局部调整
- 空间换时间,可以提取执行。提高最后应用层的效率
1.5 实战-美团酒旅数仓建设
架构变化情况:
数仓是不断完善,根据业务情况不断调整的
1.6 ETL、ELT
数据仓库从各数据源中获取数据及在数据仓库内的数据转换和流动都可以认为是ETL(extract抽取、transform转化、load装载)
1.6.1 ETL
传统的
抽取–转换
1.6.2 ELT
大数据时代,企业更偏向ELT
抽取-进Hadoop–在数仓中转换