一文搞懂 OLTP 和 OLAP(结合MySQL/Doris/Hive)
一、前言前面讲完了数据库三大架构SMP、NUMA、MPP现在配套补上两个核心业务模型OLTP、OLAP所有数据库不管是MySQL、Doris、Hive归根结底只分两大类干活交易的、分析报表的。OLTP做事的日常干活不能出错OLAP看数的复盘报表算总账二、OLTP 联机事务处理面向业务全称Online Transaction Processing联机事务处理面向线上真实业务天天做增删改查保证数据不能错生活例子电商下单用户下单、付款、退款、改地址每一笔操作都要立刻生效不能出错必须保证转账扣款两边同时成功/同时失败核心特征操作频繁 insert / update / delete少量查询数据每次只操作单行/少量行数据要求ACID强事务、数据一致性极高响应速度毫秒级返回结果存储格式行存储使用者普通用户、业务系统存储结构采用行式存储适合单行数据频繁增删改操作。对应数据库 底层架构代表MySQL、Oracle、SQLServer底层架构SMP / NUMA都是单机架构补充MySQL分库分表依然是OLTP不是MPP三、OLAP 联机分析处理面向数仓全称 Online Analytical Processing联机分析处理面向历史海量数据只查不改做统计、报表、大屏、辅助老板做决策生活例子老板月底看报表统计本月销售额、哪个商品卖得最好、每日流量走势不需要修改订单数据只需要大批量扫描历史数据允许几秒钟延迟不需要毫秒级响应核心特征操作几乎只查不改大批量导入数据数据一次SQL扫描整张表、千万/亿级海量数据要求不在乎事务追求查询速度响应速度秒级、部分离线任务分钟级存储格式列存储使用者大数据开发、数据分析师、运营、老板存储结构采用列式存储适合海量字段批量聚合查询。对应数据库 底层架构MPP实时OLAPApache Doris、ClickHouse、Greenplum多机并行、秒级查询离线OLAPHive依赖Spark/MapReduce离线跑批不属于MPP四、OLTP vs OLAP 完整对比表对比维度OLTP业务库OLAP数据仓库使用场景线上下单、支付、日常业务报表统计、多维分析、数据大屏核心操作增删改为主少量查询查询为主几乎不修改数据单次处理数据量少量行精准查询全表海量数据大范围扫描事务要求强ACID事务必须保证一致无事务要求存储结构行存储列存储响应延迟毫秒级秒级/分钟级代表组件MySQL、OracleDoris、ClickHouse、Hive底层架构SMP / NUMA 单机架构MPP分布式架构Hive除外五、完整数据流工作真实流程OLTP业务产生数据 → ETL同步 → OLAP分析数据 → 报表展示MySQLOLTP用户不停下单产生原始业务数据通过DataX / FlinkCDC / StreamLoad做数据同步导入 Doris / HiveOLAP数仓分析师写SQL统计指标对接QuickBI出大屏报表六、总结OLTP联机事务处理面向线上业务行存储强事务高频增删改代表MySQL底层是SMP/NUMA单机架构。OLAP联机分析处理面向海量历史数据分析列存储无事务大批量查询代表Doris底层是MPP分布式架构。Hive补充Hive属于离线OLAP但是没有MPP并行能力依靠计算引擎跑批不属于MPP数据库。单机库分两种SMP 全共享、NUMA 分区隔离都不能分布式扩容 MPP 是多机无共享集群数据分片并行算专门做海量数据 OLAP 分析 OLTP 做事、OLAP 看数MySQL 管业务、Doris 做分析、Hive 跑离线批。