1. 传统数据和数据仓库
1.1 数据仓库和传统业务数据库
业务数据是面向业务处理,即事务处理的—OLTP。
数据仓库是面向业务分析,决策—OLAP。
面向主题,集成,非易失(作为业务数据的冷却数据,所以保存要一致)
所以,根据不同的特点,其存储结构有着巨大差异。
传统业务数据库是事务型数据库,支持保证业务的流畅处理,所以业务控制精细。
但,容量有限。
数据仓库,以只读为主,基本很少更新,侧重点是大容量,快速的聚合和统计。
一般的操作,会把业务数据中的非热点数据迁移到仓库中,业务数据只保留业务自身数据。
另外,还有一个差异,业务数据,在一个公司内部,通常时多个的,而且格式不尽相同和统一,这个好理解,格式优先满足各个不同的业务需要。但是数据进入仓库后,就是统一的,规范的,满足统一的融合分析。
1.2 Mmp数仓和分布式数仓
MMP就是传统数仓,就是把单机数据库改成集群数据库。
单个节点包含了数据和计算,节点间并发计算,如果关联数据,就迁移数据,节点间可以调用其他节点数据。
数据量不能太大。
1.3. 分布式数据
数据和计算是分离的,数据是分布式存储。建议是数据不迁移,迁移算法。
数据共享,把算法分发下去再汇总
问题是,算法调度,分片,汇总,管理,本身就很重,无论计算数据多大。
所以,如果数据量不大的时候,很重的调度计算汇总,就非常不划算。
2 数据仓库的架构
2.1. 概述
ETL 负责迁移数据
ODS 就是业务数据的克隆部分,不对数据修改。
DWD 就是详细数据,对原始数据进行清洗整理。
DWS 就是为业务数据做简单的汇总,比如汇总所有用户属性的大宽表,中间建模。
ADS 就是面向业务的面向业务的具体分析。
2.2. ETL
2.3. ODS层
冷却数据要修改,也支持两种方法。
一个是有新数据进来,插入一条新数据,然后删除原来的老数据。然后update_type是UPDATE类型
另外一种方式,用外连接。
2.4. DWD
数据明细,就要开始对原始数据的改造了。
首先,要清洗不合规的数据。
其次,维度退化,把关联表合并成一个大的宽表,增加属性。同理不同业务部门的同样对象描述,也进行合并操作。
再次,数据格式进行统一化处理,比如性别,统一格式类型。
再再次,合并数据,比如来自不同地区的数据。
2.5. DWS
面向汇聚统计的主题,做适度的汇总,便于后续进一步的分析操作。
2.6. ADS
ADS实际就是把DWS分析的结果写入到结果表中,便于外部的查询
3 建模方法
3.1. ROLAP
ROLAP通常用维度分析法。
就是建模的时候,分成事实表和维度表。
维度其实就是筛选的时间,把所有的筛选条件做成一个维度表。
做成维度的时候,在实际应用的时候,又会把这些维度表整合成一个大的宽表。
3.2. MOLAP
他提前将数据统计数据先统计好,后面再汇总的时候,就会非常的快。
3.3. 多维分析
钻取
就是切换维度,由高维度转成低纬度查询就是下钻。
由低维度转成高维度就是上卷
比如,原来按月查询,数量太少,改成按年份查询
切片
就是按照一个高维度查询后,其结果再按照其他维度进行一次拆分。
切一个维度就是切片,多个维度切就是切块