全部產品
Search
文件中心

AnalyticDB:整體架構

更新時間:Mar 07, 2025

AnalyticDB for MySQL是阿里巴巴自主研發、經過超大規模以及核心業務驗證的PB級即時資料倉庫。

概述

自2012年第一次在集團發布上線以來,AnalyticDB for MySQL至今已累計迭代發布近百個版本,支撐起集團內的電商、廣告、物流、文娛、旅遊、風控等眾多線上分析業務。AnalyticDB for MySQL從2014年開始正式對外提供服務,覆蓋十多個行業,既包括傳統的大中型企業和政府機構,也包括眾多的互連網公司。

AnalyticDB for MySQL是基於資料庫巨量資料一體化的理念和趨勢,在工程上深度打磨出的雲原生資料倉儲。

技術架構

AnalyticDB for MySQL採用雲原生架構,計算儲存分離、冷熱資料分離,支援高吞吐即時寫入和資料強一致,兼顧高並發查詢和大吞吐批處理的混合負載。

AnalyticDB for MySQL融合了分布式、彈性計算與雲端運算的優勢,對規模性、易用性、可靠性和安全性等方面進行了大規模的改進,充分滿足不同情境即時資料倉庫的需求。支援更大規模的並發訪問、更快讀寫能力以及更智能的混合查詢負載管理等,實現更精細化的資源利用和更低成本的投入,讓您能更加專註於業務發展,專註於資料價值。

在硬體部署層面,AnalyticDB for MySQL支援Intel/AMD晶片,支援x86指令集。

企業版基礎版

企業版實現了服務秒級恢複,支援跨可用性區域部署,自動故障檢測、摘除和副本重搭。配合三副本儲存、全量和增量備份,提供金融層級的資料可靠性。在周邊生態上,提供資料移轉、資料同步、資料管理、Data Integration、資料安全等配套工具,方便使用的同時,讓您能更加專註於業務發展。

基礎版為單副本形態,功能特性與企業版相同。但底層為單副本儲存,不提供高可用服務,適用於對資料高可用無需求、追求低成本熱資料存放區的業務情境。

企業版基礎版架構如下:

訪問層

訪問層由Multi-Master可線性擴充的協調節點構成,主要負責協議層接入、SQL解析和最佳化、即時寫入Sharding、資料調度和查詢調度。

訪問層通過統一計費單位、統一中繼資料和許可權、統一開發語言、統一傳輸鏈路,提升開發效率。

計算層

自研計算引擎同時提供MPP和BSP兩種模式。MPP模式是一種流式計算模式,不適合離線處理低成本和高吞吐情境。BSP模式,通過DAG進行任務切分,分批調度,滿足有限資源下巨量資料量計算,支援計算資料落盤。計算引擎提供自動切換能力,即當查詢使用MPP模式無法在一定耗時內完成時,系統會自動切換為BSP模式進行執行。

同時,提供開源Spark計算引擎,可以滿足更複雜的離線處理情境和機器學習情境。Spark計算層和儲存層互相打通,您可以使用計算層資源來處理儲存層資料。在建立和配置Spark資源群組時,操作更加方便。通過GPU和FPGA的硬體加速,我們能夠實現更高的性價比。

自研儲存引擎是基於共用儲存實現的分布式、即時、強一致和高可用的引擎。資料通過分區和Multi-Raft技術實現並行即時寫入,利用階層式存放區策略進行冷熱資料分離,有效降低成本。同時,結合行列儲存和智能索引技術,能夠實現卓越的效能表現。

儲存層

只需一份全量資料,滿足離線和線上情境。

線上分析情境需要資料盡量在高效能儲存介質上提高效能,離線情境需要資料盡量在低成本儲存介質上降低儲存成本。為滿足不同情境需求,首先將一份全量資料存放區在低成本高吞吐儲存介質中,低成本離線處理情境直接讀寫低成本儲存介質中的資料,可降低資料存放區和資料IO成本,保證高吞吐。其次將即時資料儲存在ESSD雲端硬碟上,保證行級的資料即時性,同時對全量資料構建索引,並通過緩衝能力對資料進行加速,滿足百毫秒級高效能線上分析情境。

