数据仓库【1】:简介
- 1、诞生背景
- 2、基本概述
-
- [2.1、数据仓库(Data Warehouse,DW)](#2.1、数据仓库(Data Warehouse,DW))
- 2.2、数据仓库特点
- [2.3、数据仓库 VS 数据库](#2.3、数据仓库 VS 数据库)
- 3、技术实现
- [4、MPP & 分布式架构](#4、MPP & 分布式架构)
- 5、常见产品
1、诞生背景
1.1、数据仓库诞生原因
- 历史数据积存
- 企业数据分析需要
1.2、历史数据积存
- 历史数据使用频率低,堆积在业务库中,导致性能下降
1.3、企业数据分析需要
- 各个部门自己建立独立的数据抽取系统,导致数据不一致
2、基本概述
2.1、数据仓库(Data Warehouse,DW)
- 由数据仓库之父比尔·恩门(Bill Inmon)提出
- 数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合
- 主要用于组织积累的历史数据,并使用分析方法(OLAP、数据分析)进行分析整理,进而
辅助决策,为管理者、企业系统提供数据支持,构建商业智能
2.2、数据仓库特点
- 面向主题:为数据分析提供服务,根据主题将原始数据集合在一起
- 集成:原始数据来源于不同数据源,要整合成最终数据,需要经过抽取、清洗、转换的过程
- 非易失:保存的数据是一系列历史快照,不允许被修改,只允许通过工具进行查询、分析
- 时变性:数仓会定期接收、集成新的数据,从而反映出数据的最新变化
2.3、数据仓库 VS 数据库
- 数据库面向事务设计,属于OLTP(在线事务处理)系统,主要操作是随机读写;在设计时尽
量避免冗余,常采用符合范式规范来设计 - 数据仓库是面向主题设计的,属于OLAP(在线分析处理)系统,主要操作是批量读写;关
注数据整合,以及分析、处理性能;会有意引入冗余,采用反范式方式设计
3、技术实现
3.1、数据仓库建设方案
- 传统数据仓库
- 大数据数据仓库
3.2、传统数据仓库
- 由关系型数据库组成MPP(大规模并行处理)集群
3.3、大数据数据仓库
- 利用大数据天然的扩展性,完成海量数据的存放
- 将SQL转换为大数据计算引擎任务,完成数据分析
4、MPP & 分布式架构
4.1、MPP架构
- 传统数仓中常见的技术架构,将单机数据库节点组成集群,提升整体处理性能
- 节点间为非共享架构(Share Nothing),每个节点都有独立的磁盘存储系统和内存系统
- 每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供服务
- 设计上优先考虑C(一致性),其次考虑 A(可用性),尽量做好P(分区容错性)
架构优点- 运算方式精细,延迟低、吞吐低
- 适合中等规模的结构化数据处理
架构缺点 - 存储位置不透明,通过Hash确定数据所在的物理节点,查询任务在所有节点均会执行
- 并行计算时,单节点瓶颈会成为整个系统短板,容错性差
- 分布式事务的实现会导致扩展性降低
4.2、分布式架构
- 大数据中常见的技术架构,也称为Hadoop架构/批处理架构
- 各节点实现场地自治(可以单独运行局部应用),数据在集群中全局透明共享
- 每台节点通过局域网或广域网相连,节点间的通信开销较大,在运算时致力减少数据移动
- 优先考虑的是P(分区容错性),然后是A(可用性),最后再考虑C(一致性)
架构特点- 解决了单点故障问题,会将出错的任务调度到其他副本节点
- 运算方式粗犷,吞吐量大
- 扩展性极强,适合处理非结构化、半结构化数据
- 需要将中间结果进行存储,且数据移动开销较大
4.3、MPP + 分布式架构
- 数据存储采用分布式架构中的公共存储,提高分区容错性
- 上层架构采用MPP,减少运算延迟
5、常见产品
5.1、传统数据仓库
- Oracle RAC
- DB2
- Teradata
- Greenplum
5.2、大数据数据仓库
- Hive
- Spark SQL
- HBase
- Impala
- HAWQ
- TIDB