数据仓库入门

1.数据仓库诞生原因

历史数据积存:历史数据使用频率低(冷数据),堆积在业务库中,导致性能下降,因此需要讲这些冷数据转移到数据仓库中,如果需要历史数据做一些分析的话再从数据仓库中获取,从而做到热数据就近计算,冷数据集中储存

热数据:需要被计算节点频繁访问的在线类数据
e.g 当前地点,限时秒杀,商品库存信息,账户密码

温数据:具有一定时效性的行为数据
e.g 近期活跃应用、近期去过的地方等

冷数据:是对于离线类不经常访问的数据,比如企业备份数据、业务与操作日志数据、话单与统计数据
e.g 性别、兴趣、常住地、职业、年龄等数据画像

企业数据分析需要
**被动:**以历史数据积存为导向,延展出来数据分析的一个需要

**主动:**以数据分析为导向建立数据仓库,从业务数据库抽数,然后分析运算,汇集成最后报表的一个形式

作用:各个部分自己建立独立的数据抽取系统,导致数据不一致,兼容性差。因此需要建立一个统一的数据视图,解决数据的不一致的问题
e.g 数据仓库采用T+1模式,凌晨12点的时候抽取一次数据,各部门需要的数据直接从数据仓库里面拿,保证数据一致,同时数据仓库可以直接开放访问接口,因此业务数据库和数仓权限管控就更有针对性了

2.数据仓库的特点

1.面向主题:为数据分析提供服务,根据主题讲原始数据集合在一起
e.g
保险主题 - 将汽车保险、养老保险、医疗保险等集成在一起
用户行为表 - 将支付流水表,用户表,订单表集成为一张宽表
2.集成:将分散、异构、独立的数据源,整合为最终数据,需要经过ETL标准化,整理一致的数据规范
3.非易失:保存的数据是一系列历史快照,一般不进行修改,主要用于查询,追加和覆盖数据
4.时变行:数仓会定期接受、集成新的数据、从而反映出数据的最新变化。比如,以时间戳为标记版本,每次查询的时候就可以得到最新的数据,而老旧的数据就可以进行清除

数据仓库VS数据库
数据库面向事务设计,属于OLTP系统,主要操作随机读写;在设计的时候采用三范式
数据仓库是面向主题设计的,属于OLAP系统,主要操作是批量读取;关注数据集合,
以及分析、处理性能;会有意引入冗余,采用反范式设计

3.计算实现

传统数据仓库

由关系型数据库组成MPP(大规模并行处理)集群
数仓在建立初期一般选择关系型数据库,因为他要他要同步我们业务数据库的数据,他的业务迁移起来更加的方便,而且业务系统这块改造的成本也越小,但是作为历史数据,存储的数据量也比较庞大,技术单机数据库增加的大容量的硬盘也无法满足存储需求,因此需要多个单机的数据库组成一个MPP集群,由多个单节点组成了一个集群,进行数据存储和运算,
将抽取过来的数据经行提前调度,分配到各个节点进行存储,一般使用hash. 遇到计算和查询任务,每个节点接收到查询任务之后,计算出来的部分结果进行汇总

优点:有单机数据库迁移过来,兼容原有的SQL语法,业务迁移起来也比较方便,学习成本也更低,在没有达到某个量级的时候是优秀的解决方案,而且继承了单机数据优异的性能
缺点:一旦数据超过某个量级之后,他的问题就暴露出来了

扩展性有限:由单机数据库发展而来,基于单机数据库进行扩展,或者增加中间件,然后由中间件将数据分发到各个节点,各个节点运算出来的任务也由中间件来进行汇总。但本质上,MMP集群还是一个个单独的数据库,有很精细的内存管理,而且这种架构都是独立运算,数据交换的时候,需要通过高速网络来进行一个连接,这种以高速网络来支撑的方式,同时也直接限制了节点的上线,而且在数据存储的时候,采用的是分库分表,然后分库分表也有上限,分库分表的粒度越细,在数据处理的时候,性能也越差,且分库分表也不能无线去进行。热点问题:当热点集中在某一个数据库中,这个数据库的压力也是远高于其他节点,这个时候节点就容易出现宕机或者超时的情况,如果这个节点成为了瓶颈,那么这个数据库集群也会变慢。当我们集群规模越大,节点数越多,出错的概率也越多,整个集群的可用性也越低。当然这个问题也可以通过数据加盐的方式来解决
加盐:给表中的数据加上一个列前缀,将数据打乱,随机分布在各个节点上,但这个额外操作又会引发其他的问题

大数据数仓

利用大数据天然的扩展性,完成海量数据的存放,且有极强的扩展性
将sql转换为大数据计算引擎任务,完成数据分析

数处理方面,为了避免海量数据的移动,造成这种IO跟网络的开销,所以它采用了移动计算,而非移动数据的架构,在哪存储的就把计算分发到哪,然后然后进行计算,因为一份数据是拆分的,并分发到每个节点的,因此所有节点的任务是并发执行的,得到的是部分结果

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值