閱讀373 返回首頁    go 阿裏雲 go 技術社區[雲棲]


基於阿裏雲數加MaxCompute的企業大數據倉庫架構建設思路

 

數加大數據直播係列課程,主要以基於阿裏雲數加MaxCompute的企業大數據倉庫架構建設思路為主題,分享阿裏巴巴的大數據是怎麼演變以及怎樣利用大數據技術構建企業級大數據平台。

 

本次分享嘉賓是來自阿裏雲大數據的技術專家禕休!

 

背景與總體思路

 

數據倉庫是一個麵向主題的、集成的、非易失的、反映曆史變化的數據集合,用於支持管理決策。其結構圖如下所示:

 

060aed260e37b9ea7e1232e1366019f4989af166

 

隨著大數據、雲計算等技術的應用和普及,互聯網環境下數據處理呈現出新的特征:業務變化快;數據來源多;係統耦合多;應用深度深。業務變化加快導致數據來源增多,以前的數據大多來自於應用係統數據庫,基本為結構化數據,比如OracleMySQL等數據。現在的互聯網環境下有了更多的數據,比如網站的點擊日誌、視頻數據、語音數據,這些數據都需要通過統一的計算來反映企業的經營狀況。在互聯網環境下,係統耦合也相對比較多,最重要的是要注重如何在這樣的環境下加深數據整合、提升應用深度。從應用深度上來說,之前更多專注於報表分析,在大數據環境下則更多地進行算法分析,通過建立數據模型去預測和研判未來趨勢。所以在這種境況下,對於係統的需求也更高:

 

Ø  要求結果數據盡可能快的獲取;

Ø  實時性需求增多;

Ø  訪問、獲取途徑多樣便捷;

Ø  安全要求高。

 

在高需求下,傳統倉庫必然麵臨著挑戰:數據量增長過快導致運行效率下降;數據集成代價大;無法處理多樣性的數據;數據挖掘等深度分析能力欠缺。基於這些特征,用戶該如何構建大數據倉庫?在阿裏雲的數據倉庫構建過程中,總結出了以下四個衡量標準:

 

Ø  穩定——數據產出穩定並有保障,維護係統的穩定性;

Ø  可信——數據幹淨,數據質量足夠高,帶來更高效的應用服務;

Ø  豐富——數據涵蓋的業務麵足夠廣泛;

Ø  透明——數據的構成體係要足夠透明,使得用戶放心。

 

一個完備的大數據倉庫應該具備海量的數據存儲及處理能力、多樣的編程接口和計算框架、豐富的數據采集通道、多種安全防護措施及監控等特征,所以在架構構建時需要遵循一定的設計準則:

 

Ø  自上而下+自下而上地設計,數據驅動和應用驅動整合;

Ø  在技術選型上注重高容錯性,保證係統穩定;

Ø  數據質量監控貫穿整個數據處理流程;

Ø  不怕數據冗餘,充分利用存儲交換易用,減少複雜度和計算量。

 

架構及模型設計

 

93c2fa36ea2daa9515cbafdd431ebe7613e5953c

 

一般來說,數據倉庫的構建需要經曆以上幾個過程。好的架構設計,在功能架構、數據架構、技術架構上,都能夠很好滿足需求:

 

a1b6b4cd2f78b3e4e78acd594969ee716346dcab

功能架構示例:結構層次清晰

b1c0a4e7f2dd508744de44babbc64a2e4ec7258d

數據架構示例:注重數據流向,數據質量有保障

7565c3bb25c68849cbab2e996bd53497c3769cf8

技術架構示例:易擴展、易用

 

構建數倉的首要任務就是模型設計,業界一般采用的建模方法有兩種:

 

Ø  維度建模:結構簡單;便於事實數據分析;適合業務分析報表和BI

Ø  實體建模:結構複雜;便於主題數據打通;適合複雜數據內容的深度挖掘。

 

用戶可以根據實際情況進行區分,而在實際數據倉庫中,星型模型和雪花模型是並存的,有利於數據應用和減少計算資源消耗。

 

在數據處理分層上,一般采用較多的是上下三層結構:

 

1a2938a69683e68c7583ed24485cbcff635f8a02

 

這樣設計是為了壓縮整體數據處理流程的長度,扁平化的數據處理流程有助於數據質量控製和數據運維;把流式處理作為數據體係的一部分,能夠更加關注數據的時效性,使得數據價值更高。

 

基礎數據層

 

9c5ad5aaaceb19b3a4050c1e09003f52cdc9e5c5

 

