云计算百科
云计算领域专业知识百科平台

OLAP是什么?联机分析处理原理与OLTP区别详解

大家好,我是数据库小学妹👋我踩过的坑,你别再踩。

上个月帮一家连锁零售客户看报表。系统专为 OLAP 搭的,跟交易库分开,理论上不该慢。可运营拉一次"大区×品类×月份"的销售分析,看板要等好几分钟。业务咬定是 SQL 写得烂。我把 SQL 和执行计划翻了一遍,没毛病。问题在另一头:这库从建起就没搞清自己在跑什么负载。这也是很多人对 OLAP 的误解。这篇就把它讲透,顺带说清 OLAP 和 OLTP 的差别。

一、先给定义:OLAP到底是什么

OLAP(Online Analytical Processing,联机分析处理),是一种让用户从多个维度、快速查询和分析大量历史数据的技术,典型场景就是报表、看板和商业智能(BI)。

三个词拆开更好记。Online,说的是查询即时响应,不用等隔夜批处理。Analytical,说的是它回答"哪些、多少、趋势如何",不是"这一单怎么处理"。Processing,说的是它对已有数据做加工和汇总。

拿开头那家零售客户举例。运营想看"华东区、女装品类、三季度"的销售额,这就是一次典型的 OLAP 查询。它不关心某一笔订单,只关心一批数据汇总后的结果。跟 OLAP 对应的是 OLTP,这两个词的差别,基本决定了数据库该怎么选。

二、OLAP和OLTP,天生是两种脾气的活

OLAP 和 OLTP 放一起对比,差别一眼就能看出来。我把最关键的几项列成了下面这张表。

维度OLTP 事务处理OLAP 分析处理
典型操作 下单、扣库存、改余额 聚合、同比环比、多维透视
数据访问 按主键点查、改少量行 大范围扫描、读整列
数据量级 当前热数据为主 历史全量数据
存储偏好 行存,取一条记录快 列存,批量读某几列快
一致性要求 强一致,毫秒级 容忍一定延迟
并发特征 高并发、小事务 低并发、大查询

这张表建议你存下来,选型、优化、面试都用得上。一句话看下来,两类负载从操作到底层,几乎处处对着来。

也正因如此,传统做法把它们拆成了两套系统:交易库管生产,分析库管报表,中间用 ETL 定期搬数据。这套架构成熟可靠,很多公司现在还是这个样子。

但痛点也很清楚。一是慢,ETL 往往一天跑一次,报表看到的永远是昨天的数;二是贵,两套硬件、两套监控、两拨人,成本翻着倍走;三是口径容易对不上,业务和数仓各算各的,月度经营会上常为"到底谁的数据对"吵起来。

搞清楚这两类负载的区别,再回头看 OLAP 怎么工作,就顺了。这三笔账怎么还,也是后来行业琢磨新架构的起点。

三、OLAP是怎么把一个数"翻来覆去"看的

OLAP 的核心,是把数据组织成"多维"的样子。你可以把它想成一个魔方:每个小格子是一个数值,比如销售额;每条边是一个维度,比如时间、地区、品类。要哪个角度的数,就转哪个面。
在这里插入图片描述

这里面有三个基础概念。维度(Dimension),是观察数据的角度,比如时间、地区、产品、渠道。度量(Measure),是要统计的数值,比如销售额、订单量、利润。立方体(Cube),是维度和度量组合出来的多维数据集,也就是那个魔方。

在这套模型上,OLAP 提供了几种很实用的操作。钻取,是在汇总和明细之间切换,从"华东区销售额"下钻到"上海各门店",或者反过来向上汇总。切片和切块,是固定一两个维度看剩下的数据,比如只看"今年",或者只看"女装+线上"。旋转,是换一个角度看同一批数据,行和列对调,报表的样子就变了。

