RDS DuckDB分析只读实例以列式存储与向量化计算为核心,实现复杂分析查询性能百倍跃升,为企业在海量数据规模场景下提供实时分析能力,加速企业数据驱动型决策效能。
产品简介
DuckDB分析只读实例内置DuckDB引擎,具备如下特性:
高性能分析能力:支持列式存储、即时编译、向量化执行、高效的内存管理和并行处理等能力。
高度兼容MySQL:高度兼容MySQL语法和数据格式,无需修改原始查询语句,即可方便且高效地获取结果。
数据同步机制:
存量数据同步:创建DuckDB分析只读实例时,系统会从主实例同步存量数据,并自动转换成DuckDB引擎格式。
增量数据同步:DuckDB分析只读实例创建完成后,主实例的增量数据会通过MySQL Binlog原生复制机制实时同步至DuckDB分析只读实例。数据始终在RDS内流转,无需依赖外部数据同步工具。技术详情,请参见DuckDB分析实例的技术原理。
适用场景
聚合分析:对于聚合分析(如日志类数据),DuckDB分析只读实例可提供高效的聚合查询。
多表连接查询:对于多表
JOIN的查询业务,可显著提升MySQL在分析性能上的表现。
DuckDB分析只读实例、只读实例和OLAP型数据库对比
相比于使用主实例、只读实例或OLAP型数据库进行复杂查询,DuckDB分析只读实例具备如下优势:
性能强:相比InnoDB引擎,复杂查询性能提升两个数量级。
兼容度高:100%兼容MySQL协议和数据类型,高度兼容SQL语法和DDL。
数据同步高效稳定:自建Binlog原生复制通道,同步链路更加稳定高效,无需额外的数据同步费用。
资源隔离:DuckDB分析只读实例处理复杂分析查询,主实例和常规只读实例进行事务处理,资源隔离,互不影响。
对比项 | DuckDB分析只读实例 | 只读实例 | OLAP型数据库 | |
适配业务 | 复杂分析查询 | 事务处理 | 复杂分析查询 | |
分析查询性能 | 强 | 弱 | 强 | |
数据同步方式 | Binlog原生复制 | Binlog原生复制 | DTS数据同步链路 | |
MySQL兼容性 | 数据类型 | 完全兼容 | 完全兼容 | 不兼容(需字段映射) |
SQL语法 | 高度兼容(大于99.9%) | 完全兼容 | 不兼容(需重写SQL) | |
DDL | 高度兼容 | 完全兼容 | 少量兼容 | |
运维成本 | 低(一体化实例) | 低(一体化实例) | 高(需额外维护数据库及同步链路) | |
附录:DuckDB分析只读实例性能测试
下文以标准TPC-H测试(用于评估数据库复杂查询性能的基准测试)为例,展示DuckDB分析只读实例在分析查询性能上的表现。
测试环境
数据集:使用TPC-H sf-100数据集,数据规模为100 GB,数据来源于DuckDB 官网。
运行环境:各数据库运行在相同规格的ECS主机上,配置为32核CPU、128 GB内存,存储类型均为 ESSD云盘,确保测试环境的一致性。
对比对象:RDS MySQL常规实例(版本号8.0.36、InnoDB引擎)、ClickHouse社区版(版本号25.3)。
测试方法:在保证查询结果一致的前提下,各数据库先进行3轮预热运行(结果不计入统计),随后运行3轮正式测试,并取其平均值作为最终性能结果。
测试结果
以下表格展示了在TPC-H sf-100场景下,DuckDB分析只读实例、RDS MySQL实例(InnoDB引擎)以及ClickHouse在每条查询(Query)上的执行时间对比。
Query ID | 执行时间(单位:秒) | ||
DuckDB分析只读实例 | RDS MySQL常规实例(InnoDB引擎) | ClickHouse | |
q1 | 0.92 | 1134.25 | 3.47 |
q2 | 0.15 | 1800 | 1.52 |
q3 | 0.53 | 802.94 | 3.65 |
q4 | 0.46 | 1000.45 | 2.77 |
q5 | 0.5 | 1800 | 5.38 |
q6 | 0.22 | 566.73 | 0.73 |
q7 | 0.59 | 1800 | 6.06 |
q8 | 0.68 | 1800 | 6.99 |
q9 | 1.44 | 1800 | 13.29 |
q10 | 0.91 | 894.35 | 3.22 |
q11 | 0.11 | 79.63 | 1.1 |
q12 | 0.44 | 734.35 | 1.69 |
q13 | 1.59 | 454.15 | 5.85 |
q14 | 0.38 | 574.07 | 0.83 |
q15 | 0.31 | 568.43 | 1.53 |
q16 | 0.32 | 63.56 | 0.52 |
q17 | 0.89 | 1800 | 7.96 |
q18 | 1.59 | 1800 | 3.11 |
q19 | 0.8 | 1800 | 2.96 |
q20 | 0.51 | 1800 | 3.38 |
q21 | 1.64 | 1800 | 内存不足 |
q22 | 0.33 | 361.4 | 4 |
总计 | 15.31 | 25234.31 | 80.01 |
测试结论
DuckDB分析只读实例对比RDS MySQL实例(InnoDB引擎)


在TPC-H测试中,RDS MySQL实例(InnoDB引擎)的总执行时间为25234.31秒,而DuckDB分析只读实例的总执行时间仅为15.31秒,性能差距超过3个数量级。RDS MySQL实例(InnoDB引擎)在处理复杂查询时表现出明显不足,其中q5、q7、q8、q9、q17、q18、q19、q20、q21等查询因超时未能完成,超时时间统一计为1,800秒。表明RDS MySQL DuckDB分析只读实例针对大规模数据分析查询任务上表现优秀,显著提升了复杂查询的效率。
DuckDB分析只读实例对比ClickHouse


ClickHouse的总执行时间为80.01秒,相比之下DuckDB分析只读实例的总执行时间仅为15.31秒,在整体性能上显著领先。ClickHouse在执行q21查询时因内存不足导致报错(
Memory limit exceeded),无法完成查询;其余查询中DuckDB分析只读实例均大幅优于ClickHouse,展现了其复杂分析场景下更强的查询性能和稳定性。