wiki/duckdb/duckdb-zh.md
[ DuckDB in AliSQL | AliSQL DuckDB 引擎 ]
DuckDB 是一个开源的嵌入式分析型数据库系统(OLAP),面向数据分析工作负载。凭借以下关键特性,DuckDB 正在数据科学、BI 工具以及嵌入式分析等场景中快速流行:
MySQL 长期缺少分析型查询引擎。InnoDB 天然面向 OLTP,在 TP 场景表现优秀,但在分析型工作负载下查询效率较低。本次集成带来:
AliSQL 将 DuckDB 作为原生 AP 引擎集成,在保持 MySQL 兼容与无缝体验的同时,为用户提供高性能、轻量级的分析能力。
MySQL 的可插拔存储引擎架构允许其通过不同的存储引擎扩展能力:
该架构主要由四层组成:
DuckDB 分析型只读实例采用读写分离架构:
兼容性:
AliSQL 允许 DuckDB 节点通过 Binlog 同步作为从库使用。通过重新设计事务提交与回放流程,AliSQL 弥补了 DuckDB 不支持 2PC 的不足,即使发生异常宕机也能确保数据与元数据的完全一致。
幂等回放(Idempotent Replay):
DML 回放优化(DML Replay Optimization):
测试环境:
| Query ID | DuckDB | 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 | OOM |
| q22 | 0.33 | 361.4 | 4 |
| total | 15.31 | 25234.31 | 80.01 |
DuckDB 在分析查询场景中展现出显著的性能优势,相比 InnoDB 最高可提升 200x。
你可以在阿里云上体验集成 DuckDB 引擎的 RDS MySQL:
https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/duckdb-based-analytical-instance/