AI 术语表 · 基础 · 数据工程
OLAP
OLAP(联机分析处理)是一种数据处理方式,把积累的数据按时间、地区、商品等多个维度分组汇总,进行快速分析。它不是用来记录每一笔交易,而是专门回答“上季度各地区销售额是多少?”这类汇总问题。
通俗解释 如果说商店收银台是一张张打印小票,OLAP 就是月底把一摞小票摊开,按“哪天、哪种商品卖得好”整理成表格。不同的是,真正的 OLAP 能在人可以接受的等待时间内整理好几十亿行数据。
工作原理
OLAP 把数据分为“度量”和“维度”来看。度量是销售额、订单数等需要求和或求平均的数字;维度是日期、地区、商品等分组依据。用户可以从年份下钻到月份(下钻),或只切出某个地区查看,从多个角度观察同一份数据。为了快速处理这类问题,OLAP 系统会预先汇总,或采用列式存储等有利于分析的存储方式。
为什么重要
公司的仪表盘、月度报告、销售分析,大多都是 OLAP 类的问题。如果把这类繁重的汇总直接丢给处理交易的业务数据库(OLTP),服务可能会变慢,因此需要另设分析系统。数据仓库和数据湖仓正是承担这类分析工作的地方。最近,由 LLM 代替人编写 SQL、向 OLAP 系统提问的 Text-to-SQL 案例也在增多。
OLTP 与 OLAP
OLTP交易处理
- 逐笔记录订单、支付
- 频繁写入和修改
- 服务业务数据库
OLAP分析处理
- 对大量行分组汇总
- 以读取为主
- 用于仪表盘、报告
공통 两者都是数据库技术,但问题的形态不同
注意事项
OLAP 擅长“读取与汇总”,但不适合频繁逐条修改的工作。因此,业务数据需要通过 ETL、ELT 或 CDC 等方法搬到分析系统中,这一过程可能产生几分钟到几小时的延迟。过去常见的做法是预先建立名为“立方体”的汇总结构,如今则更常见由列式数据库直接对接近原始的数据进行汇总。同样是“销售额”,各团队的算法可能不同,因此有时会用语义层统一定义。
示例
电商运营团队在 BI 仪表盘上查看“最近 3 个月各品类、各地区订单数”时,仪表盘背后由数据仓库等 OLAP 系统把大量订单记录分组汇总后返回结果。相反,顾客点击支付按钮时保存一笔订单的工作,则由 OLTP 数据库负责。