天天看點

快速打通數倉和資料湖的湖倉一體最佳實踐 | 學習筆記

開發者學堂課程【SaaS  模式雲資料倉庫系列課程 —— 2021數倉必修課:快速打通數倉和資料湖的湖倉一體最佳實踐】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/55/detail/1060

快速打通數倉和資料湖的湖倉一體最佳實踐

目錄:

一、資料湖 vs 資料倉庫

二、下一代大資料演進方向:湖倉一體

三、湖倉一體示範

1.大資料的演進

資料湖和資料倉庫很難有一個清晰的界定。

之是以大家認為自己用得是資料倉庫,是因為資料倉庫的概念出現的很早,大資料概念出現之前,資料庫時代資料倉庫的概念就出現了,從使用者使用認知角度來看,計算存儲分離的叫資料湖。

2.一個典型的資料湖系統剖析

阿裡雲 EMR 資料湖—基于開源生态的大資料平台

(1)系統架構圖

快速打通數倉和資料湖的湖倉一體最佳實踐 | 學習筆記

從圖上可以看出,子產品數量較多,層次結構清晰。從下往上看,最下面一層是存儲層,往上一層是 hdfs/Jindou 層,之後一層是排程層,再上層是各種引擎,最上層是應用接入層,這些是資料湖的一個基本架構。各個子產品是一個獨立的元件,可以插拔,也可以替換。

快速打通數倉和資料湖的湖倉一體最佳實踐 | 學習筆記

(2)産品優勢

a.基于開源生态的大資料平台

b.支援 hdfs 和oss 兩種存儲系統

c.JindouFS+OSS 架構具有更好的效率和更低的成本

d.易于啟動和搭建

(3)資料湖的本質

a.統一的存儲系統

b.統一的中繼資料

c.引擎豐富,各元件自由協作

(4)資料湖的架構演進

架構上,從自建的存儲計算一體演變為托管的存儲計算分離建構,擁有更好的拓展性和穩定性。

快速打通數倉和資料湖的湖倉一體最佳實踐 | 學習筆記

資料湖架構是從左到右演進的,最初的資料湖是在HDFS上加一個自建叢集,但是在此資料湖中我們要監管機房、機位、采購、部署軟體等;之後又出現了像EMR這樣的産品,機房、機位這些就不用監管了,然後把自建叢集改為EMR叢集擴容一下,從全托管轉化為了半托管;而現在的雲上資料湖,把HDFS替換成了中繼資料中(DLF),用 OSS 或 S3 來替代存儲層,背後的概念是計算存儲分離,好處是帶來了更好的彈性以及更好地穩定性。原始資料湖存在的問題是計算作業打滿了 CPU,導緻整個 HDFS 不穩定,其他作業受到影響,導緻資料湖崩潰。

DLF 可以把中繼資料服務化,達到在不需要計算時,也能儲存原始資料與存儲,可以把整個計算層去掉,在需要時再拉回來,使整個架構更靈活。

現在一個标準資料湖是各種元件之間非常靈活的組合形式,資料湖中的每一層可以獨立使用,資料可以從其他元件進入。

3.一個典型的資料倉庫系統剖析

阿裡雲 MaxCompute—SaaS 模式企業級雲資料倉庫

快速打通數倉和資料湖的湖倉一體最佳實踐 | 學習筆記

從圖上來看,資料倉庫的架構與資料湖的架構相似,有分布式的存儲,有計算資源,,有排程,有各種引擎以及各種功能元件等,最大的不同之處是,一個資料倉庫有一個統一的資料接入層,這個資料倉庫的資料接入層通過内部的各種元件對使用者屏蔽。

資料接入層的不同在資料湖和資料倉庫的比較中起到了關鍵作用,第一,定義了整個系統的邊界,進入資料倉庫的資料是有要求的,而任何資料都可以直接進入資料湖,進入 MaxCompute 的資料一定是結構化的;第二,系統内部的各種版本的演進是對使用者屏蔽的,比如在資料湖中存在的幾個節點,存儲的冷熱分層,引擎與存儲需一起提升。

a.雲原生極緻彈性,無伺服器架構,開箱即用,支援砂級彈性伸縮

b.預置多種深度優化計算模型、存儲和資料通道能力

c.完善的企業級平台能力,且支援開放生态

d.強大的細粒度的安全隔離機制

e.大規模叢集性能強、全鍊路穩定性高(阿裡巴巴雙11場景驗證)

(3)基于 MaxCompute 強數倉的優勢,阿裡巴巴建構大資料中台

快速打通數倉和資料湖的湖倉一體最佳實踐 | 學習筆記

(4)資料倉庫的本質

a.内置存儲系統提供資料抽象

b.資料需要清洗和轉化

c.強調模組化和資料管理

快速打通數倉和資料湖的湖倉一體最佳實踐 | 學習筆記

4.資料湖與資料倉庫的差別

從技術角度是做了不同的傾斜,就是資料湖的系統是靈活的,強調組建元件之間的靈活的協作,資料入庫是結構化半結構化,這種是來者不拒的,然後上面的引擎是非常豐富、開放的使用起來上手是很容易的,大家獲得的學習資訊十分充足。

而資料倉庫是針對大的資料怎麼有效管理的,資料進入這個系統,就要先模組化,模組化之後用最高效的格式存儲他,上面的引擎沒那麼豐富,但是這些引擎效率會跟系統内的各種其他組元件一起優化。 

