创建DuckDB分析只读实例

RDS DuckDB分析只读实例以列式存储与向量化计算为核心,实现复杂分析查询性能百倍跃升,为企业在海量数据规模场景下提供实时分析能力,加速企业数据驱动型决策效能。

说明
  • 您可以提交免费试用申请表单,以获得为期15DuckDB分析实例免费试用。在免费试用期间,您需创建按量付费的实例。试用期结束后,您可以选择继续使用该实例,支持将按量付费实例转换为包年包月实例,并将根据实际计费方式进行计费。

  • 欢迎您加入RDS产品技术用户交流钉钉群(106730000316),获取更多RDS性能相关信息,您可以在群内进行咨询、交流和反馈。

产品简介

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分析只读实例,被挂载的RDS MySQL主实例需满足以下条件:

  • 数据库大版本:MySQL 8.0

  • 产品系列:高可用系列

  • 存储类型:高性能云盘、ESSD云盘

  • 存储空间大小:10 GB~16000 GB

  • 未开启数据归档功能

费用说明

DuckDB分析只读实例的计费与只读实例一致,受产品系列、实例规格、存储类型与存储空间大小等因素影响,具体费用以售卖页显示为准。

免费体验复杂分析查询能力

您可以前往瑶池数据库解决方案体验馆,免费体验DuckDB分析只读实例加速复杂SQL查询的能力。

注意事项

  • 实例创建时间:DuckDB分析只读实例创建时,会将该只读实例中所有表的引擎自动转为DuckDB引擎。因此相比只读实例,其创建时间更长(与主实例的数据量有关)。

  • 删除外键:DuckDB分析只读实例的创建过程中会自动删除外键(DuckDB分析只读实例中无外键约束)。

  • 自动分发限制:暂不支持代理转发查询请求到DuckDB分析只读实例。

  • 表结构限制说明:DuckDB分析只读实例仅支持字符集为UTF8UTF8MB4的表;暂不支持分区表、无业务主键的表(表中既未定义主键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分析只读实例

  1. 访问RDS管理控制台,在上方选择地域,然后单击目标实例ID。

  2. 基本信息页的实例分布区域,单击DuckDB分析实例右侧的添加

    image

  3. 配置DuckDB分析只读实例,主要参数说明如下:

    如需对其他参数进行特殊配置,请参见创建RDS MySQL实例

    参数项

    说明

    数据库大版本

    默认与主实例一致,目前仅支持8.0版本。

    存储类型

    默认与主实例一致,支持高性能云盘、ESSD云盘。

    计费方式

    支持包年包月或按量付费,暂不支持Serverless类型

    产品系列

    高可用系列。

    产品类型

    标准版。

    实例规格

    独享规格,CPU与内存规格与只读实例规格一致。

  4. 单击下一步:实例配置,配置实例网络和资源组,主要参数如下:

    如需对其他参数进行特殊配置,请参见创建RDS MySQL实例

    参数

    说明

    VPC

    默认与主实例的VPC一致,不可修改。

    主节点交换机

    使用默认主节点交换机或按需选择。

    实例释放保护

    勾选此项表示为按量付费实例开启实例释放保护(不支持其他计费方式),防止按量付费实例被意外释放。

    资源组

    默认与主实例资源组一致,不可修改。

  5. 单击下一步:确认订单

  6. 确认参数配置,选择购买量,单击确认下单并完成支付。

    如选择包年包月的计费方式,还需选择购买时长。同时建议您勾选到期自动续费,不会因忘记续费而导致业务中断。

查看并连接DuckDB分析只读实例

DuckDB分析只读实例拥有独立的实例连接地址,您可通过该地址直接连接DuckDB分析只读实例。

  1. 登录RDS管理控制台,在左侧单击实例列表,然后在上方选择地域。

  2. 实例列表中找到主实例,单击左侧下拉箭头,可以看到该主实例下的DuckDB分析只读实例。

    image

  3. 单击DuckDB分析只读实例ID进入详情页,在基本信息 > 网络类型区域单击查看连接详情,获取连接地址。

    RDS实例默认提供内网地址供您访问,如需外网访问,请先申请外网地址,再连接DuckDB分析只读实例

相关文档与API

附录:DuckDB分析只读实例性能测试

下文以标准TPC-H测试(用于评估数据库复杂查询性能的基准测试)为例,展示DuckDB分析只读实例在分析查询性能上的表现。

测试环境

  • 数据集:使用TPC-H sf-100数据集,数据规模为100 GB,数据来源于DuckDB 官网

  • 运行环境:各数据库运行在相同规格的ECS主机上,配置为32CPU、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引擎)

    image

    image

    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

    image

    image

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

相关文档