下一代企業級雲上資料分析服務:DataLakeAnalytics

julian.zhou發表於2018-09-05

0. Data Warehouse VS Data Lake

0.1 傳統數倉

  • 資料來源於各類雲資料儲存、NoSQL和關係型資料庫等系統,比如OSS、Table Store、NAS、 雲HBase、RDS、PolarDB等;
  • 資料以實時、分鐘、小時、天等級別進行ETL抽取與同步到數倉系統中;
  • 在數倉中進行實時、定時排程、彙總計算分析。

關注到數倉的實時同步、實時海量資料的分析能力,可以關注阿里雲的分析型資料庫AnalyticDB(https://www.aliyun.com/product/ads),在雲上打造實時數倉的解決方案。

image.png | left | 827x343

從資料、Schema、價格、效能、資料質量、使用者、分析的workload等各類特徵維度比較傳統數倉和Data Lake的解決方案和應用場景的區別:(注:部分內容翻譯於:https://amazonaws-china.com/big-data/what-is-a-data-lake/

特徵
Data Warehouse(傳統數倉)
Data Lake
資料
來自於交易型系統的典型的關係型資料和各類業務線的應用資料
來自IoT物聯網裝置、網站、移動裝置、社交媒體和企業應用的各類非關係型和關係型資料
Schema
Schema-on-write
(在數倉規劃和實現前預先設計好Schema和ER關係)
Schema-on-read
(分析時確定或伴隨著分析時進行獲取)
價格、效能
更高的資料儲存開銷,獲得最好的分析查詢效能
比較低的資料儲存開銷,以還不錯的速度獲取分析查詢結果
資料質量
高度策劃、清洗過的資料,提供最核心關鍵的資料資訊和決策支援
任何資料(清洗或者未清洗過的)
使用者
Business analysts
Data scientists, Data developers和 Business analysts (使用高度策劃和清洗過的資料)
分析
批量報表、BI和視覺化展現
機器學習、預測分析、資料發現和畫像

0.2 Cloud Data Lake分析分層

在雲上構建資料湖分析場景的架構分層比較清晰,自底向上分三層:

  • 第一層:多樣選擇的“南向多模”雲原生資料儲存和資料庫服務。使用者面向一系列雲原生的資料儲存服務和雲資料庫系統儲存、擺放自己的資料,多樣的選擇包括:價效比高的物件雲端儲存(非常方便儲存檔案,結構化、半結構化、非結構化的raw data,多媒體檔案),NoSQL(TableStore、雲HBase等),RDS、PolarDB等雲資料庫服務。
  • 第二層:面向“南向多模”而構建的雲原生Data Lake分析服務層。該層強調雲原生Cloud Native中很重要的一個特質,就是Serverless無伺服器化,是雲上打造SaaS化的基礎服務,除了Data Lake分析場景,還有更加泛在的Serverless PaaS(https://serverless.aliyun.com/)和FaaS(比如阿里雲的函式計算: https://www.aliyun.com/product/fc)。本文重點關注Data Lake分析場景的Serverless分析能力,總的來看我們總結為三個方面:

    • 第一,Elastic。強調彈性化能力,能夠按需、及時彈性,有預測性,智慧的混合負載處理能力;
    • 第二,Resilient。使用者無感知的高可用能力,包括透明的滾動升級、快速Failover、跨AZ(可用區)的容災能力等;
    • 第三,Federated & Analytical。面向多模的聯邦分析能力,包括對多種格式、系統的分析對接能力,全面的分析功能和優秀的互動式分析效能和體驗,包括資料、計算並行化處理能力,良好的介面相容能力等。
  • 第三層:資料分析應用、視覺化應用層。基於Data Lake分析服務層打造的業務邏輯,還包括雲上的資料分析工具和產品DataV( https://data.aliyun.com/visual/datav ),QuickBI( https://data.aliyun.com/product/bi ),或者未來在雲市場( https://market.aliyun.com/ )上上線的各類其他資料分析產品和工具等。

在雲上,使用者能夠非常方便的直接與三層的雲產品、服務互動,構建自己的雲資料湖分析場景和解決方案。

image.png | left | 827x407

1. Data Lake Analytics概述

1.1 Data Lake Analytics生態分層

在上一節Cloud Data Lake分析分層的基礎上,Data Lake Analytics的生態分層分為:Result結果層,Serverless分析層,資料來源Source層,以及BI SaaS層。

  • 資料來源Source層:支援OSS、NoSQL(TableStore等)、RDS(MySQL、PostgreSQL、SQL Server)等資料的並行化聯邦分析;
  • Serverless分析層:是Data Lake Analytics的核心計算、分析層;
  • Result結果層:通過Data Lake Analytics內建的多源、多路的ETL能力,將分析結果迴流到OSS、NoSQL系統、RDS等RDBMS關係型資料庫,以及一些其他的資料快取系統等;
  • BI SaaS層:相容性在持續增強,目前支援Qlik、Tableau、Microstrategy、阿里雲QuickBI以及其他主流MySQL客戶端工具以MySQL資料來源的方式,連線Data Lake Analytics服務進行分析。

image.png | left | 827x320

1.2 產品特點

無伺服器化
標準SQL與連線
異構資料來源
優化的計算引擎
  • 無基礎設施和管理成
  • 零啟動時間
  • 透明升級
  • QoS彈性服務
  • 相容標準SQL
  • 豐富的內建函式支援
  • JDBC/ODBC支援
  • BI工具相容
  • 啟用OSS資料分析需求
  • 啟用Table Store資料SQL服務
  • 跨多資料庫例項的聯邦資料分析
  • 多資料來源輕鬆互聯分析
  • Analytics in “Data Lake”
  • 支援非結構化資料
  • 向量化執行優化
  • 運算元流水線優化
  • 資源隔離與優先順序
  • FPGA/GPU加速(待推出)

2. Data Lake Analytics雲上部署架構

在單個阿里雲region內,Data Lake Analytics服務的部署架構如下所示:

  • Alibaba Cloud Management Zone(OXS區)

    • Admin Proxy屬於產品的管控節點,部署在OXS區,向下負責與阿里雲售賣系統、計量、ALB、SLA、雲監控、SLS、RAM等系統互動,完成所有云產品屬性的管控和服務功能,向上負責提供POP API,為產品控制檯提供服務入口;
  • Alibaba Cloud Public Cloud Zone(售賣區)

    • DLA所有服務角色都執行於VPC內的ECS,包括Resource Manager,Frontnode,Computenode,Meta Store等;
    • Resource Manager是Data Lake Analytics資源排程的大腦,負責服務程式拉起、看護、版本升級;
    • Resource Manager負責呼叫為DLA定製化的ROS模板,進行各個阿里雲region上DLA服務的初始化;
    • Resource Manager還負責根據叢集服務的資源利用率和繁忙情況,控制計算服務節點的水位和ECS水位,其中,ECS水位,通過呼叫ESS進行彈性伸縮,有效控制叢集資源利用率;
    • Frontnode是DLA查詢分析服務的入口,多個Frontnode掛載在ALB的EIP後,提供查詢訪問連線的負載均衡;
    • Computenode為無狀態的查詢任務計算節點;
    • Meta Store服務為DLA叢集的後設資料中心,基於VPC內RDS for MySQL儲存,為其他服務角色提供統一的後設資料儲存和查詢服務。
  • 通過ALB提供的服務介面支援SingleTunnel VPC、經典網路IPv4和經典網路IPv6的服務入口(Data Lake Analytics是阿里雲公共雲上第一批支援IPv6服務入口的產品之一:https://www.aliyun.com/solution/ip/ )。

image.png | left | 827x448

3. 針對資料湖儲存OSS的分析

3.1 目標使用者與應用場景舉例

0)對儲存在OSS中的資料有資料分析需求的人;
1)熟悉SQL的雲上開發和分析人員;
2)對雲上資料有臨時探索、分析、發現的人;
3)尋求在OSS上構建Data Lake的使用者和企業。

image.png | left | 827x403

3.2 典型使用流程

0) 使用者把業務產生的資料如Log、CSV、JSON等格式的檔案,直接上傳到OSS,然後用Data Lake Analytics直接指向檔案或者資料夾進行建表查詢,使用BI工具進行業務資料分析展現;