內建的數倉儲存對外開放,不鎖定使用者資料,提供統一Storage API儲存介面層及Arrow資料訪問格式。支援使用開源計算引擎(如Spark和Presto)訪問內部的資料,同時對湖的生態(Iceberg、Hudi、DeltaLake、Paimon等)提供了完備的支援。

歷史形態

數倉版

數倉版主要用來處理高效能線上分析情境的資料。

數倉版架構如下:

接入層

接入層由Multi-Master可線性擴充的協調節點構成,主要負責協議層接入、SQL解析和最佳化、即時寫入Sharding、資料調度和查詢調度。

計算引擎

計算引擎具備分布式MPP和DAG融合執行能力,結合智能最佳化器,可支援高並發和複雜SQL混合負載。同時藉助雲原生基礎設施,計算節點實現了彈性調度,可根據業務需求做到分鐘級甚至秒級擴充,實現了資源的有效利用。

儲存引擎

儲存引擎是基於Raft協議實現的分布式即時強一致高可用的引擎,通過資料分區和Multi-Raft實現並行,利用階層式存放區實現冷熱分離降低成本,通過行列儲存和智能索引達到很好的效能。

在這三層架構之上,通過服務秒級恢複,支援跨可用性區域部署,自動故障檢測、摘除和副本重搭。配合三副本儲存、全量和增量備份,提供金融層級的資料可靠性。在周邊生態上,提供資料移轉、資料同步、資料管理、Data Integration、資料安全等配套工具,方便使用,使您能更加專註於業務發展。

湖倉版

數倉版基礎上,同時滿足低成本離線處理和高效能線上分析的湖倉一體化版本,稱為湖倉版湖倉版在資料全鏈路的“采存算管用”5大方面都進行了全面升級。

湖倉版架構如下:

資料來源

資料管道APS可以一鍵低成本接入資料庫、日誌、巨量資料中的資料。

訪問層

訪問層通過統一計費單位、統一中繼資料和許可權、統一開發語言、統一傳輸鏈路,提升開發效率。

儲存層+計算層

支援自研引擎,羲和計算引擎和玄武儲存引擎。支援整合的開源引擎,Spark計算引擎和Hudi儲存引擎。可以藉助開源的能力為您提供更豐富的資料分析情境。同時打通自研和開源引擎之間的互相訪問,提供更一體化的體驗。

  • 儲存層:只需一份全量資料,滿足離線和線上情境。

    線上分析情境需要資料盡量在高效能儲存介質上提高效能,離線情境需要資料盡量在低成本儲存介質上降低儲存成本。為滿足不同情境需求,首先將一份全量資料存放區在低成本高吞吐儲存介質中,低成本離線處理情境直接讀寫低成本儲存介質中的資料,可降低資料存放區和資料IO成本,保證高吞吐。其次將即時資料儲存在單獨的儲存IO節點(EIU)上,保證行級的資料即時性,同時對全量資料構建索引,並通過緩衝能力對資料進行加速,滿足百毫秒級高效能線上分析情境。

  • 計算層:羲和計算引擎,智能選擇計算模式。開源Spark計算引擎,滿足多種情境。

    羲和計算引擎與Spark計算引擎共同構成了AnalyticDB for MySQL計算層的基石,兩者相輔相成,既保證了線上分析的高效能需求,又覆蓋了廣泛的離線處理和進階分析情境,提供一站式的雲端資料倉儲解決方案。

    羲和計算引擎同時提供MPP和BSP兩種模式。MPP模式是一種流式計算模式,不適合離線處理低成本和高吞吐情境。BSP模式,通過DAG進行任務切分,分批調度,滿足有限資源下巨量資料量計算,支援計算資料落盤。羲和計算引擎提供自動切換能力,即當查詢使用MPP模式無法在一定耗時內完成時,系統會自動切換為BSP模式進行執行。

    湖倉版新增的開源Spark計算引擎可以滿足更複雜的離線處理情境和機器學習情境。湖倉版中Spark計算層和儲存層互相打通,您可以使用計算層資源來處理儲存層資料,在建立和配置Spark資源群組時更容易。