這個系統是不開元的,使用需要經過一個學習過程,上手困難一點,但是上手之後就會很容易,後續的管理成本是較低的。

快速打通數倉和資料湖的湖倉一體最佳實踐 | 學習筆記

從場景來看,這兩種系統分别适合做什麼?

因為資料湖對進入資料的類型沒有要求, 是以資料湖系統适合做一個從無到有的分系過程,而資料庫适合做業務流程已經确定,接下來是一個成長期,資料量和使用者量開始上升,剩下的問題都變成工程問題,資料量大了之後怎麼保證穩定性的問題、保證效率的問題,怎麼降低成本的問題。

快速打通數倉和資料湖的湖倉一體最佳實踐 | 學習筆記

從圖中可以看出在特定規模之前資料湖靈活性占優勢,之後數倉成長性占優勢。

與此同時,就産生了一個問題,客戶如何才能同時享受到資料湖的靈活性和資料倉庫的成長性。

阿裡雲計算平台提出下一代大資料演進方向:湖倉一體,即打通資料湖和資料倉庫兩套系統,讓資料和計算在湖倉之間自由流動,進而建構一個完整的有機的大資料技術生态體系。

1.整體架構

快速打通數倉和資料湖的湖倉一體最佳實踐 | 學習筆記

湖倉一體是在相當長的一段時間裡将資料湖和資料庫結合起來,資料資産應該是一緻的,我們不希望它分裂,是以我們提出了湖倉一體這個概念,新的資料接入層能夠能夠認識各種各樣資料組合或資料類型。 

2.關鍵技術特性

湖倉一體的缺點:整體系統使用的複雜度上升。

湖倉一體的關鍵技術是為了降低系統使用的複雜度。

(1)快速接入

經過快速簡單的開通步驟即可和 MaxCompute 數倉相連通。

(2)統一資料/中繼資料管理

既支援 hadoop 開源資料湖,也支援oss資料湖(相容)。

數倉和資料湖的資料/中繼資料保持實時一緻性(資料湖中的DB直接映射為MaxCompute Project ,享受數倉配套工具鍊)

(3)同意開發體驗

基于 DataWorks 強大的資料開發/管理/治理能力,提供統一的湖倉開發體驗,降低兩套系統的管理成本。

MaxCompute 高度相容 Hive/Spark ,支援一套任務可以在湖倉兩套體系中靈活無縫的運作。

(4)自動數倉

湖倉系統間的高速網絡通道。

智能的系統間近線 Cache。

中台統一管理架構下的合理資料分層,不僅享受資料湖帶來的靈活性,也享受MaxCompute 帶來的企業級數倉能力。

快速打通數倉和資料湖的湖倉一體最佳實踐 | 學習筆記

湖倉一體化的資料中台可能有幾個資料湖和幾個數倉系統構成。在資料層要做到資料的高速打通,到異構叢集有高速帶寬,在計算層做到中繼資料的實時打通,在中台層做統一的體驗。

3.适用場景

a.支援超大規模的機器學習和深度學習

基于開源的資料湖依托湖倉一體混合雲結構,可以實作超大資料集進行機器學習、深度學習訓練,以及高性能的超大規模樣本生成和特征處理的完整pipeline,極大提升AI類作業效率。

b.高效使用阿裡資料中台提升企業大資料能力

企業依托開源建設了資料湖,再借助使用阿裡資料中台能力過程中,湖倉一體方案解決了遷移帶來的利舊、確定業務連續性、與已有的系統協同、提升遷移速度的問題。

c.靈活營運、降本提效

強營運行業(視訊、直播、遊戲等),資料驅動營運決策頻次高,對計算資源臨時性需求強。湖倉一體方案以更低成本快速的滿足業務高彈性需求。

使用工具:MaxCompute/DataWorks/EMR/oss

1.快速打通

打開一個執行指令,進入指令行,我們會用到 MaxCompute 的基本檔案1、2、3, 在 Hive 中建構一個新環境,建立一個 database ,命名為 Inhdp1 oss,在oss建一張表,命名為 loction(是一個ORC格式的表),這是一個 EMR 與 oss結合的資料湖,然後輸入資料,最後 select。

在 MaxCompute 建立一個 Project,命名為desc Project,可以與Hive上的database 作展通,提供EMR上的一些基礎資訊,裡面已經有一張表 foo,就可以知道輸入資料的時間和最後一次更改資料的時間,映射的 desc Project 不能作業,不承在資源的屬性,結果運作在 menage Project 中,desc Project 的建立、消除不會産生任何費用,運用到desc Project裡面的中繼資料之後,作業才能運作。

之後再建一張表,把 foo 表裡的資料換掉,然後再做一個 show table ,我們可以在 Hive 中見到新換的資料。

2.使用者/權限管理

在原生 MaxCompute 中使用者權限管理,add user lyman 的帳号,再授權做grand 權限,然後 show table Inhdp1 oss。

在湖倉一體中使用者權限管理,add user lyman 的帳号,再授權做 grand List 權限,然後 show table Inhdp1 oss。

快速打通數倉和資料湖的湖倉一體最佳實踐 | 學習筆記

使用湖倉一體化的方法:

在阿裡雲搜尋湖倉一體;點選 MaxCompute 官網首頁湖倉一體按鈕。