整體架構
云原生數據倉庫 AnalyticDB MySQL 版是阿里巴巴自主研發、經過超大規模以及核心業務驗證的PB級實時數據倉庫。
概述
自2012年第一次在集團發布上線以來,AnalyticDB for MySQL至今已累計迭代發布近百個版本,支撐起集團內的電商、廣告、物流、文娛、旅游、風控等眾多在線分析業務。AnalyticDB for MySQL從2014年開始正式對外提供服務,覆蓋十多個行業,既包括傳統的大中型企業和政府機構,也包括眾多的互聯網公司。
AnalyticDB for MySQL是基于數據庫大數據一體化的理念和趨勢,在工程上深度打磨出的云原生數據倉庫。
技術架構
AnalyticDB for MySQL采用云原生架構,計算存儲分離、冷熱數據分離,支持高吞吐實時寫入和數據強一致,兼顧高并發查詢和大吞吐批處理的混合負載。
AnalyticDB for MySQL融合了分布式、彈性計算與云計算的優勢,對規模性、易用性、可靠性和安全性等方面進行了大規模的改進,充分滿足不同場景實時數據倉庫的需求。支持更大規模的并發訪問、更快讀寫能力以及更智能的混合查詢負載管理等,實現更精細化的資源利用和更低成本的投入,讓您能更加專注于業務發展,專注于數據價值。
企業版和基礎版
企業版實現了服務秒級恢復,支持跨可用區部署,自動故障檢測、摘除和副本重搭。配合三副本存儲、全量和增量備份,提供金融級別的數據可靠性。在周邊生態上,提供數據遷移、數據同步、數據管理、數據集成、數據安全等配套工具,方便使用的同時,讓您能更加專注于業務發展。
基礎版為單副本形態,功能特性與企業版相同。但底層為單副本存儲,不提供高可用服務,適用于對數據高可用無需求、追求低成本熱數據存儲的業務場景。
企業版和基礎版架構如下:
訪問層
訪問層由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實現并行,利用分層存儲實現冷熱分離降低成本,通過行列存儲和智能索引達到很好的性能。
在這三層架構之上,通過服務秒級恢復,支持跨可用區部署,自動故障檢測、摘除和副本重搭。配合三副本存儲、全量和增量備份,提供金融級別的數據可靠性。在周邊生態上,提供數據遷移、數據同步、數據管理、數據集成、數據安全等配套工具,方便使用,使您能更加專注于業務發展。
湖倉版
在數倉版基礎上,同時滿足低成本離線處理和高性能在線分析的湖倉一體化版本,稱為湖倉版。湖倉版在數據全鏈路的“采存算管用”5大方面都進行了全面升級。
湖倉版架構如下:
數據源
數據管道APS可以一鍵低成本接入數據庫、日志、大數據中的數據。
訪問層
訪問層通過統一計費單位、統一元數據和權限、統一開發語言、統一傳輸鏈路,提升開發效率。
存儲層+計算層
支持自研引擎,羲和計算引擎和玄武存儲引擎。支持集成的開源引擎,Spark計算引擎和Hudi存儲引擎。可以借助開源的能力為您提供更豐富的數據分析場景。同時打通自研和開源引擎之間的互相訪問,提供更一體化的體驗。
存儲層:只需一份全量數據,滿足離線和在線場景。
在線分析場景需要數據盡量在高性能存儲介質上提高性能,離線場景需要數據盡量在低成本存儲介質上降低存儲成本。為滿足不同場景需求,首先將一份全量數據存儲在低成本高吞吐存儲介質中,低成本離線處理場景直接讀寫低成本存儲介質中的數據,可降低數據存儲和數據IO成本,保證高吞吐。其次將實時數據存儲在單獨的存儲IO節點(EIU)上,保證行級的數據實時性,同時對全量數據構建索引,并通過緩存能力對數據進行加速,滿足百毫秒級高性能在線分析場景。
計算層:羲和計算引擎,智能選擇計算模式。開源Spark計算引擎,滿足多種場景。
羲和計算引擎與Spark計算引擎共同構成了AnalyticDB for MySQL計算層的基石,兩者相輔相成,既保證了在線分析的高性能需求,又覆蓋了廣泛的離線處理和高級分析場景,提供一站式的云端數據倉庫解決方案。
羲和計算引擎同時提供MPP和BSP兩種模式。MPP模式是一種流式計算模式,不適合離線處理低成本和高吞吐場景。BSP模式,通過DAG進行任務切分,分批調度,滿足有限資源下大數據量計算,支持計算數據落盤。羲和計算引擎提供自動切換能力,即當查詢使用MPP模式無法在一定耗時內完成時,系統會自動切換為BSP模式進行執行。
湖倉版新增的開源Spark計算引擎可以滿足更復雜的離線處理場景和機器學習場景。湖倉版中Spark計算層和存儲層互相打通,您可以使用計算層資源來處理存儲層數據,在創建和配置Spark資源組時更容易。