这些操作听着抽象,但你在 Excel 数据透视表里点过它们。OLAP 只是把这件事,做到了千万级、亿级数据上。一句话概括,OLAP 擅长的是看趋势、找规律,不是记流水。

四、OLAP的三种实现,一张表看清

同样是做 OLAP 多维分析,底层实现分三条路。这也是面试和选型里最常被问的地方。

类型全称核心思路优点短板
MOLAP 多维 OLAP 预先把结果算好,存进多维数组 查询很快 预计算占空间,换维度要重算
ROLAP 关系型 OLAP 直接基于关系表,靠 SQL 实时算 数据实时、灵活 大查询慢,依赖优化
HOLAP 混合 OLAP 汇总数据走多维,明细走关系 兼顾速度与灵活 架构更复杂

简单记:MOLAP 靠"提前算",ROLAP 靠"现场算",HOLAP 两边都要。这三种实现选哪种,取决于你的数据变不变、查询要多少实时性。数仓固定报表多,MOLAP 那套预聚合思路很合适;要即席查询、随时换维度,ROLAP 更灵活。

说到这,有个变化必须提。这几年 OLAP 最大的趋势,不是又出了哪种新引擎,而是它和 OLTP 的那条边界,正在被抹平。

五、OLAP这两年最大的变化:边界正在被抹平

前面说了,传统架构是 OLTP 一套、OLAP 一套,中间靠 ETL 搬。这个"搬"字,就是所有痛点的根。搬一次有延迟,报表就旧。搬一次要资源,链路就长。两套库并存,运维成本就下不来。业务等不起的实时看板,这套结构天然给不了。

于是行业开始想另一件事:能不能一套系统,既扛得住交易,又做得动分析?

这条路业内叫 HTAP,也就是混合事务与分析处理。早期做法是往内存里硬塞,快是快,但成本劝退。近几年思路更务实:把事务和分析放进一套架构,按负载自动选路。

国内的融合数据库,走的就是这条线。代表是国产数据库厂商金仓,它提的思路是"集中分布一体化",集中式部署为主、分布式部署为辅,一套架构收下交易、分析和时序场景。它公开的多模融合架构,把关系、时序、GIS、文档、向量这些模型放进了同一个引擎,跨模型能直接做联合查询。举个例子,一张销售报表可以同时关联订单表(关系模型)和门店位置(GIS模型),不用在两个系统之间来回搬数据。

这对 OLAP 意味着什么?意味着分析数据不用再等 ETL 搬到另一个库。交易这边数据刚写进去,分析那边就能读到,也不必等隔夜批处理。前面那个"搬"字带来的延迟和成本,被削掉了一大块。当然,这不代表专业数仓没用了,后面我会讲什么时候别硬上。

六、案例复盘:一个经营分析系统,我是怎么给方案的

回到开头那家零售客户。报表慢,我先确认它到底在跑什么负载。类型对上了:大范围扫描加多维聚合,是标准的 OLAP 负载,SQL 本身没毛病。

问题出在新鲜度。运营要的是当天的销售趋势,ETL 一天一跑,天然给不了,这是架构问题,优化 SQL 解决不了。账也算清楚了,报表慢的根源是每次都在全量明细上现场聚合,要么做预聚合,要么上更强的 OLAP 引擎。

我给的方向是分层处理。高频、固定的几张核心报表,做预聚合,把结果提前算好。少数要即席查、随时换维度的,保留实时计算。

客户本来就在做国产化替换,交易库要换,分析这块也想一起收。说实话,当时我对"一套库通吃"是打过问号的,怕它两头都顾不好。评估之后,我们把交易主库放在了金仓(KingbaseES)上,保证 OLTP 的稳。分析侧要求实时的核心表,利用它融合架构里的分析能力,不用再单独维护一套同步链路。

这里我踩过一个认知坑。一开始我死活觉得"分析必须单独一套库",后来才想明白:报表慢的根,很多时候不是引擎不行,是数据搬来搬去。 能把交易和分析放在一套底座里按业务负载自动分流,同步链路就能少一大截。

