当您在RDS PostgreSQL上进行复杂查询并期望快速获得结果时,可以使用分析加速引擎rds_duckdb。该引擎基于DuckDB构建,提供列存表与向量化执行能力,无需修改原始SQL即可显著提升复杂分析查询的执行速度。
功能简介
RDS PostgreSQL默认使用行存格式存储数据,行存适合在线事务处理(OLTP)场景的高频点查与更新,但在分析(OLAP)场景下需要扫描大量数据时性能受限。rds_duckdb插件在RDS PostgreSQL中集成了DuckDB分析引擎,通过以下能力加速复杂查询:
列存格式:将数据按列组织存储,对于只涉及部分列的聚合、统计类查询,只需读取相关列,大幅减少I/O开销。
向量化执行:以批量数据为单位进行计算,充分利用CPU的SIMD指令与缓存局部性,相比传统的逐行执行(火山模型)有数倍至数十倍的性能提升。
无侵入使用:原始SQL语句无需任何修改,业务可平滑迁移至加速链路。
适用场景
复杂报表与即席查询(Ad-hoc Query),涉及多表JOIN、GROUP BY、聚合计算。
数据分析与统计场景,单表数据量较大且查询只涉及部分列。
HTAP混合负载场景,希望在同一份数据上同时支持在线事务与分析查询。
开启方式
在正式使用分析加速能力前,请先完成实例配置。RDS PostgreSQL提供以下两种方式,您可以根据业务负载特征进行选择:
开启方式 | 资源模式 | 推荐场景 | 操作文档 |
主实例开启分析加速 | PostgreSQL与DuckDB共享主实例资源,部署简单、成本较低。 | TP负载较轻或允许AP查询占用部分主实例资源的业务,希望快速验证加速效果。 | |
DuckDB分析实例 | 独立部署DuckDB分析实例,与主实例进行数据同步,AP与TP负载在物理资源上完全隔离。 | 对在线业务延迟敏感的核心业务,需要保障TP稳定性,同时承载大规模AP分析查询。 |
如果您不确定如何选择,建议优先采用DuckDB分析实例方式,将分析负载与在线事务隔离,避免AP查询影响核心业务的性能与稳定性。
使用方法
成功开启HTAP加速功能后,您可以通过rds_duckdb插件创建列存表、导入数据并执行查询。详细的语法说明、表管理操作、查询使用方式,请参见AP加速引擎(rds_duckdb)。
性能测试
如果您希望量化评估rds_duckdb对复杂查询的加速效果,可以参考标准TPC-H测试方案。该方案包含完整的测试数据准备、查询执行步骤与结果对比,详情请参见AP加速引擎(rds_duckdb)性能测试。
免费体验
如果您希望快速体验rds_duckdb的核心功能,可以使用免费体验入口,无需购买额外资源即可完成简单的AP加速查询验证。详情请参见免费体验RDS PostgreSQL AP加速引擎(rds_duckdb)。