PolarDB-PG IMCI实战解析:深度融合DuckDB,复杂查询性能最高百倍级提升

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS SQL Server,基础系列 2核4GB
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
简介: 阿里云PolarDB PostgreSQL版创新融合DuckDB向量化引擎,推出IMCI列存索引,实现HTAP一体化。支持实时交易与复杂分析并行,查询性能提升60-100倍,兼容PG生态,秒级数据同步,助力企业高效挖掘数据价值。

在当今数字化浪潮中,数据的实时处理能力成为企业竞争的关键。随着软硬件结合技术的快速发展,数据库云原生能力的逐步成熟,以及DuckDB等现代嵌入式分析型数据库的迅速崛起,数据库HTAP理念和实践走向一个全新转折点,即:TP 和 AP 不再是割裂的应用场景,而是互相渗透,已经不再是技术选型上的取舍,而变成日常的调优手段。

本文介绍阿里云瑶池旗下的云原生数据库PolarDB PostgreSQL版(以下简称PolarDB-PG)HTAP建设思路,涉及PolarDB IMCI列存索引(In-Memory Column Index,简称IMCI)的适用场景、技术原理、功能形态、核心优势以及深度融合DuckDB的技术路线,并结合地平线自驾标签数据分析挖掘场景,分析IMCI在真实生产业务中的价值体现。


PolarDB-PG的HTAP实践思路


从本质上来说,HTAP在实现上一般是将行存与列存融合,从而分别应对 TP 和 AP 的需求。但大部分数据库实践 HTAP 理念时,由于自身产品的定位、研发目标的约束,导致这两类功能比较割裂,客户在使用时往往还是 TP 系统和 AP 系统分开建设。


随着云原生数据库对软硬件的深度优化,PolarDB 单一数据库实例的能力和扩展性大大提高,其存储早已突破数百TB,计算节点可达上千核。除了传统的在线业务外,越来越多的客户使用 PolarDB-PG 来承载大规模数据业务,在一个库内即可覆盖在线业务、历史数据存储、数据价值挖掘的全链路场景。


同时,近几年随着 DuckDB 等轻量化分析型数据库的崛起,其完备的向量化执行引擎可以在相同的计算资源下将性能提升 1~2 个数量级,也越来越多地为开发者所采用。


基于上述情况,PolarDB-PG 选择列存索引(IMCI)形式来实践 HTAP ,同时选用了 DuckDB 的向量化执行引擎并基于 PolarDB 云原生架构改进了列存结构,实现了PolarDB云原生化TP核心优势和DuckDB在卓越分析查询性能上的双剑合璧。


列存索引形式使得客户可以在现有的实例中原地开启该功能,只需要为表中的列创建列存索引(如下图所示),即可实现对复杂查询的加速。索引形式还可以进一步延伸适配向量、时空、图等多模数据类型,加速与AI的融合计算。TP 和 AP 不再是割裂的应用场景,两者互相渗透,对于 PolarDB-PG 而言,分析型 SQL 只需要日常的索引调优手段即可加速,大幅简化应用架构。

640 (19).png


PolarDB-PG IMCI的使用场景与优势


PolarDB-PG IMCI当前支持两种开启方式,一种是添加独立的列存只读节点,一种是在现有的节点中直接使用预安装的IMCI插件。列存只读节点能够充分利用所在节点内存资源,同时使TP(事务)与AP(分析)业务在不同节点上相互隔离,互不影响。


640 (20).png


PolarDB-PG IMCI主要适用以下场景:

  • HTAP混合负载:实时交易与复杂分析并行,无需额外系统支撑,如:实时交易统计+报表生成。
  • 复杂查询加速:慢SQL治理场景,全表统计、多列分组/排序,结合多表JOIN、多条件过滤等。
  • ETL加速计算:基于IMCI强大而灵活的计算能力,直接在PolarDB中完成数据清洗、转换与聚合。
  • 数据仓库场景:基于列存表实现AP分析、大宽表无固定索引查询/分析加速、以及多模数据的查询加速。


使用PolarDB-PG IMCI所带来的核心优势包括:

  • 查询性能跃升:相比于行存引擎,基于列存引擎的复杂分析查询性能可以提升60-100X以上。
  • 低成本存储:仅需为查询涉及列创建索引,列存索引空间占用仅为行存的10%-50%;无论行存、列存,扩展RO节点仅共享存储一份数据。
  • PG生态兼容:支持原生PostgreSQL语法(CREATE/DROP INDEX),无需修改查询SQL,仅需要创建索引后,即可加速。
  • 行列实时转换:行存数据毫秒/秒级生成列存索引,自动维护一致性,无需手动刷新。
  • 智能查询路由:Cost + SQL耗时采样技术,实现动态的行列路由,选择最佳引擎执行。


与云原生架构的深度融合


从技术原理层面,PolarDB-PG IMCI通过改进存储引擎、执行引擎、优化器三个层面更好地适应复杂查询的需求。其中,存储引擎,采用更适合向量化算子的列存格式,而非PG默认的Heap行存结构;执行引擎,这一部分主要利用 DuckDB 的向量化算子来提供高效的计算;SQL优化器,根据代价自动选择行存或者列存执行查询请求。


