AnalyticDB for MySQL 3.0 技術架構解析

企業數據需求不斷變化,近年來變化趨勢日益明顯,從數據的3V特性看:體積,速度和變化;Big Data強調數據量,PB級以上,是靜態數據。而Fast Data在數據量的基礎上,意味着速度和和變化,意味着客戶能夠更加實時化、更加快速地進行數據處理。在Forrester最近的一項研究中,超過75%的受訪公司已經使用Fast Data解決方案。 在接受調查的人中,88%表示他們須要近乎實時地對數據執行分析。前端

AnalyticDB是阿里巴巴自主研發、惟一通過超大規模以及核心業務驗證的PB級實時數據倉庫,是FastData的最佳表明。自2012年第一次在集團發佈上線以來,至今已累計迭代發佈近百個版本,支撐起集團內的電商、廣告、菜鳥、文娛、飛豬等衆多在線分析業務。AnalyticDB於2014年在阿里雲開始正式對外輸出,支撐行業既包括傳統的大中型企業和政府機構,也包括衆多的互聯網公司,覆蓋外部十幾個行業。數據庫

AnalyticDB承接着阿里巴巴廣告營銷、商家數據服務、菜鳥物流、盒馬新零售等衆多核心業務的高併發分析處理, 每一年雙十一上述衆多實時分析業務高峯驅動着AnalyticDB不斷的架構演進和技術創新。後端

AnalyticDB for MySQL 3.0針對Fast Data毫秒處理的需求,從新設計了架構,提供及時且經濟高效的數據處理的系統和方法,各個事件在到達時進行處理,處理延時到秒、毫秒,真正同時知足數據體積,速度和變化的3V屬性,助力企業打造一個實時的數據世界。根據2019年The Forrester Wave™: Database-As-A-Service,Q2 2019的最新報告,阿里雲數據已經進入全球第二梯隊(Strong Performers) ,同時也連續多年進入 Gartner發佈的分析型數據管理平臺報告 (Magic Quadrant for Data Management Solutions for Analytics),進入全球分析市場。安全

AnalyticDB for MySQL 3.0當前總體架構以下圖。架構

其中幾個主要的組件爲:

Coordinator: 前端控制節點,職責包括

  • MySQL協議層接入,SQL解析
  • 認證和鑑權,提供了更完善和細化的權限體系模型,白名單和集羣級別RAM控制,並審計與合規記錄全部SQL操做。
  • 集羣管理:成員管理、元數據、數據一致性、路由同步、備份與恢復(數據與log管理)
  • 後臺異步任務管理
  • 事務管理 
  • 優化器,執行計劃生成
  • 計算調度,負責執行任務調度

Worker: 存儲和計算節點,包含

  • 計算模塊

分佈式MPP+DAG混合計算引擎和優化器達到了更高的複雜計算能力,和混合負載管理能力,TPC-H性能比以前版本快大約40%。
利用阿里雲計算平臺之上資源靈活調度上的優點,實現了計算資源的彈性調度。計算Worker節點能夠單獨拉起,因應業務需求作到分鐘級甚至秒級擴展,實現資源的最有效利用。併發

  • 存儲模塊

存儲模塊更加輕量化,具有了承載更大吞吐數據實時寫入和讀取能力,寫入性能比以前版本同等規格高50%倍左右,毫秒級可見,知足客戶實時分析需求。異步

AnalyticDB for MySQL 3.0是運行在雲盤 + OSS系統上而不是本地盤上。隨着RDMA、ESSD盤的應用技術更穩定,後端節點直接利用雲盤分佈式存儲構建大容量高可用的數據庫存儲集羣會更有優點。分佈式

經過雲盤的能力,AnalyticDB for MySQL 3.0作到了磁盤靈活擴縮,進一步下降了用戶成本。用戶根據實際使用量購買相應磁盤空間,無需爲固定的多餘空間買單;當用戶磁盤達到瓶頸時能夠按需擴容。對於訪問的比較少,且訪問頻次會隨着時間的流逝而減小冷數據,經過更低成本的OSS作分層存儲機制,在保持9個9的數據可靠性同時,進一步下降用戶成本。高併發

存儲節點提供全量和增量備份和恢復能力,雲盤的按期快照和日誌會實時同步到OSS中保存,對用戶數據提供更高的安全保障,幫助用戶在數據庫發生問題時最大限度的找回。工具

Worker Group

帶存儲模塊的Worker節點被劃分爲一個個節點組(Worker Group),提供三副本的存儲,經過Raft分佈式一致性協議像一個總體同樣工做,容許其中一些Worker節點出現故障也能繼續提供服務。

AnalyticDB的讀寫鏈路就是穩定運行在上訴組件之上

  • 寫入鏈路,數據經過Coordinator寫入後,會根據表上的分區鍵寫入到不一樣的表分區(Shard)所屬的Worker Group中,每一個Worker Group中的Worker三副本經過Raft協議保證了數據的強一致性、高可靠、高可用、實時可見(線性一致性);爲了保證高效,AnalyticDB進行了GroupCommit、壓縮、異步化、零拷貝等衆多優化技術,大幅優化了寫入性能, TPC-H表單節點TPS 到達15w 以上,而且能夠線性擴展;
  • 查詢鏈路,用戶的SQL語句經過MySQL協議發送到Coordinator後,SQL會被Parser進行解析生成邏輯計劃,而後被Optimizer進行優化後生成物理執行計劃,再發送給計算調度模塊將該SQL的物理執行Task分發到不一樣的Worker節點執行,每一個執行Task都會被關聯到Worker上的存儲,從存儲拉取數據進行分佈式計算。爲了提高計算性能,AnalyticDB進行了計算下推存儲、高效智能索引篩選、向量化+Pipeline流式執行等一系列優化,目前AnalyticDB的TPC-DS性能作到了全球最快。

在此之上,經過服務秒級恢復,AZ內/跨AZ部署,自動故障檢測、摘除和副本重搭,配合上述的三副本存儲、全量和增量備份,提供金融級別的數據可靠性保證。在周邊生態上,提供數據遷移、數據同步、數據管理、數據集成、數據安全等配套工具,方便用戶使用,使用戶能更加專一於業務發展。

總結

綜上,AnalyticDB for MySQL 3.0版本融合了分佈式、彈性計算與雲計算的優點,對規模性、易用性、可靠性和安全性等方面進行了大規模的改進,充分知足不一樣場景Fast Data實時數據倉庫的需求。支持更大規模的併發訪問、更快讀寫能力以及更智能的混合查詢負載管理等,實現更精細化的資源利用和更低成本的投入,讓用戶能更加專一於業務發展,專一於數據價值。

 

本文做者:雲攻略小攻

原文連接

本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索