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,展現了其複雜分析情境下更強的查詢效能和穩定性。