image.png | left | 713x104

1)使用者在其他Hadoop生態的Legacy系統上有Parquet、ORC、RCFile、Avro等格式的資料,直接複製上傳到OSS,然後用Data Lake Analytics直接指向檔案或者資料夾進行建表查詢,使用BI工具進行業務資料分析展現;

image.png | left | 710x99

2)為了讓後續OSS上的資料分析具備更好的查詢效能和更低的儲存成本,可以把資料進行格式轉換,比如轉換成Parquet或ORC格式來提升資料反覆分析的價效比。

image.png | left | 825x220

在TPC-H原始資料量在1GB的情況下,各類資料格式的對應資料量比例如下圖所示。

image.png | left | 827x189

3.3 DBS結合Data Lake Analytics的資料備份查詢分析

  • DBS ( https://www.aliyun.com/product/dbs )服務是雲資料庫的資料備份服務,提供資料的全量和增量備份;
  • DBS備份資料儲存在OSS上,儲存成本較低;
  • 過去對於備份資料基本沒有分析能力,DBS結合DLA後,無需進行備份恢復,就能直接對OSS上的歷史備份資料進行分析;
  • DBS結合DLA,使得使用者圍繞雲上資料庫的備份與恢復、甚至歷史資料分析的整個體驗大大提升。

image.png | left | 827x438

4. 結合OSS Select優化DLA的查詢效能

OSS Select是OSS團隊開發的靠近OSS儲存的單檔案簡單查詢分析服務(https://yq.aliyun.com/articles/593910),由於OSS Select更靠近OSS,加上OSS Select對CSV檔案的分片索引優化和資料反序列化優化,Data Lake Analytics結合OSS Select在CSV檔案的分析場景下,效能提高50% ~ 90%不等,在大檔案資料過濾的極端場景下,有數十倍的效能提升。在TPC-H SF 10(原始10GB資料)的workload測試下,DLA開啟OSS Select的查詢計算下推功能和不開啟的查詢比較如下圖所示。

image.png | left | 523x309

5. 安全與跨雲產品訪問

安全永遠是雲上資料訪問和操作的標準,Data Lake Analytics在雲產品的各個層面follow雲上的安全實踐:

  • 雲賬號、子賬號在控制檯的訪問控制;
  • DLA自建服務賬號通過KMS信封加密技術,保障使用者服務賬號的安全性;
  • 採用資料庫體驗的ACL機制,進行物件的授權與訪問控制;
  • 售賣區服務角色全部部署於VPC內,保障計算、服務例項的網路隔離性;
  • 跨雲產品的服務訪問,全部通過RAM角色授權 + STS方式進行訪問。

image.png | left | 827x441

6. Data Lake Analytics資料流

在Data Lake Analytics整體上下游資料流生態中,目前主要支援OSS、Table Store、AnalyticDB和RDS(MySQL、PostgreSQL和SQL Server)。

image.png | left | 827x451

源(Source,查詢)和目標(Sink,資料迴流)的詳細支援情況列表:

資料系統
源(查詢
查詢優化
目標(資料迴流)
寫入優化
OSS
1536130838741-5b18bd19-b57a-4c36-b997-fe
支援OSS Select單檔案的計算下推優化
1536130838741-5b18bd19-b57a-4c36-b997-fe

Table Store
​​
1536130838741-5b18bd19-b57a-4c36-b997-fe

針對Table Store SDK進行列式壓縮呼叫返回優化,效能提升近4倍
​​
1536130838741-5b18bd19-b57a-4c36-b997-fe
AnalyticDB
​​
1536130838741-5b18bd19-b57a-4c36-b997-fe
支援分割槽級別並行優化
​​
1536130838741-5b18bd19-b57a-4c36-b997-fe
資料batch insert到AnalyticDB表中
RDS
(MySQL,PostgreSQL,SQL Server)
​​
1536130838741-5b18bd19-b57a-4c36-b997-fe
針對包含AUTO_INCREMENT列的表,進行range切片的資料分片並行查詢優化
1536130838741-5b18bd19-b57a-4c36-b997-fe
MongoDB
​​
1536130838741-5b18bd19-b57a-4c36-b997-fe
​​
Redis
​​
1536130838741-5b18bd19-b57a-4c36-b997-fe
​​
PolarDB
​​
1536130838741-5b18bd19-b57a-4c36-b997-fe
​​
1536130838741-5b18bd19-b57a-4c36-b997-fe

7. 小結

Data Lake Analytics(https://www.aliyun.com/product/datalakeanalytics)產品公測二維碼:

image.png | left | 212x193

技術介紹、教程、使用相關

應用場景、案例


相關文章