1. 程式人生 > >阿里分析型資料庫AnalyticDB入門

阿里分析型資料庫AnalyticDB入門

前言

內容基本摘至官方文件,連結如下:
https://help.aliyun.com/product/92664.html

一、定義

從官方文件瞭解到其的定義為:

阿里雲分析型資料庫AnalyticDB(簡稱ADB),是雲端託管的PB級高併發實時資料倉庫,是專注於服務OLAP領域的資料倉庫。在資料儲存模型上,採用關係模型進行資料儲存,可以使用SQL進行自由靈活的計算分析,無需預先建模。利用雲端的無縫伸縮能力,AnalyticDB在處理百億條甚至更多量級的資料時真正實現毫秒級計算。

AnalyticDB支援通過SQL來構建關係型資料倉庫。具有管理簡單、節點數量伸縮方便、靈活升降例項規格等特點,而且支援豐富的視覺化工具以及ETL軟體,極大的降低了企業建設資料化的門檻。

二、產品優勢

  • 新一代超大規模的MPP+DAG融合引擎
  • 採用行列混存技術、自動索引、智慧優化器,在瞬間即可對千億級別的資料進行即時的多維度分析透視,快速發現數據價值
  • 可以快速擴容至數千節點的超大規模

靈活

  • 極度靈活的儲存和計算分離架構,可以隨時調整節點數量和動態升降配例項規格
  • 同時支援在大儲存SATA節點和高效能的SSD節點靈活切換

易用

  • 作為雲端託管的PB級SQL資料倉庫,全面相容MySQL協議和SQL:2003
  • 通過標準的SQL和常用的BI工具、以及ETL工具平臺即可輕鬆使用AnalyticDB

超大規模

  • 全分散式結構,無任何單點設計,使得資料庫例項支援ECU節點動態線性擴容至數千節點
  • 通過橫向擴容來大幅度提升查詢SQL響應速度、以及增加SQL處理併發

高併發寫入

  • 通過橫向擴容節點提升寫入能力
  • 實時寫入資料後,約1秒左右即可查詢分析。單個表最大支援2PB資料,十萬億記錄

三、應用場景

經典實時數倉場景
您可以通過資料傳輸DTS將關係型資料庫的業務表實時映象一份到AnalyticDB,通過Quick BI(簡稱QBI)拖拽式輕鬆生成報表,或者通過DataV快速定製您的企業實時資料大屏
在這裡插入圖片描述

實時計算清洗迴流場景
通過將流計算清洗結果資料迴流至AnalyticDB來代替傳統的MySQL等單機資料庫,作為報表庫來查詢使用。由於關係型資料庫分散式的查詢效能優勢,不需要分庫分表就能解決PB級別的查詢效能問題。
在這裡插入圖片描述


  
ETL清洗迴流場景
大資料離線計算平臺 MaxCompute、SparkSQL、Hadoop、E-MapReduce等平臺產品在清洗完資料後,由於報表查詢條件依然很複雜,運營報表需要鑽取,導致單機資料庫無法支撐效能,此時需要一個像AnalyticDB這樣非常強大的報表查詢引擎完成資料查詢工作。常見的迴流資料工具有資料整合 和業內開源產品Datax。
在這裡插入圖片描述

四、名詞解釋

資料庫
資料庫是AnalyticDB最高層的物件,按資料庫進行資源的分配和管理。每個資料庫獨享一個服務程序,實現使用者間資源的隔離。AnalyticDB中資料庫的概念又稱之為例項,通常說的一個AnalyticDB資料庫就是一個例項,一個例項由若干個ECU節點組成

ECU
彈性計算單元(Elastic compute units 簡寫ECU)是AnalyticDB用來衡量例項計算能力的元單位。一個數據庫由若干個同一型別的ECU節點組成,例如資料庫A,可能由4個C8組成,或者6個S2N組成,每個ECU節點配備有固定的磁碟和記憶體資源。

表組
表組是一系列可發生關聯的資料表的集合,AnalyticDB為了管理相關聯的資料表,引入了表組的概念。表組類似於傳統資料庫schema的概念,AnalyticDB表組分為兩類:

維度表組(系統自帶)

自帶維度概念的表(例如省份表、銀行表等),可以放到維度表組下。

普通表組

一般會把需要關聯的普通表放在相同普通表組中,建議這個表組中的所有普通表的一級分割槽數一致,join效能會有很大提升。


在表組之下是表的概念,AnalyticDB提供兩種型別的表:

維度表

帶有維度概念的表(例如銀行表),又稱為複製表。預設每個ECU節點放置一份全量的維度表資料,所以維度表可以和任何普通表進行關聯。由於維度表會消耗更多的儲存資源,所以維度表的資料量大小有限制,一般要求維度表單表不超過5000萬行

普通表

普通表就是分割槽表,為充分利用分散式系統的查詢能力而設計的一種表。普通表預設是指一級分割槽表,如果有增量資料匯入需求,可以建立二級分割槽表。

分割槽
普通表才有分割槽的概念,AnalyticDB支援兩級分割槽策略:一級分割槽採用hash演算法,單表資料量在60億以內,我們推薦您使用一級分割槽,通常一級分割槽已足夠。二級分割槽採用list演算法,二級分割槽部分見最佳實踐章節。

主鍵
AnalyticDB的的表必須包含主鍵欄位,通過主鍵進行記錄的唯一性判斷。主鍵由業務id、一級分割槽鍵組成,有些情況業務id與一級分割槽相同。對於記錄量特別大的表,從儲存空間和insert效能考慮,一定要減少主鍵的欄位數。

示例

以一個電商公司購買了一個AnalyticDB Trade為例,幫助您理解上述概念。

1.客戶在阿里雲購買1個名為Trade的AnalyticDB(也稱之為1個ADS例項),如圖所示,Trade由4個C4節點構成。

在這裡插入圖片描述

2.C4是一種ECU規格,我們還提供C8,S2N,S8N三種不同規格的ECU。

3.資料庫Trade下面可以規劃多個表組(類似Schema概念),不同表組用於存放不同的業務表。

4.Trade資料庫建立完畢後,系統會預設建立一個維度表組,所有維度相關的表,可以放到維度表組下。普通表按照上述第3點的規則來管理。