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分析实例
企业用户试用
企业用户可免费试用规格为8核 16GB的DuckDB分析主实例和分析只读实例1个月。符合条件的企业用户,在售卖页下单时费用会显示为0元,直接下单即可享受免费试用权益。
每位企业用户可试用分析主实例、分析只读实例各一次。
试用分析主实例:点击跳转试用DuckDB分析主实例(规格码为
myduck.x2.xlarge.xc,独享型,8核16GB)。试用分析只读实例:需要有符合条件的RDS MySQL主实例。您可以参考DuckDB分析只读实例创建流程,在购买页配置以下参数。配置完成后,页面右下角配置费用自动变为0元(即免费试用)。
计费方式选择包年包月。
规格码选择
myduckro.n2.xlarge.1c(通用型,8核 16GB)。购买时长调整为1个月。
试用实例为包年包月实例,试用期(1个月)结束后会自动释放。试用到期后续费或新购DuckDB实例,均可享受优惠,具体折扣以购买页为准。
个人用户申请
个人用户可点击链接申请15天免费试用8核 16GB DuckDB分析主实例或分析只读实例。申请通过后,在售卖页下单时费用会显示为0元,直接下单即可享受免费试用权益。
每位个人用户仅限二选一试用DuckDB分析主实例或DuckDB分析只读实例。
DuckDB分析主实例规格:
myduck.x2.xlarge.xc,独享型,8核16GB。DuckDB分析只读实例规格:
myduckro.n2.xlarge.1c,通用型,8核 16GB(试用分析只读实例时,需要有符合条件的RDS MySQL主实例)。个人用户创建试用的分析实例时,实例计费方式需选择按量付费。该实例试用期(15天)内免费,试用结束后恢复正常计费。如后续无需使用,请及时释放实例。
免费体验复杂分析查询能力
您可以前往瑶池数据库解决方案体验馆,免费体验DuckDB分析实例加速复杂SQL查询的能力。
欢迎您加入RDS产品技术用户交流钉钉群(106730000316),获取更多RDS性能相关信息,您可以在群内进行咨询、交流和反馈。
适用范围
如需创建DuckDB分析只读实例,被挂载的RDS MySQL主实例需满足以下条件:
数据库大版本:MySQL 8.0
产品系列:高可用系列
存储类型:高性能云盘、ESSD云盘
存储空间大小:10 GB~16000 GB
未开启数据归档功能。
费用说明
DuckDB分析只读实例的计费与只读实例一致,受产品系列、实例规格、存储类型与存储空间大小等因素影响,具体费用以售卖页显示为准。
注意事项
实例创建时间:DuckDB分析只读实例创建时,会将该只读实例中所有表的引擎自动转为DuckDB引擎。因此相比只读实例,其创建时间更长(与主实例的数据量有关)。
删除外键:DuckDB分析只读实例的创建过程中会自动删除外键(DuckDB分析只读实例中无外键约束)。
表结构限制说明:DuckDB分析只读实例仅支持字符集为
UTF8或UTF8MB4的表;暂不支持分区表、无业务主键的表(表中既未定义主键Primary Key,也不存在非空字段的唯一约束)。说明对于不支持的表,在DuckDB分析只读实例中,其引擎将保留为InnoDB引擎。您可以通过以下SQL进行查询不兼容列表。
SELECT table_schema, table_name, engine FROM information_schema.tables WHERE table_schema NOT IN ('mysql', 'sys') AND engine = 'InnoDB';Binlog订阅限制:DuckDB分析只读实例暂不支持开启Binlog功能,因此无法对其实现Binlog订阅。如有订阅需求,请选择主实例进行订阅。
兼容性限制说明:请参见DuckDB分析实例兼容性说明。
创建DuckDB分析只读实例
访问RDS管理控制台,在上方选择地域,然后单击目标实例ID。
在基本信息页的实例分布区域,单击DuckDB分析实例右侧的添加。

配置DuckDB分析只读实例,主要参数说明如下:
参数项
说明
计费方式
支持包年包月或按量付费,暂不支持Serverless类型。
产品系列
仅支持高可用系列。
产品类型
仅支持标准版。
主节点可用区
仅支持选择主实例所在地域下的可用区。
部署方案
单可用区部署:分析只读实例的主备节点位于同一可用区。
多可用区部署:分析只读实例的主备节点位于同一地域内的不同可用区,实现跨可用区容灾,不额外收费。选择多可用区部署后,需要额外配置备节点可用区。
实例规格
支持独享规格和通用规格,具体规格请参见DuckDB分析只读实例规格表。
数据库代理
开启通用型数据库代理(免费)后,可以实现HTAP自动行列分流,将OLAP查询请求路由至DuckDB分析只读实例,OLTP查询请求路由至主实例或普通只读实例。
存储空间
分析只读实例的存储空间需要大于等于主实例存储空间的一半。
单击下一步:实例配置,配置实例网络和资源组,主要参数如下:
参数
说明
VPC
默认与主实例的VPC一致,不可修改。
主节点交换机
使用默认主节点交换机或按需选择。
实例释放保护
勾选此项表示为按量付费实例开启实例释放保护(不支持其他计费方式),防止按量付费实例被意外释放。
资源组
默认与主实例资源组一致,不可修改。
单击下一步:确认订单。
确认参数配置,选择购买量,单击确认下单并完成支付。
如选择包年包月的计费方式,还需选择购买时长。同时建议您勾选到期自动续费,不会因忘记续费而导致业务中断。
等待一段时间后,您可以在实例列表中找到主实例,单击左侧下拉箭头,可以看到该主实例下的DuckDB分析只读实例。

连接DuckDB分析只读实例
(推荐)通过数据库代理连接
当您的业务同时涉及高并发的事务型处理(OLTP)和复杂的分析型处理(OLAP)时,可以通过数据库代理实现HTAP自动行列分流。数据库代理节点会预估SQL语句的查询代价,自动将OLAP查询请求路由至DuckDB分析只读实例,OLTP查询请求路由至主实例或普通只读实例,无需业务侧手动分类数据库请求。
在RDS MySQL主实例下添加DuckDB分析只读实例。
为主实例开启通用型数据库代理。
为主实例开启HTAP行列自动分流。
为DuckDB分析只读实例分配读权重。
通过代理连接地址连接数据库。数据库代理会根据SQL查询的预估执行代价,自动将请求分发至最适合的实例类型。
直接连接
DuckDB分析只读实例拥有独立的实例连接地址,当您只需处理分析型(OLAP)查询请求时,可通过该地址直接连接DuckDB分析只读实例。
登录RDS管理控制台,在左侧单击实例列表,然后在上方选择地域。
在实例列表中找到主实例,单击左侧下拉箭头,可以看到该主实例下的DuckDB分析只读实例。
单击DuckDB分析只读实例ID进入详情页,在区域单击查看连接详情,获取连接地址。
RDS实例默认提供内网连接地址,如需外网访问,请先申请外网地址,再连接DuckDB分析只读实例。
相关文档与API
相关API
通过API(CreateReadOnlyDBInstance)创建DuckDB分析只读实例。
通过API(DescribeDBInstanceAttribute)查询指定DuckDB分析只读实例详情。
通过API(DescribeDBInstances)查询账号下所有RDS实例(包含DuckDB分析只读实例)的基本信息。
附录: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,展现了其复杂分析场景下更强的查询性能和稳定性。