目录
一、什么是数仓?
数据仓库是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。
面向主题:基于某个明确的主题,仅需要与该主题相关的数据
集成的:从不同的数据源采集数据到同一个数据源,此过程会有一些ETL操作。
随时间变化的:关键数据隐式或者显式的基于时间变化
相对稳定:数据仓库的数据一般是反应相当长一段时间内的数据内容
二、为什么要对数据仓库进行建模?
清晰、性能、质量、效率
三、关于 OLTP、OLAP
OLTP翻译为联机事务处理, OLAP翻译为联机分析处理,从字面上来看OLTP是做事务处理,OLAP是做分析处理。
从对数据库操作来看,OLTP主要是对数据的增删改,OLAP是对数据的查询。
有下图:
四、关于数仓cube
举一个例子:
对一个cube经常会有的操作 切片、切块等
五、阿里的ONEDATE数仓模型
1、实现大致如下
2、 具体数仓构建:
六、关于数据模型分类
一些术语
七、关于ER建模和维度建模
1、ER模型
常用于OLTP数据库建模,应用到构建数仓时更偏重数据整合, 站在企业整体考虑,将各个系统的数据按相似性一致性、合并处理,为数据分析、决策服务,但并不便于直接用来支持分析。缺陷:需要全面梳理企业所有的业务和数据流,周期长,人员要求高。
2、维度建模
是面向分析场景而生,针对分析场景构建数仓模型;重点关注快速、灵活的解决分析需求,同时能够提供大规模数据的快速响应性能。针对性强,主要应用于数据仓库构建和OLAP引擎低层数据模型。优点:不需要完整的梳理企业业务流程和数据,实施周期根据主题边界而定,容易快速实现demo,而且相对来说便于理解、提高查询性能、对称并易扩展。
总结: 作为大数据板块,数据来源更加广泛,针对的业务域也更加宽广,所以维度建模相对来说更加灵活并适用。
八、什么是事实表/维度表?
1、定义
也就是说事实表是表本身,维度表是将表中数据按照同一个方向去区分后产生的表(原始表的切片)
2、常见的维度建模:
(1)星型模型
事实表与维表直接关联,事实表再中间,维表在周边;星型模型不符合数据库的设计规范,有数据冗余;星型模型关联表少,查询性能快
(2)雪花模型
事实表并不是与所有维表直接关联,维表之间存在间接关联;雪花模型符合数据库的设计规范,没有数据冗余;雪花模型关联表多查询性能慢
(3)星座模型
由多个事实表相组合,维表是公共的。企业中一般都是星座模型
九、事实表的类型
最常见的事实表有三种类型:事务事实表、周期快照事实表和累积快照事实表。
1、事务事实表
用来描述业务过程,表示对应时空上某点的度量事件,保存的是最原子的数据,也称为原子事实表。在实际使用中,一般作为明细层使用,例如下单明细、支付明细等。
2、周期快照事实表
周期快照事实表的一行,以具有规律性的时间间隔记录事实。如每日库存快照表、每日用户余额快照表。
3、累积快照事实表
用来表述过程开始和结束之间的关键步骤事件,覆盖过程的整个生命周期,通常具有多个日期字段来记录关键时间点,当过程随着生命周期不断变化时,记录也会随着过程的变化而被修改。以事务事实表中提到的订单例子为例,可以做一个和订单相关的,涉及订单下单、推单、抢单、支付等各个环节的一张订单全生命周期快照表。
此外,还有一种无事实的事实表,单纯只记录某一动作发生,其事件的量化是非数字的,比较典型的例子是访问点击日志。