在数字化转型浪潮下,数据实时分析已成为企业构建核心业务竞争力的重要驱动力。作为一体化数据库,OceanBase 基于交易能力逐步发展出分析能力,从 HTAP 混合负载到实时数仓,更好地满足企业在数据处理方面的诉求。
为帮助大家更好地理解 OceanBase 实时分析核心能力,我们推出系列解读文章,主题涵盖列存引擎与列存副本、向量化执行引擎、企业级查询优化器、分区方式与表兼容、数据导入导出、物化视图、多模数据类型、全文索引、存储过程支持等方面。本篇内容是系列文章第一篇,详解
OceanBase 分析能力演进。
OceanBase高级技术专家。曾参与OceanBase RS、存储模块研发,目前是 SQL 执行组负责人。
随着精细化运营、实时风控、交互式分析与 AI / RAG 等场景的快速兴起,传统 “OLTP + 多层同步 + 外部分析系统” 的链路正暴露出延迟高、复制链路复杂、数据一致性风险放大、运维与资源成本叠加等问题。
OceanBase 正在从最初的分布式交易型数据库,升级为面向交易、分析、AI 多种负载的一体化分布式数据库,围绕“极致性能、统一存储、开放易用”三大理念,构建列存与行存一体、向量化执行与物化视图协同、外表与多模检索融合的能力体系,支撑海量数据的实时分析与多样查询诉求。
背景:从 HTAP 构想到一体化实时分析能力
OceanBase 在诞生之初,便专注于高并发、强一致、金融级稳定性的分布式事务处理。随着服务的金融、政企、互联网等 2000+ 客户场景不断拓展,我们发现,越来越多的企业希望在 OLTP 数据库里提供分析能力,能够基于业务数据完成实时分析,比如,风控算法需要和最新交易状态联动、运营看板希望缩短刷新延迟等。
不同于传统的“ OLTP 库 → CDC → ETL → 数仓/数据湖 → 下游集市或索引/搜索系统”路径,OceanBase 并未将 OLAP 能力简单视作外部“增强组件”,而是系统性地在统一事务、统一存储、统一执行框架中推进分析能力演进。
循着这条演进路径,我们通过构建企业级的查询优化器、MPP 并行执行框架、向量化执行引擎和基于 LSM Tree 存储的 PAX 格式谓词下压能力,打造了原生的 HTAP 引擎。
2021 年,OceanBase 在 TPC-H 30T 测试中荣登榜首,这标志着其分析性能达到世界领先水平。随后,从 2022 年发布 V4.0 一体化版本,到 2024 年推出 V4.3 版本,再到 2025 年的 V4.4 版本,OceanBase 快速迭代出了列存、向量化执行引擎 2.0、旁路导入、物化视图、堆表、复杂数据类型(Bitmap/Array/Map)、外表等多项关键能力,将轻量级 AP 能力发展为面向海量数据的实时分析能力,并具备性能优势。
这一系列能力的演进并非技术的孤立叠加,而是在“极致性能、统一存储、开放易用”理念的驱动下,持续支撑业务需求的系统性构建。
OceanBase 实时分析能力全景图
SQL:
智能优化, 极致性能
先从用户最先接触的 SQL 层谈起。我们采用基于代价的查询优化器(CBO),具备完备的统计信息收集机制,能够处理任意复杂度的 SQL 查询。我们覆盖了数据库领域常见的 SQL 改写规则,并从实际业务中提炼出大量 OceanBase 独有的改写规则。
值得一提的是,我们的改写也是基于代价的,对于非普适的改写规则,我们通过代价判断是否进行改写。我们还具备自适应计划缓存能力,以及计划管理功能(SPM),防止计划在升级、数据倾斜等场景的回退。
针对 HTAP 场景,我们还推出了自动并行能力(AutoDOP),自动判断选择是否启用并行,并决定并行度。在不影响交易查询响应时间(RT)的前提下,使分析查询能够充分利用更多资源加速执行。
OceanBase 优化器能力概览
如果说 SQL 优化是查询性能的“大脑”,那么执行引擎就是其“肌肉”。自 20年前向量执行被提出以来,大量数据库系统采用向量执行,结合这些年 CPU SIMD 能力的提升,显著增强了数据分析的能力。
十余年前,随着 Hyper 系统相关论文的带动,编译执行(JIT)技术开始流行,部分数据库探索这条路径。经过这些年的探索验证,OLAP 领域工业界普遍采用向量执行为主、局部 JIT 为辅的路线。
OceanBase 执行引擎也采用此路径,在 V3.2 版本中,我们将内存数据以列式形式组织,实现基础向量执行能力。在 V4.3 版本中进一步细化内存数据格式,使其更适合 SIMD 操作,并以向量化方式重写算子,减少 CPU 分支预测失败并提升 Cache 友好性,使得执行性能达到一流水平。
我们的 PL 则采用编译执行方式,提供极致的程序执行性能。同时,为缓解编译开销,我们支持编译结果在内存和磁盘的多层缓存。结合高度的 Oracle 兼容性,不仅便于将原有 Oracle 中基于 PL 的数据加工场景迁移至 OceanBase,还能显著提升执行性能。
OceanBase 性能对比:向量化执行 VS 非向量化执行
存储: 行存列存一体化
OceanBase 的行存使用了 PAX 格式,可简单理解为在一个小 IO (4K-64K) 数据块内(我们称为微块)的列式存储,支持数据编码和谓词下压。相比传统数据库行存,具有更高的压缩率和扫描过滤性能。
然而,面对大宽表扫描或海量分析场景,PAX 的 I/O 效率仍显不足。为此,我们开始构建真正的列存能力,以满足海量数据实时分析的需求。
列存设计中,数据通常不进行 in-place 更新,而是通过客户端或数据库端攒批后,以追加或合并方式组织为列存格式。OceanBase 的存储为多层级的 LSM-Tree,本身也不进行 in-place 更新,天然适合列存设计。
我们的列存选择在 LSM-Tree 最底层(基线数据)的合并过程中将其组织为列存格式,而上层增量数据(MemTable 及 Minor SSTable)、日志、事务等模块保持不变。这样,列存仍具备完整的 DML 能力(单行更新、大事务)和数据同步(下游 CDC、Binlog)等能力,并与现有生态工具无缝兼容。
同时,针对 OLAP 场景中大数据量导入的需求,做了旁路导入功能,支持并行 DML(PDML)、LOAD DATA、OBLoader、Table API 等接口,直接将用户数据写入基线层的列存格式,跳过 MemTable 写入与转储流程,显著提升导入速度,通常相较并行 DML 有数量级的性能提升。
在列存上,我们实现了 PFOR、Delta、Dict、RLE 等多种编码方式及其组合,并结合 zstd、lz4 等通用压缩算法,显著提升数据压缩率。利用编码信息直接进行谓词过滤,再结合 CPU 的 SIMD 能力,可大幅加速分析查询。
同时,我们在微块(Micro Block)、宏块(Macro Block)、文件(SSTable)等多个层级维护 min、max、sum、count 等摘要信息(称为 Skip Index),结合谓词下压与聚合下推能力,可极大提升数据过滤与聚合计算效率。
OceanBase 行存列存一体化实现
我们支持行存与列存的多种组合方式。一张表可建为纯行存或纯列存,也可同时包含行存与列存,优化器基于代价选择访问路径。需注意的是,混存时基线数据存在两份(行存 + 列存),但增量数据共用,因此不会因行列混存而降低 DML 性能。
行存与列存不仅可按表指定,也可按索引指定,例如:基表使用行存,索引使用列存,仅对部分常用扫描过滤列建列存以实现加速。考虑到部分业务希望 TP和 AP 实现类似传统“一主多备”的隔离能力,我们还支持列存副本,可通过副本级别指定存储格式: TP访问行存副本,AP访问列存副本,两者完全隔离,互不影响。
OceanBase 行列混存架构 & 列存副本架构
高阶分析功能:面向业务场景的深度支持
在夯实执行与存储基础之后,OceanBase 还持续增强面向典型 AP 场景的高级功能,以满足企业多样化的分析需求。
在夯实执行基础之后,OceanBase 还持续增强面向典型 OLAP 场景的高级功能,以满足这些场景对分析性能的极致要求。这里面最具代表性的就是物化视图。
OceanBase 项目最初源于淘宝收藏夹的物化视图需求——对 2000 亿用户的收藏列表与 60 亿商品进行高效 Join (当前数据)。在早期版本中,我们针对 Join 做了定制化实现,LSM-Tree 在合并阶段完成基线数据的 Join。
在 V4.2 版本中,我们正式推出通用物化视图功能。经过多个版本迭代,目前已支持全量刷新、增量刷新和实时物化视图,支持查询改写、嵌套物化视图以及 Outer Join 的增量刷新等高阶能力。不仅可用于查询加速,还可通过物化视图及嵌套物化视图简化数仓架构中从 DWS 到 DWS、DWS 到 ADS 的处理逻辑。
OceanBase 嵌套物化视图简化数仓分层
OceanBase 自 V3.x 版本起支持 Oracle DBLink 功能,可实现对 OceanBase、Oracle 和 MySQL 集群数据的跨库访问与修改。
在 OLAP 场景中,外部数据的加载与访问需求日益增多。为此,我们进一步完善了外表能力,支持 CSV、Parquet、ORC 等常见数据格式,兼容 S3、OSS、HDFS、ODPS 等多种存储系统,接入 Hive Metastore(HMS)和 ODPS Catalog,支持 Hive 和 Iceberg 表格式。通过分层数据缓存、谓词下推等优化机制,有效提升外部数据查询效率。
我们支持全文索引,提供多种分词实现(支持通过插件定制),结合向量索引、空间索引、标量数据索引,提供业内领先的数据检索能力,助力 RAG 实现现高质量召回。
在原有 MySQL、Oracle 数据类型基础上,我们还支持了 OLAP 查询常用的 Bitmap、Array、Map 数据类型。为方便用户使用,我们还也在完备的 MySQL、Oracle 分区支持上,提供了动态分区管理能力,方便以时间维度进行分区管理。同时推出了堆表,存储中数据以插入序聚集,方便用户从原来堆表的 OLAP 系统迁移数据。
典型场景速览
过去几年,OceanBase 实时分析能力随着产品在多个业务系统中的落地而快速迭代,我们和客户一起摸索出了以下 OceanBase 的典型适用场景。
从最初的 HTAP 构想出发,秉持“极致性能、统一存储、开放易用”的理念,并依托一体化架构的持续演进,如今 OceanBase 的 OLAP 能力已发展为行业领先的实时分析引擎。
未来,我们将继续深化自动调优、一体化存储、存算分离、AI 增强等方向,致力于将 OceanBase 打造为 AI 时代的一体化数据底座。
是不是有关于技术上的疑问?想和 OceanBase 技术专家面对面交流吗?9 月 24 日 18:30,锁定我们的直播间!专家现场唠技术、答难题,我们在直播间等你!
同时,我们还推出限时福利,点击“阅读原文”,将可免费下载完整版《OceanBase 实时分析能力白皮书》,开启进阶之旅!
往期推荐
▼ 点击「阅读原文」,下载白皮书