PostgreSQL社区上有很多基于 DuckDB 的外挂分析库的实践,如 pg_duckdb、pd_mooncake 等等,但这类系统有一个共同的弊端,即:虽然是基于 PostgreSQL 插件机制实现,但与 PostgreSQL 本身割裂,在易用性、实时性、兼容性、产品化等问题上都很难满足实际需求。


PolarDB-PG IMCI在PG生态和云原生数据库架构上践行一体化HTAP理念,这就要求:a. 要完全兼容 PG 的使用习惯,语法和功能都要一致,同时不应对架构和业务有过多的侵入,最好是一行代码都不用改;b. DuckDB 做为「原子化」能力与PG和云原生架构融合,要能满足业务的实时性需求。基于上述理念,我们对 PG 和 DuckDB 两个引擎都做了深度的改进融合。


与云原生架构结合


DuckDB本身是嵌入式单机形态,天然并不支持共享存储、存算分离的多机处理模式,PolarDB IMCI通过引入多节点通信会话和协作事务处理机制,实现了与云原生架构的深度融合,无论行存数据还是列存数据,都支持弹性横向扩展,并借助PolarFS分布式文件系统以及OSS分层存储,多个计算节点始终共享一份数据,而不是每加一个计算节点都要借助数据同步额外存储一份数据,可大幅降低存储成本。


多样化列存形态


IMCI将DuckDB真正做为原子化能力嵌入,使用方式上达到更符合PG用户的使用习惯,支持两类列存使用方式,一种是TP和AP结合的行存表+列存索引组合方式,一种是直接创建列存表。基于 PG Index AM 接口实现了列存索引的形式,突破了 PG 最大只能 32 个列的限制,最多可以为 1600 列创建列存索引。


基础能力适配


优化了基于逻辑复制的行列转换,基本能满足秒级的实时性需求;深度适配了各类语法、数据类型的精度等;IMCI还为DuckDB实现了分区表以及分区裁剪能力,可在分区表上直接建立列存索引;正在建设的 hybrid scan,在 Join 查询中,即使部分小表没有创建列存索引,也能够和列存索引一起参与计算。


改进DuckDB


锁粒度优化:DuckDB 的读写锁颗粒度较大,会造成较长的事务阻塞;PolarDB-PG IMCI为其改进了锁的粒度,比如Checkpoint 期间对数据和 ART 索引的读写锁进行拆分,降低刷脏过程中的全局阻塞问题。


索引改进:DuckDB的ART索引会用于行列同步时高效率的定位待更新的数据,但也存在数据刷脏效率较低问题。PolarDB-PG IMCI一方面在行列转换阶段通过设计新的索引来替代ART,另一方面也在通过改进落盘机制来解决ART本身的问题。


垃圾回收:大量的事务更新后,列存文件空间膨胀严重,PolarDB-PG IMCI为其提供了真正的Vacuum能力(虽然DuckDB也有Vacuum语法,但并未对存储空间进行回收)。 image.svg


在地平线自驾核心业务中的应用


地平线是行业领先的智驾科技公司,依托软硬结合的前瞻技术积淀,打造面向全场景的智能辅助驾驶解决方案。客户的自驾业务部门需要对大规模图像感知数据的元数据和标签数据进行面向TP和AP的一体化查询和聚合分析计算,支持感知、规控等业务部门对标签数据的提取和分析挖掘需求。


客户核心场景诉求


标签数据体量大,要求极高的数据聚合分析查询性能

标签数据表不仅包含标签信息,也包含图片等其他元数据信息,最大单表约50亿行的规模,日增量峰值约300G,年数据规模为几十TB。要求快速实现根据标签数据做聚合统计分析和挖掘,分析聚合大查询性能希望秒级返回。


一库实现多样化

与此同时,客户还有文本+向量混合搜索、AI、时空等方面需求。希望能借助PostgreSQL丰富的生态功能,在一个数据库内支撑上述需求,不用维护多种数据库,减少运维压力,专注业务开发。


较高的数据实时性和新鲜度

无论TP还是AP场景,都要求较高的数据新鲜度,TP业务入库即可见,AP业务延迟要求秒级;大部分表既有TP需求,也有AP需求,但部分表(10TB 级别)无TP需求,只需要分析。


支持湖表检索和多模态混合检索

客户标签的原始数据采用iceberg管理,希望数据库能直读iceberg,且能支持库内库外数据的联合查询与分析。


围绕IMCI核心能力实现数据价值落地


客户使用了PolarDB-PG大规格实例来支撑标签数据管理和挖掘业务,核心使用了基于IMCI列存索引+列存表的HTAP一体化方案能力。


🔷 标签挖掘计算性能,借助IMCI获得百倍性能提升


PG兼容:系统100%兼容PostgreSQL接口,存算分离,弹性扩展,满足客户要求兼容PG的各类查询能力,涉及多条件筛选/分页查询/多表关联查询/Top-K查询等,以及大表分区管理和查询能力。


