大數據

構建實時數據倉庫首選,雲原生數據倉庫AnalyticDB for MySQL技術解密

阿里雲分析型數據庫重磅推出基礎版,極大降低了用戶構建數據倉庫門檻。高度兼容MySQL,極低的使用成本和極高的性能,使中小企業也可以輕鬆的搭建一套實時數據倉庫,實現企業數據價值在線化。

AnalyticDB for MySQL的產品系列包括基礎版(單機版)和集群版,基礎版為單個節點提供服務,極簡的架構大大的降低了基礎版的成本。存儲計算分離架構、行列混存技術、輕量的索引構建方式和分佈式混合計算引擎又保證了基礎版強大的分析性能。年成本不到一萬就可以構建一套實時數據倉庫,無需成立專門的大數據團隊,為企業節省百萬成本。

1.基礎版技術架構

如下為基礎版架構圖,整體由Coordinator和Worker組成,各自的職責如下介紹。

img

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

(1)MySQL協議層接入,SQL解析

(2)認證和鑑權,提供了更完善和細化的權限體系模型,白名單和集群級別RAM控制,並審計與合規記錄所有SQL操作。

(3)集群管理:成員管理、元數據、數據一致性、路由同步、備份與恢復(數據與log管理)

(4)後臺異步任務管理

(5)事務管理

(6)優化器,執行計劃生成

(7)計算調度,負責執行任務調度

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

(1)計算模塊

分佈式MPP+DAG混合計算引擎和優化器達到了更高的複雜計算能力和混合負載管理能力。利用阿里雲計算平臺之上資源靈活調度上的優勢,實現了計算資源的彈性調度。計算 Worker節點可以單獨拉起,因應業務需求做到分鐘級甚至秒級擴展,實現資源的最有效利用。

(2)存儲模塊

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

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

(3)Worker Group

帶存儲模塊的Worker節點被劃分為一個個節點組(Worker Group),集群版提供三副本的存儲,通過Raft分佈式一致性協議像一個整體一樣工作,允許其中一些Worker節點出現故障也能繼續提供服務,基礎版只有單副本提供服務。

2.基礎版優化器

優化器負責對Parser生成的語法樹進行處理,通過優化算法生成代價最優的計劃提供給計算引擎。計劃代價直接影響查詢性能,因此優化器是數據庫中最核心的模塊之一。基礎版採用了與集群版一樣強大的優化器,包含基於規則、基於代價、和基於模式的多種複合優化技術。

image.png

複雜分析型查詢經常包含多表join,表的join順序直接影響查詢性能。AnalyticDB優化器採用了基於代價估算和實時採樣信息的join order優化算法,能夠感知底層存儲的數據分佈。優化器利用AnalyticDB全索引特徵提高了過濾因子(filter factor)估算的準確性。針對複雜join,優化器基於數據分佈信息動態調整join order,同時評估數據reshuffling的代價,來從全局代價的維度選擇最優的執行計劃。

AnalyticDB優化器在經典基於規則優化器(Rule-Based Optimizer)的基礎上增加了代價估算和迭代優化,並且集成了Cascades CBO(Cost-Based Optimizer)優化框架。CBO搜索框架會調用 Property Enforcement模塊生成分佈式執行計劃,然後調用代價估算模塊,給每一種候選計劃評估代價,選擇最優的分佈式執行計劃。為了進一步提高join order的優化效果和效率,AnalyticDB優化器還採用了基於歷史信息的優化技術(History-Based Optimizer)、基於常見SQL模式的動態優化技術(Pattern-Based Optimizer),以及數據驅動的智能技術,例如Auto Analyze模塊自動蒐集統計信息,為優化器搜索最佳計劃提供準確的數據支持。

此外,AnalyticDB優化器還針對複雜查詢中經常出現的組合過濾條件、聚合算子、關聯子查詢等進行了一系列優化處理以提升性能。比如下推優化技術將計劃中的過濾條件和聚合算子儘量推到整個鏈路的底層模塊去執行,不但提高底層算子的效率,也減少了上游算子要處理的數據量,提高整體查詢性能。針對關聯子查詢語句,優化器通過關係代數轉化,將關聯子查詢改寫為語義等價的非關聯計劃,使得計算引擎可以高效流水線處理。

3.基礎版計算引擎

image.png

AnalyticDB計算引擎採用大規模並行處理MPP+DAG體系結構和基於內存的pipeline執行模式,具有高併發、低延遲的特點。為了加快對複雜表達式的求值速度,優化執行性能,計算引擎通過Runtime Codegen在運行時生成JVM bytecode,動態加載生成對象的實例,減少了執行過程中虛函數調用,提高了CPU-Intensive任務的效率。計算引擎還採用向量化執行模型處理表達式求值,利用CPU SIMD指令集來加速求值計算。

4.基礎版存儲引擎

image.png

AnalyticDB存儲引擎採用行列混合存儲的設計。如圖所示。對於一張表的每k行數據(Row Group),每列數據連續的存放在單獨的Data Block中,每行組的列Block的在磁盤上連續存放。行組內列Block的數據可按指定列排序存放,可以在按該列查詢時顯著減少磁盤隨機IO次數。這種設計的獨特優勢是兼具了行存(適合OLTP點查詢)和列存(適合OLAP多維分析)的長處,很好的滿足了不同類型workload的需求:

  • 針對OLTP類型的點查詢需要select出一整行的明細數據,行列混存設計下將列存的完全隨機讀轉化為了順序讀
  • 針對OLAP類型的多維分析:不僅解決了海量數據統計分析下行存的讀放大問題,而且進行單列IO時將列存的順序讀轉化為了順序跳讀,進行多列IO時則將隨機讀轉化為了順序讀
  • 寫入大吞吐:列存時的隨機寫被轉化為了順序寫

AnalyticDB存儲引擎採用智能全索引,對每列數據建立一個值到行號的倒排索引。查詢時,將SQL多個條件表達式的AND、OR 轉換成Boolean Query同時走索引,通過搜索得到滿足where條件的結果集行號,支持快速多路合併,能夠在毫秒級別找出滿足條件的結果集。

5.基礎版優勢

基礎版大幅度降低了用戶構建數據倉庫門檻,與大數據(Hadoop,Spark和EMR)和OLTP建倉方式相比都有超高的性價比。

(1)降低使用門檻

基礎版最低1.75元/小時,860元/月,與集群版相比,起步價降低了約三分之一。磁盤空間僅0.6元/GB,磁盤空間上限最大為4T,可以隨時按需擴展,大大降低中小企業複雜分析和構建實時數倉的使用門檻。

(2)性能高

同等配置下其數據查詢性能約為MySQL的10倍,很好地幫助用戶解決MySQL複雜分析慢的痛點。

(3)規格豐富

基礎版支持四種規格:T8、T16、T32和T52,可以根據業務的不同要求選擇規格和任意調整規格。

(4)生態透明

上下游生態完全兼容集群版,對用戶透明。

6.適合客戶

特別適合以下人群:

(1)Hadoop/Spark等太複雜,想快速實現數據化轉型的中小型企業;

(2)報表數據庫查詢慢,有交互式BI分析訴求的中小型企業;

(3)需要快速構建測試環境的進行數倉選型的用戶;

(4)學習類人群,可快速瞭解AnalyticDB for MySQL的用戶;

瞭解更多

觀看直播:https://developer.aliyun.com/live/2528
產品詳情:https://promotion.aliyun.com/ntms/act/adbformysqljichuban.html

Leave a Reply

Your email address will not be published. Required fields are marked *