天天看點

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

釋出會PPT資料放送(點選可直接檢視哦)
ADB基礎版:雲原生MySQL靈活數倉 ADB for MySQL 基礎版技術解密 基于ADB for MySQL基礎版建構實時資料倉庫實踐

阿裡雲分析型資料庫重磅推出基礎版,極大降低了使用者建構資料倉庫門檻。高度相容MySQL,極低的使用成本和極高的性能,使中小企業也可以輕松的搭建一套實時資料倉庫,實作企業資料價值線上化。

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

1.基礎版技術架構

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

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

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生成的文法樹進行處理,通過優化算法生成代價最優的計劃提供給計算引擎。計劃代價直接影響查詢性能,是以優化器是資料庫中最核心的子產品之一。基礎版采用了與叢集版一樣強大的優化器,包含基于規則、基于代價、和基于模式的多種複合優化技術。

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

複雜分析型查詢經常包含多表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.基礎版計算引擎

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

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

4.基礎版存儲引擎

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

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 驚喜優惠!體驗10元3個月