1. OLAP 概念与实时场景
大家好,我是这次课程的主讲。做了十几年大数据架构,从 Hadoop 刚兴起那会儿就开始折腾数仓,后来慢慢转到实时 OLAP 这个方向。今天咱们先聊聊最基础的东西——OLAP 到底是什么,实时场景下它长什么样,以及它跟 OLTP 到底有啥区别。
说实话,很多刚入行的同学容易把这两个概念搞混。我记得有一次面试,候选人跟我说他做过 OLAP,结果一问细节,做的全是订单事务处理。嗯,这俩虽然都是数据库相关,但完全是两码事。
什么是 OLAP
OLAP,全称是 On-Line Analytical Processing,中文叫联机分析处理。说白了,它就是一套专门用来做数据分析的技术体系。你想想看,日常业务中我们经常要回答这些问题:
- 上个月哪个品类的销售额增长最快?
- 过去一小时,App 的 UV 是多少?
- 最近 7 天,风控规则命中率最高的地区是哪里?
这些问题都有一个共同点——它们需要对大量历史数据进行多维度的聚合查询。这就是 OLAP 的用武之地。
核心特征:OLAP 面向分析型场景,数据量大、查询复杂、支持多维钻取和切片,但对单条数据的写入延迟不敏感。
我在项目中遇到过不少团队,把 OLAP 当成万能存储来用。结果呢?写入压力一大,查询就卡死。所以一开始就要搞清楚:OLAP 是为分析设计的,不是为事务设计的。
实时 OLAP 的典型场景
传统 OLAP 一般是 T+1 的离线分析,跑个 Hive 任务,第二天看报表。但现在的业务要求越来越快,于是就有了实时 OLAP。我把它分成三个最常见的场景:
1. 实时大屏
这个大家应该不陌生。双十一的销售大屏、物流调度大屏、工厂产线监控大屏……数据每隔几秒刷新一次,领导站在大屏前看实时动态。
这种场景的特点是:高吞吐、低延迟、可视化。数据从产生到展示,端到端延迟通常要求在 5 秒以内。我曾经帮一家电商公司搭过双十一大屏,峰值时每秒要处理几十万条事件,ClickHouse 扛住了,但中间 Kafka 和 Flink 的调优花了不少功夫。
2. 实时报表
跟大屏不同,实时报表更多是给运营、产品、分析师看的。他们需要按小时甚至分钟级查看业务指标,比如:
- 今日新增用户数,按渠道维度下钻
- 实时 GMV,按城市、品类、支付方式交叉分析
- 广告投放的实时 ROI
实时报表对查询灵活性要求更高。用户可能随时改变维度组合,系统得能快速响应。我个人的经验是,这种场景用 Apache Druid 或者 StarRocks 会比较顺手,预聚合和实时摄入能力都很成熟。
3. 实时风控
这个场景最刺激。支付欺诈、账号盗用、恶意刷单……每一笔交易都要在毫秒级判断风险。风控系统需要实时计算用户画像、行为序列、规则匹配和模型打分。
注意:实时风控对 OLAP 的要求非常苛刻——既要低延迟(毫秒级),又要高并发(每秒数千甚至上万次查询),还要保证数据一致性。选型时一定要做充分的压测,别光看官网的 Benchmark。
我记得有一次帮某金融客户做风控 OLAP 选型,他们原来的方案用 Elasticsearch,结果高峰期查询 P99 延迟飙到 2 秒多,风控规则根本跑不完。后来换成 ClickHouse 加本地缓存,延迟降到了 200 毫秒以内。嗯,选对工具真的很重要。
OLAP 与 OLTP 的区别
这个问题我几乎每次培训都会被问到。咱们直接上表格对比,一目了然:
| 对比维度 | OLTP | OLAP |
|---|---|---|
| 典型系统 | MySQL、PostgreSQL、Oracle | ClickHouse、Druid、StarRocks、Doris |
| 数据模型 | 实体关系模型,3NF 范式 | 星型/雪花型模型,宽表,列存 |
| 读写特点 | 频繁小批量写入,随机读 | 批量写入,大范围扫描读 |
| 查询类型 | 点查、简单条件过滤 | 聚合、分组、排序、窗口函数 |
| 延迟要求 | 毫秒级(事务响应) | 秒级到分钟级(分析响应) |
| 并发能力 | 高并发(数千 QPS) | 中低并发(数十到数百 QPS) |
| 存储结构 | 行式存储 | 列式存储(主流) |
| 典型场景 | 订单录入、用户注册、库存扣减 | BI 报表、大屏、多维分析 |
你可能会问:能不能用 MySQL 做 OLAP?我见过有人这么干,把几亿条数据塞进 MySQL,然后跑 group by。结果呢?一个查询跑几分钟,还把业务库拖垮了。说白了,OLTP 和 OLAP 是两种不同的设计哲学,硬要用一把钥匙开两把锁,迟早要出问题。
我的建议:做架构设计时,尽量把 OLTP 和 OLAP 的链路分开。OLTP 负责在线事务,OLAP 负责分析查询,中间通过 ETL 或实时同步工具衔接。这样两边都能发挥各自优势,互不干扰。
本章知识体系
下面这张图帮你梳理了本章的核心脉络,从 OLAP 定义到实时场景再到与 OLTP 的对比,一目了然:
这张图把本章的核心内容串起来了。从 OLAP 的定义出发,延伸到三个实时场景,最后落到与 OLTP 的对比。后面的章节我们会逐一深入每个场景的选型细节和迁移实战。