标签管理:支持自驾业务灵活的标签格式,除了最常用的varchar形式,也支持原生Json类型的字段定义,可定义为Json Object和Json Array形式的各类标签格式;支持对Json字段的整体更新和指定路径更新(基于Json更新函数,如jsonb_set)。


标签挖掘:基于IMCI列存索引加速标签数据的统计分析计算,大部分业务场景较行存性能提升60X以上,个别标签挖掘业务场景提升100X性能,同时满足10:1高比例压缩;支持对Json类型字段的指定key进行转列存做聚合统计分析。


🔷 一体化支持湖表检索和多模态混合检索


湖表检索:使用polar_lakehouse插件,数据库直读iceberg,支持库内库外数据的联合查询与分析。


混合搜索:提供基于GIN的全文搜索引擎和基于PGVector的向量引擎,提供多路召回与混合检索能力。


🔷 秒级数据新鲜度,AP和TP一套系统


数据新鲜度:行存数据写入即可见,全文、向量等搜索索引秒内可见,列存索引秒级可见。


系统成本:针对部分表(10TB 级别)无TP需求,只需要分析,因此直接采用IMCI列存表进行组织和分析计算,性能与列存索引对齐,不再为此额外维护一个独立的AP系统,实现一套系统解决问题。


结语

PolarDB-PG IMCI 将基于 PostgreSQL 的行存引擎和基于 DuckDB 的列存引擎深度融入 PolarDB 统一云原生数据库架构,实现双擎合一,复杂查询分析性能百倍提升,助力企业实时数据洞察与分析决策。该功能上线以来,历经多个版本的持续迭代升级,在电商、金融、交通、汽车、社交等众多行业领域获得头部客户的应用,客户普遍反馈分析性能卓越,大幅提升了数据分析决策时效性。

相关文章
人工智能 关系型数据库 分布式数据库
273 19
|
2月前
|
SQL 数据可视化 关系型数据库
MCP与PolarDB集成技术分析:降低SQL门槛与简化数据可视化流程的机制解析
阿里云PolarDB与MCP协议融合,打造“自然语言即分析”的新范式。通过云原生数据库与标准化AI接口协同,实现零代码、分钟级从数据到可视化洞察,打破技术壁垒,提升分析效率99%,推动企业数据能力普惠化。
254 3
|
5月前
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
6月前
|
存储 关系型数据库 分布式数据库
PolarDB开源进阶篇:深度解析与实战优化指南
PolarDB是阿里云开源的云原生数据库,采用计算-存储分离架构,结合高性能共享存储与Parallel Raft多副本一致性协议,实现微秒级延迟和卓越性能。本文深入解析其架构设计,涵盖智能调度层、性能优化技巧(如查询优化器调优和分布式事务提升)、高可用与容灾配置、扩展功能开发指南以及监控运维体系。同时,通过电商平台优化案例展示实际应用效果,并展望未来演进方向,包括AI结合、多模数据库支持及Serverless架构发展。作为云原生数据库代表,PolarDB为开发者提供了强大支持和广阔前景。
433 16
|
7月前
|
关系型数据库 分布式数据库 数据库
一库多能:阿里云PolarDB三大引擎、四种输出形态,覆盖企业数据库全场景
PolarDB是阿里云自研的新一代云原生数据库,提供极致弹性、高性能和海量存储。它包含三个版本:PolarDB-M(兼容MySQL)、PolarDB-PG(兼容PostgreSQL及Oracle语法)和PolarDB-X(分布式数据库)。支持公有云、专有云、DBStack及轻量版等多种形态,满足不同场景需求。2021年,PolarDB-PG与PolarDB-X开源,内核与商业版一致,推动国产数据库生态发展,同时兼容主流国产操作系统与芯片,获得权威安全认证。
|
4月前
|
存储 关系型数据库 分布式数据库
喜报|阿里云PolarDB数据库(分布式版)荣获国内首台(套)产品奖项
阿里云PolarDB数据库管理软件(分布式版)荣获「2024年度国内首版次软件」称号,并跻身《2024年度浙江省首台(套)推广应用典型案例》。
|
2月前
|
Cloud Native 关系型数据库 MySQL
免费体验!高效实现自建 MySQL 数据库平滑迁移至 PolarDB-X
PolarDB-X 是阿里云推出的云原生分布式数据库,支持PB级存储扩展、高并发访问与数据强一致,助力企业实现MySQL平滑迁移。现已开放免费体验,点击即享高效、稳定的数据库升级方案。
免费体验!高效实现自建 MySQL 数据库平滑迁移至 PolarDB-X
|
5月前
|
关系型数据库 分布式数据库 数据库
再获殊荣,阿里云PolarDB数据库蝉联SIGMOD最佳论文奖
内存池化技术新突破,阿里云PolarDB蝉联SIGMOD最佳论文奖
|
2月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。

相关产品

  • 云原生数据库 PolarDB