全部產品
Search
文件中心

AnalyticDB:自研高效能儲存引擎Beam

更新時間:Dec 05, 2024

Beam自研儲存引擎採用統一的儲存設計(行存Detla和PAX結構的列存Base),既能夠承載OLTP的高並發讀寫負載,也能夠應對OLAP的批量寫入和大量掃描情境。

Beam是AnalyticDB PostgreSQL版基於PostgreSQL 12的Table Access Method開發的下一代自研儲存引擎。

Beam儲存引擎包含兩部分:

  • 用以應對即時寫入的行存格式的Delta。

  • 用以應對批量寫入和大量掃描情境的基於PAX結構的列存格式的Base。

相對於Heap行存表,大大降低了總體磁碟I/O要求,極大地提高了分析情境的查詢效能。同時支援主鍵和寫入去重,並發Update和Delete,可以支援DTS直接同步處理到Beam。您可以通過Beam實現使用一份儲存同時解決TP/AP業務的需求,從而不需要在行存和列存引擎之間進行額外的資料同步工作以應對不同的業務情境。

注意事項

  • 僅儲存彈性模式v7.0.x版本支援Beam儲存引擎。

  • Beam儲存引擎在儲存彈性模式v7.0.6.2版本中結束公測正式上線,該版本修複了公測中的問題,建議您儘快升級到v7.0.6.2及以上版本。

Beam特性

高效能即時寫

Beam的儲存分為行存Delta和PAX結構的列存Base兩個部分。在資料寫入時,會根據資料寫入方式,自動選擇合適的儲存方式。當您使用INSERT INTO VALUES等流式即時方式寫入資料時,會寫入行存Delta部分,以達到與行存Heap表相當的即時寫入效能。

高吞吐大量匯入

當您使用COPYINSERT INTO SELECT等批處理方式寫入資料時,則會直接寫入到列存Base部分,以達到更高的吞吐,獲得更高的寫入效能。

高效能AP查詢

Beam引擎使用了多種方式來最佳化查詢的效能,包括:

  • 列裁剪技術

  • 支援多種壓縮演算法

  • 支援Zonemap過濾

  • 支援IO-Prefetch

大大降低了查詢時對磁碟I/O的要求,提高了I/O的利用率,從而大幅提升了查詢效能。

支援主鍵/寫入去重

Beam完全實現了Postgres原生的主鍵功能,您可以像使用Heap表一樣在Beam表上構建主鍵索引,從而實現資料去重功能。在此基礎上,Beam還支援了文法,實現了UPSERT功能。

支援DTS同步

得益於主鍵的支援,Beam表可以和Heap表一樣,實現DTS資料同步鏈路。您可以在DTS任務中將目標表配置為Beam表,從而獲得更優的查詢效能,而不需要在行存和列存表之間做額外的資料同步。

相關文檔

  • 更多關於Beam儲存引擎的使用,請參見Beam使用

  • Beam支援多種壓縮演算法,其中字典編碼功能可以將字串類型的資料壓縮為整型資料,提升儲存效率,加速過濾、彙總等類型查詢的效能。詳情請參見字典編碼

  • 如果您經常對某列或某幾列進行範圍查詢或等值篩選,可以指定Beam排序鍵提升查詢效果。詳情請參見Beam排序最佳化(7.0版)