KES 在金融、能源有公开的落地案例。像浦银金租的经营分析场景、多地自然资源"一张图"这类场景,走的都是这个思路。经营分析本身就是典型的 OLAP 场景,这类案例比厂商演示更有参考价值。

七、决策框架:几个问题定去留

经常有人问"我的 OLAP 报表该怎么优化",我一般先让对方回答几个问题,而不是直接给方案。

  • 报表等得起 T+1 吗?等得起,ETL 加预聚合就够,别折腾。
  • 分析要的是不是实时数据?要,才需要考虑融合架构。
  • 分析查询多重?轻中度,融合架构扛得住;PB 级大宽表,交给专业数仓。
  • 团队养得起几套系统?人手不够,收敛成一套更省心。
  • 有没有国产化要求?有,就得看国产融合数据库的成熟度。
  • 这五个问题答完,基本就知道该往哪走了。

    八、OLAP落地的避坑清单

    这方面我也踩过不少,有几条最想叮嘱你。把"能跑聚合 SQL"当成 OLAP,是我见过最常见的误会。跑一条 group by,什么库都快。真正的 OLAP 负载是多个维度、大范围、反复扫描,海量数据下才见真章。

    第二个坑是迷信预聚合。预聚合确实快,但维度一多,组合数量会爆炸。我见过一个项目把能想到的维度组合全预计算了一遍,存储翻了好几倍,最后砍掉一半才落回来。先想清楚业务真正会查哪些维度,再决定算什么。

    再就是忽略数据新鲜度这个需求。很多团队上 OLAP 系统,只盯着"快不快",没问"要多新"。结果系统跑得飞快,数据却是昨天的,业务照样不满意。先定新鲜度,再定架构,顺序别反。

    九、关于OLAP,最常被问的三个问题

    OLAP 会取代数据仓库吗?

    不会,两者不是一回事。数据仓库是存和管数据的底座,OLAP 是分析数据的方式。数仓里可以跑 OLAP,OLAP 也不一定非要建在数仓上。轻中度实时分析,融合架构能直接扛;PB 级建模和长周期回溯,专业数仓仍然更合适。

    国产数据库能做 OLAP 吗?

    能做,而且路径不太一样。国产厂商没有一味去拼专用 OLAP 引擎,更多是把分析能力融进统一架构。KingbaseES 的融合数据库把事务、分析和时序场景收在一套体系里,能源、金融核心系统里有公开落地。选型时把"有没有同行业案例""过没过安全可靠测评"放进清单,比听销售讲更靠谱。

    什么情况千万别上融合架构?

    交易要求强一致、分析又完全等得起、团队没人懂分布式,如果这几条都占了,融合架构不是省心,是添乱。老老实实两套库加ETL,稳。

    写在最后

    OLAP 这个词听着专业,其实就一句话:从多个维度,快速看懂一大批数据。 它不是某个特定产品,而是一类负载、一套方法论。这些年它的变化,不在概念本身,在承载它的架构,过去 OLTP 和 OLAP 井水不犯河水,现在这条线越来越模糊。谁能让一套底座同时扛住交易、分析和更多数据模型,谁就更贴近企业真实的需求。

    如果你也在做报表系统选型,或者正好在国产化替换,金仓这类融合数据库值得放进候选。它的思路是集中分布一体化、一套架构收下交易与分析,多模融合也收在同一个引擎,跨模型能直接联合查询。少养一套系统,少搭一条同步链路,两个目标同时顾上。还是那句话,别听我一面之词,拿你们自己的核心报表和真实数据量跑一轮,跑过了再拍板。

    你们项目里的报表系统慢过吗?最后是怎么解决的?评论区聊聊,咱们互相避坑。

    我是数据库小学妹,帮你少走弯路少踩坑,咱们下篇见👋

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » OLAP是什么?联机分析处理原理与OLTP区别详解
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!