赞
踩
数据仓库( Data Warehouse ),是为企业制定决策,提供数据支持的。可以帮助企业,改进业务流程、提高产品质量等。
数据仓库的输入数据通常包括:业务数据、用户行为数据和爬虫数据等
业务数据:
就是各行业在处理事务过程中产生的数据。比如用户在电商网站中登录、下单、支付等过程中,需要和网站后台数据库进行增删改查交互,产生的数据就是业务数据。业务数据通常存储在MySQL、Oracle等数据库中。
用户行为数据:
用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。比如页面浏览、点击、停留、评论、点赞、收藏等。用户行为数据通常存储在日志文件中。
爬虫数据:
通常事通过技术手段获取其他公司网站的数据。
面向主题:为数据分析提供服务,根据主题将原始数据集合在一起。
集成:原始数据来源于不同数据源,要整合成最终数据,需要经过抽取、清洗、转换的过程。
非易失:保存的数据是一系列历史快照,不允许被修改,只允许通过工具进行查询、分析。
时变性:数仓会定期接受、集成新的数据,从而反映出数据的最新变化。
数据库面向事务设计,属于OLTP(在线事务处理)系统,主要操作是随机读写;在设计时尽量避免冗余,常采用符合范式规范来设计。
数据仓库是面向主题设计的,属于OLAP(在线分析处理)系统,主要操作是批量读写;关注数据整合,以及分析、处理性能;会有意引入冗余,采用反范式方式设计。
数据仓库建设方案:
传统数据仓库
大数据数据仓库
由关系型数据库组成MPP(大规模并行处理)集群
缺点:扩展性有限(单机架构)、热点问题
常见的传统数据库:
Oracle RAC、DB2、Teradata、Greenplum
利用大数据天然的扩展性,完成海量数据的存放
将SQL转换为大数据计算引擎任务,完成数据分析
常见的大数据数据仓库
Hive、Spark SQL、HBase、Impala、HAWQ、TIDB
将数据从来源端进行抽取、交互转换、加载至目的端的过程
构建数据仓库的重要一环,用户从数据源中抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,讲数据加载大数据仓库中去
ETL规则的设计和实施约占整个数据仓库搭建工作量的60%——80%
数据抽取
抽取的数据源可以分为结构化数据,非结构化数据,半结构化数据
结构化数据一般采用JDBC(对数据库进行直连,会加重数据库的负载,会影响业务的运行,一般选在数据量产生较小的时间段)、数据库日志方式
非/半结构化数据会监听文件变动(半结构化比如像xml、json文件;非结构化文件像图像、音频)
抽取方式
数据抽取方式有全量同步、增量同步两种方式
全量同步会将全部数据进行抽取,一般用于初始化数据装置
增量同步方式会检测数据的变动,抽取发生变动的数据,一般用于数据更新
数据转换
数据转换要经历数据清洗和转换两个阶段
——数据清洗主要是对出现的重复、二义性、不完整、违反业务或逻辑规则等问题的数据进行统一处理
——数据转换主要是对数据进行标准化处理,进行字段、数据类型、数据定义的转换
结构化数据在转换过程中的逻辑较为简单,非/半结构化数据的转换会较为复杂
数据加载
将处理完成的数据导入到对应的目标源里
数据与原业务数据保持一致,可以增加字段用来进行数据管理
存储的历史数据是只读的,提供业务系统查询使用
业务系统对历史数据完成修改后,将update_type字段更新为UPDATE,追加回ODS中
在离线数仓中,业务数据定期通过ETL流程导入到ODS中,导入方式有全量、增量两种:
全量导入:数据第一次导入时,选择此种方式
增量导入:数据非第一次导入,每次只需要导入新增、更改的数据,建议使用外连接&全覆盖方式
DWD(数据明细层)和DWS(数据汇总层)组成,完成数据分析功能。
数据明细层对ODS层的数据进行清洗、标准化、维度退化(时间、分类、地域)
数据仍满足3NF模型,为分析运算做准备
数据汇总层的数据对数据明细层的数据,按照分析主题进行计算汇总,存放便于分析的宽表
存储模型并非3NF,而是注重数据聚合,复杂查询、处理性能更优的数仓模型,如维度模型
数据应用层也被称为数据集市
存储数据分析结果,为不用业务场景提供接口,减轻数据仓库的负担
数据仓库擅长数据分析,直接开发业务查询接口,会加重其负担
基本概念
OLTP(在线事务处理)系统中,主要操作是随机读写
为了保证数据一致性、减少冗余,常使用关系模型
在关系模型中,使用三范式规则来减少冗余
OLAP系统,主要操作是复杂分析查询;关注数据整合,以及分析、处理性能
OLAP根据数据存储的方式不同,又分为ROLAP、MOLAP、HOLAP
OLAP系统分类
ROLAP(Relation OLAP,关系型OLAP):使用关系模型构建,存储系统一般为RDBMS
MOLAP(Mutlidimensional OLAP,多维型OLAP):预先聚合计算,使用多维数组的形式保存数据结果,加快查询分析时间
HOLAP(Hybrid OLAP,混合架构的OLAP):ROLAP和MOLAP两者的集成;如低层是关系型的,高层是多维矩阵型的;查询效率高于ROLAP,低于MOLAP。
典型的数据仓库建模方法有ER模型、维度模型、Data Value、Anchor
ER模型:
1.出发点是为了整合数据,为数据分析决策服务
2.需要全面了解业务和数据
3.实施周期长
4.对建模能力要求高
维度模型:
1.为分析需求服务,更快完成需求分析
2.具有较好大规模复杂查询相应性能
3.最流行的数仓建模经典
Data Value:
1.ER模型的衍生
2.强调数据的历史性、可追溯、原子性
3.弱化一致性处理和整合
4.引入范式、应对源系统的扩展性
Anchor:
1.Data Value模型的衍生
2.初衷为设计一个高度可扩展模型
3.会带来较多的join操作
MOLAP将数据进行预结算,并将聚合结果存储到CUBE模型中
CUBE模型以多维数组的形式,物化到存储系统中,加快后续的查询
生成CUBE需要大量的时间、空间,维度与处理可能会导致数据膨胀
常见的MOPLAP产品:Kylin、Druid
OLAP主要操作时复杂查询,可以多表关联,使用COUNT、SUM、AVG等聚合函数
OLAP对复杂查询操作做了直观的定义,包括钻取、切片、切块、旋转
钻取
对维度不同层次的分析,通过改变维度的层次来变换分析的粒度
钻取包括上卷(Roll-up)、下钻(Drill-down)
上卷,也称向上钻取,指从低层次到高层次的切换
下钻,指从高层次到低层次的切换
切片、切块
选择某个维度进行分割称为切片
按照多维进行的切片称为切块
旋转
对维度方向的互换,类似于交换坐标轴上卷
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。