赞
踩
(1)历史数据积存(存放在线上业务数据库中,当数据积压到一定程度会导致性能下降,所以需要将实用频率低的冷数据转移到数据仓库中)
(2)企业数据分析的需要(业务数据库中的数据实时更新,企业各个部门自己建立独立的数据抽取系统,导致数据不一致;数仓面向数据分析,业务数据库面向业务系统)
(1)数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合。
(2)主要用于组织积累的历史数据,并使用分析方法(OLAP、数据分析)进行分析整理,进而
辅助決策,为管理者、企业系统提供数据支持,构建商业智能
面向主题:为数据分析提供服务,根据主题将原始数据集合在一起
集成:原始数据来源于不同数据源,要整合成最终数据,需要经过抽取、清洗、转换的过程
非易失:保存的数据是一系列历史快照,不允许被修改,只允许通过工进行查询、分析
时变性:数仓会定期接收、集成新的数据,从而反映出数据的最新变化
(1)传统数据仓库(扩展性有限,热点问题)
由关系型数据库组成MPP(大规模并行处理)集群;hash算法;分库分表
(2)大数据数据仓库
利用大数据天然的扩展性(分布式存储,包括分布式计算,并添加了SQL的支持),完成海量数据的存放,但是在数据量较少的时候后计算速度较慢。解决了传统数据仓库扩展性和热点问题。
架构方式有三种:share everything; share disk; share nothing
>>MMP架构缺点
(1)由于这种非共享架构,存储位置不透明,通过Hash确定数据所在的物理节点,查询任务在所有节点均会执行;
(2)并行计算时(在整个协同运算的过程中),单节点瓶颈(单个节点运行缓慢的时候)会成为整个系统短板,容错性差;随着节点总数的增加,集群规模的增大,节点故障的数量也会增加,瓶颈将会越发明显,这也是MMP数据库扩展性较差的根本原因;
(3)MMP数据库致力于实现分布式事务(为了保证数据的一致性),但是在分布式事务中,实现这种事务之后,一定会影响它的扩展性。
(1)分布式架构大数据中常见的技术架构,也称为Hadoop架构/批处理架构;
(2)各节点实现场地自治(可以单独运行局部应用,MMP不可单独运行局部应用,只能作为整体对外提供服务),数据在集群中全局透明;
(3)每台节点通过局域网或广域网相连,节点问的通信开销较大,在运算时致力减少数据(移动计算而非移动数据);
(4)优先考虑的是P(分区容错性,数据存储到集群会被拆分成多个分片,每个分片又会保存多个副本,解决了单点故障问题),然后是A(可用性),最后再考虑C(一致性)。
数据量低的时候用MMP数据库,数据量一但达到某个量级,推荐使用分布式架构,其吞吐量大的优势就会显示出来。
(1)数据存储采用分布式架构中的公共存储,提高分区容错性
(2)上层架构采用MPP,减少运算延迟;
(3)相较于其他大数据产品来说,延迟较低,运行速度较快。在实时的流数据处理中,经常被采用;相较于传统的MMP架构数据库,扩展性有了进一步提升。
总结:MMP数据库适用于中等规模的数据,延迟较低,SQL支持率高;分布式批处理这种架构更适合处理海量数据的批处理计算,其吞吐较高,运算速度快,扩展性强。
(1)数据抽取 (Extraction)
抽取的数据源可以分为结构化数据、非结构化数据、半结构化数据。结枸化数据一般采用JDBC、数据库日志方式(推荐方式),非半结构化数据会监听文件
(2)抽取方式
数据抽取方式有全量同步、增量同步两种方式:
- 全量同步会将全部数据进行抽取,一般用于初始化数据装载
- 增量同步方式会检测数据的变动,抽取发生变动的数据,一般用于数据
(3)数据转换 (Transformation)
数据转换要经历数据清洗和转换两个阶段:
结构化数据在转换过程中的逻辑较为简单,非|半结构化数据的转换会较为复杂。
(4)数据加载(Loading)
将最后处理完的数据导入到对应的目标
(1)操作数据层 (ODS)
数据与原业务数据保持一致,可以增加字段用来进行数据管理(实际上属于原数据的扩充集)。存储的历史数据是只读的,提供业务系统查询使用。
在ODS层下有多张表,将其汇总成一个表,得到标准数据,分析运算效率变高,接下来进行分析运算。
数据汇总层的数据对数据明细层的数据,按照分析主题进行计算汇总,存放便于分析的宽表模型。脱离了三范式(存储模型并非3NF),而是注重数据聚合,复杂查询、处理性能更优的数仓模型,如维度模型。
在大数据的数仓中,主要以大宽表为主;在传统数仓中会对汇总表建立一些模型,如维度模型。对DWS这一层的设计,是数据仓库的核心,因为数据仓库的面向主题,包括模型设计都是在DWS层中进行。目的是为了数据分析提供一个更优异的性能。
对DWS层数据进行分析完成之后得到的结果表就存在ADS层数据中,ADS层保存的数据要提供给外部系统进行使用。
由于数据仓库更注重分析和计算,与外部系统的查询和交互效率低,如果让外部系统直接对接数据仓库的话,大量的查询落进来,全部转换成批处理任务,这种频繁的查询会给数仓带来压力。所以使用ADS层来专们存储数据结果,为外部系统提供访问接口,提供更快的查询和交互速度。
ROLAP依赖于模型设计;MOLAP和HOLPAP主要依赖于数仓产品的选型,更依赖于产品的底层设计。MOLAP主要存数据结果,一般不存明细数据(表数据);HOLAP底层是关系型的,所以可以存储明细数据、表的原数据,将预计算结果保存在上层,如果SQL在上层中查不到结果,也可以在底层中查询。
最常用的是维度模型,适合互联网这种业务变动比较频繁的数据。其他三种适合比较成熟的数据仓库,数据的表结构变动不大。
(1)维度模型中,表被分为维度表、事实表,维度是对事实的一种组织;
(2)维度一般包含分类、时间、地域等
直接对事实表进行聚合即可。在企业中这种情况比较少,可能会有多层的维度,
当业务规模逐渐增长的情况下,出现的维度共用,形成了星座模型。
宽表模型是维度模型的行生,适合join性能不佳的数据仓库产品——大数据数据仓库,是维度模型的衍生,在大数据产品这块的妥协。宽表模型将维度元余到事实表中,形成宽表,以此减少join操作。
MOLAP是面向ADS层的,加快查询速度;ROLPAP是面向DWS层的。
(1)全量同步:
•数据初始化装载一定使用全量同步的方式
•因为业务、技术原因,使用全量同步的方式做周期数据更新,直接覆盖原有数据即可
(2)增量同步
针对结构化数据:对数据库日志进行抽取,Ogg或者CDC;或者JDBC方式,用SQL对时间字段进行筛选数据;
针对非|半结构化数据:一般的抽取工具自带实时监控。
常见调度工具: Azkaban和Oozie
>> 项目背景
>> 复购率计算
>> 数据表
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。