一、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以上使用维度建模。目的是为了快速响应业务的变化,维护成本低。因为维度建模有个缺点就是,维度变化对数据的更新量大。
三、数据仓库和数据库的区别
数据仓库 |
数据库 | |
数据范围 |
存储历史的数据 |
存储最新状态的数据 |
数据变化 |
可添加、可查询、无删除、无变更 |
支持增删改查 |
应用场景 |
分析、决策、服务于分析系统 |
业务交易、服务于业务系统 |
设计理论 |
反范式、有意引入冗余 |
严格遵循范式、避免冗余 |
处理量 |
非频繁、大批量、高吞吐、延迟高 |
频繁、小批次、高并发、低延迟 |
设计理念 |
面向主题设计、为分析数据而生 |
面向事务设计、为捕获数据而生 |