一、OLTP和OLAP的区别
OLAP
OLTP
全称
On-line Analytical Processing
On-line Transaction Processing
应用场景
数据仓库
数据库
核心
维度、度量、下钻、上卷、切片、切块、旋转
ACID(原子性、一致性、孤立性、持续性)
关注点
事后的分析,从统计的角度去看待业务发生的节点
关注完成这件事情,准确无误的执行
二、传统数仓和互联网数仓的区别
传统数仓
互联网数仓
行业
金融、电信、保险、证券
电商、短视频、出行、团购、外卖
行业特点
业务简单、周期长、业务缓慢改变
业务复杂、敏捷开发、业务变化快、临时需求多
技术栈
mysql、oracle、sql server
Hadoop、spark、flink
建模方式
范式建模
维度建模+范式建模的混合建模方式
数据类型
结构化
结构化+非结构化
应用场景
经分、结算、风控
经分、数分、挖掘(广告、推荐)
准确性
高
较高
混合建模是什么?
dwd层采用范式建模,dwd层以上维度建模
好处是什么?
dwd层采用范式建模能快速响应业务的变换,维护成本低。上层采用维度建模考虑到下游的易用性
什么时候使用它?
业务发展初期,推荐使用维度建模,目的是快速出结果,因为互联网行业是一个不断探索和迭代的过程。业务稳定后,对于重业务的公司,比如美团、淘宝,dwd层推荐使用范式建模,dwd以上使用维度建模。目的是为了快速响应业务的变化,维护成本低。因为维度建模有个缺点就是,维度变化对数据的更新量大。
三、数据仓库和数据库的区别
数据仓库
数据库
数据范围
存储历史的数据
存储最新状态的数据
数据变化
可添加、可查询、无删除、无变更
支持增删改查
应用场景
分析、决策、服务于分析系统
业务交易、服务于业务系统
设计理论
反范式、有意引入冗余
严格遵循范式、避免冗余
处理量
非频繁、大批量、高吞吐、延迟高
频繁、小批次、高并发、低延迟
设计理念
面向主题设计、为分析数据而生
面向事务设计、为捕获数据而生
总结
OLTP和OLAP
OLTP 作为 OLAP的一种数据源,但不是唯一的数据源,当服务于线上业务使用时,比如报表、通过接口的方式提供服务等。OLAP计算的数据也会流向OLTP。OLTP=>OLAP=>OLTP 形成一个闭环,而不是单向的。
建模方式的选择
业务发展初期,维度建模,业务稳定,尤其重业务的公司,混合建模
数据库和数据仓库的区别
都是存储数据的。
数据库是基本的、日常的事务处理,例如银行交易。
数据仓库支持复杂的分析操作,侧重决策支持。不仅是一个存储引擎,也是一套数据组织和应用的方法论