數據中間層

 

cabbece6afd4059d5f90f6d1679429e43cda2d6e

 

圍繞實體打通行為,能將數據源進行整合;從行為抽象關係,則是未來上層應用一個很重要的數據依賴。此外,冗餘是個好手段,能夠保證主題的完整性,提高數據易用性。

 

數據集市層

 

0385e4d6467123ab3ee80cdd8b3f6f80da5148d9

 

需求場景驅動的集市層建設,各集市之間是垂直構建的,需要能夠快速試錯,深度挖掘數據價值。

 

基於阿裏雲數加搭建大數據倉庫

 

基於阿裏雲數加搭建大數據倉庫的整個業務流程如下所示:

 

3f0cda26ec0bc641ce982462580e100d24f22227

 

阿裏雲的數加架構主要分為數據整合、數據體係、數據應用三個層次,如下圖:

 

0bc76d18e4ef5fce3eb6184cff3a9193b2e03f1b

 

結構化數據采集通常涉及到全量采集和增量采集。全量采集是整個數倉的數據初始化,將曆史數據快速地同步到計算平台;增量采集是初始化之後的數據同步。但在數據量巨大、增量數據同步資源消耗嚴重,或者後續的數據應用需要用到準實時數據的情況下,還會采用實時采集的方法,這種方法對采集端係統有一定的要求,而且采集質量最難控製。

 

事實上,日誌原始結構越規範,解析的成本越低。在日誌采集到平台之前,建議盡量不做結構化,後續再通過UDFMR計算框架實現日誌結構化。

 

數據倉庫與阿裏雲數加產品的對應關係

 

3d9e86c2112d3440caa1a585a1f9c2cfdf7cc0bd

 

離線數倉:MaxCompute數據共享的安全性

 

數倉的安全性是最為重要的話題。基於MaxCompute的多租戶數據授權模型,是安全性非常之高的數據共享機製,在數據流、訪問限製等方麵能夠有效防治。

 

9927f73e448e88dd9259e52f78e8e27353f891ea

 

架構設計中的一些最佳實踐

 

d19bc860df9870485f1ce33a21c271a3e3baaad1

數據表命名規範

a5822297f3dd72097075735cba1845dc9f3d47a7

分區表、工作流設計

fd91900ac97a83e97cc9e14e1c96f82c56e4cd37

計算框架應用、優化關鍵路徑

 

實際開發中的一些友好案例

 

e364f772e50d5cd7dd039910ef0781c531f7040a

 

7be5ffb8987e8a24921ce91401ad0cea099e5642

 

ffbcccea89e52d1d52eb6d38769fda1c7735c920

 

77740b641a593abcaff3787d93b578085438f1e7

 

用大數據治理大數據

 

數據治理分為保障機製、管理、內容建設幾個方麵,並且貫穿數據開發的整個過程:

 

fc216f6d98bb351daa2fe045c3171c2d9439d3e0

 

為了有效衡量數據治理的效果,阿裏雲使用的數據管理健康評估體係能夠正確認識數據管理的健康性,給出數據管理健康分。

 

291a7f9565b5d25eb69afe9a74fc572a1f3cc7e5

 

在數據治理過程中,比較重要的一點是重複數據治理。重複數據治理有多種表現:

 

Ø  相同源頭:重複拖取同一張表;

Ø  計算相似:讀取表相同且處理特征相似;

Ø  簡單加工:簡單轉換、裁剪後保存至新表;

Ø  同表同分區:數據保持不更新或業務已停止;

Ø  空跑表:運算結果數據持續為空;

Ø  命名相似:表名或字段名相似度較高;

Ø  特殊規則:通過已知業務規則識別。

 

數據質量管理體係

 

333ceb6e7b728403874dd5be0e12e1944fdca3fd

 

數據生命周期管理

 

a625f52495e99f59dffb3cea8eb8496c92b0bad1

 

總結:阿裏大數據實踐之路

 

b0a894c4c33738d88ccf3c2611ac2ed37e73003a


阿裏巴巴大數據-玩家社區 https://yq.aliyun.com/teams/6/

---阿裏大數據博文,問答,社群,實踐,有朋自遠方來,不亦說乎……

bba01b493e1c5d904e882b1c380673c6ebe49a98

最後更新:2017-08-23 11:02:37

  上一篇:go  安裝laravel踩過的坑:服務器上安裝的兩個版本php惹的禍
  下一篇:go  業務實時監控服務(ARMS)在票務係統的應用實踐