1.1诞生背景
数据仓库诞生的原因
历史数据积存 :使用频率低,堆积在业务中,导致性能下降
企业数据分析需要:各个部门独立做数据抽取系统,导致数据不一致
1.2数据仓库
面向主题:为数据分析提供服务,根据主题将原始数据集合在一起
集成:原始数据来源于不同数据源,整合最终数据,经抽取、清洗、转换的过程
非易失:保存的数据是一系列历史快照,不允许被修改,只允许通过工具进行查询、分析
时变性:数仓会定期接收、集成新的数据,从而反映处数据的最新变化
- 区别:
数据库:面向事务设计,属于OLTP(在线事务处理)系统,主要操作是随机读写;在设计时尽量避免冗余,常采用符合范式来设计
数据仓库:面向主题设计,属于OLAP(在线分析处理)系统,主要操作是批量读写;关注数据整合,以及分析、处理性能;会有意引入冗余,采用反范式方式设计
1.3 技术实现
- 传统数据库 由关系型数据库组成MPP(大规模并行处理)集群
!! 问题: 扩展有限 热点问题
大数据数据仓库:天然的扩展性,完成海量数据的存放
将SQL转换为大数据计算引擎任务,完成数据分析
!!!SQL支持率、事务支持
-
MPP架构: 一致性、可用性、分区容错性 CAP
优点:运算方式精细、延迟低、吞吐低 ,适合中等规模的结构化数据处理
缺点:存储位置不透明,通过hash 确定数据所在的物理节点、单个节点瓶颈会成为整个系统短板,容错性差,分布式事务的实现扩展性降低。 -
分布式架构: Hadoop架构
常见产品:
传统数据仓库:
Oracle RAC
BD2
Teradata:
Greenplum:
大数据数据仓库:
hive:
spark sql
hbase
impala 数据查询引擎 查询接口
HAWQ:green plum移植产品
TIDB
架构图:
-
ETL
数据抽取extraction jdbc ogg cdc
结构化数据 JDBC、数据库日志;非结构和半结构化 监听文件变动
抽取方式:
全量同步全部数据进行抽取 用于初始化数据装载
增量同步检测数据的变动,抽取发生变动的数据,用于数据更新
转换transformation 清洗和转化
常见工具
结构化:sqoop1.x kettle datastage informatica Kafka
非|半:flume logstash -
ODS 操作数据层
数据与原业务数据保持一致,增加字段进行数据管理,存储的历史数据是只读的,提供业务系统查询使用。
全量导入:第一次导入。
增量导入:新增、更改的数据,建议使用外连接或全覆盖的方式。 -
DWD 数据明细层
对ODS的数据进行清洗、标准化、维度退化(时间、分类、地域),数据仍满足3NF模型,为分析运算做准备。 -
DWS 数据汇总层
对DWD的数据按照分析主题进行计算汇总,存放便于分析的宽表,存储类型并非3NF,注重数据聚合,复杂查询、处理性能更优的数仓模型,如维度模型。 -
ADS 数据应用层
也称数据集市,存储数据分析结果,为不同业务场景提供接口,减轻数据仓库的负担,数据仓库擅长数据分析,直接开放业务查询接口,会加重其负担。
OLTP 系统建模方法
主要操作随机读写,为了保证数据一致性、减少冗余,常使用关系模型,使用三范式规则来减少冗余。
OLAP 在线联机分析
主要操作是复杂分析查询,关注数据整合,以及分析、处理性能,存储方式不同,分为: -
ROLAP 关系型OLAP 使用关系模型构建,存储系统一般为RDBMS
典型的数据仓库建模方法有ER模型、维度模型(常)、data value、 anchor
维度模型: 星型 维度只有一层
雪花:多层,比较接近三范式设计,较为灵活
星座:基于多个事实表,之间共享一些维度表,
宽表模型:是维度模型的衍生,适合join性能不佳的数据仓库产品,将维度冗余到事实表中,形成宽表,减少join操作。 -
MOLAP 多维型OLAP 预先聚合计算,使用多维数组的形式(cube)保存数据结果,加快查询分析时间 常见的kylin druid
-
HOLAP 混合架构的OLAP 两者的集成;如低层是关系型的,高层是多维矩阵型的;查询效率高于ROLAP,低于MOLAP。
上卷 、下钻、旋转。
表的分类
事实表:现实存在的业务对象。
维度表:码表,对事实表中的数据进行统计、聚合运算。
事务事实表:一旦产生不会再变化,如交易流水、操作日志。
周期快照事实表:周期型如年、季度累计。
累计快照事实表:记录不确定周期的度量统计,只有一条记录,如订单状态表。:日期分区表,冷数据多,适用数据量少的。删掉冷数据或归档。以业务实体的结束时间分区,设计一个表存放未结束的。
拉链表:记录每条信息的生命周期,用于保留数据的所有历史状态。
任务调度
解决任务单元间的依赖关系,自动化完成任务的定时执行
常见的任务类型:shell java mapreduce sql
常见的调度工具:azkaban oozie