阿里巴巴大數(shù)據(jù)實(shí)踐:大數(shù)據(jù)建設(shè)方法論OneData

面對(duì)爆炸式增長的數(shù)據(jù),如何建設(shè)高效的數(shù)據(jù)模型和體系,對(duì)這些數(shù)據(jù)進(jìn)行有序和有結(jié)構(gòu)地分類組織和存儲(chǔ),避免重復(fù)建設(shè)和數(shù)據(jù)不一致性,保證數(shù)據(jù)的規(guī)范性,一直是大數(shù)據(jù)系統(tǒng)建設(shè)不斷追求的方向。

OneData即是阿里巴巴內(nèi)部進(jìn)行數(shù)據(jù)整合及管理的方法體系和工具。阿里巴巴的大數(shù)據(jù)工程師在這一體系下,構(gòu)建統(tǒng)一、規(guī)范、可共享的全域數(shù)據(jù)體系,避免數(shù)據(jù)的冗余和重復(fù)建設(shè),規(guī)避數(shù)據(jù)煙囪和不一致性,充分發(fā)揮阿里巴巴在大數(shù)據(jù)海量、多樣性方面的獨(dú)特優(yōu)勢(shì)。借助這一統(tǒng)一化數(shù)據(jù)整合及管理的方法體系,我們構(gòu)建了阿里巴巴的數(shù)據(jù)公共層,并可以幫助相似的大數(shù)據(jù)項(xiàng)目快速落地實(shí)現(xiàn)。下面重點(diǎn)介紹OneData體系和實(shí)施方法論。

1.定位及價(jià)值

阿里巴巴集團(tuán)大數(shù)據(jù)建設(shè)方法論的核心是:從業(yè)務(wù)架構(gòu)設(shè)計(jì)到模型設(shè)計(jì),從數(shù)據(jù)研發(fā)到數(shù)據(jù)服務(wù),做到數(shù)據(jù)可管理、可追溯、可規(guī)避重復(fù)建設(shè)。目前,阿里巴巴集團(tuán)數(shù)據(jù)公共層團(tuán)隊(duì)已把這套方法論沉淀為產(chǎn)品,以幫助數(shù)據(jù)PD、數(shù)據(jù)模型師和ETL工程師建設(shè)阿里的大數(shù)據(jù)。這一體系包含方法論以及相關(guān)產(chǎn)品。

建設(shè)統(tǒng)一的、規(guī)范化的數(shù)據(jù)接入層(ODS)和數(shù)據(jù)中間層(DWD和DWS),通過數(shù)據(jù)服務(wù)和數(shù)據(jù)產(chǎn)品,完成服務(wù)于阿里巴巴的大數(shù)據(jù)系統(tǒng)建設(shè),即數(shù)據(jù)公共層建設(shè)。提供標(biāo)準(zhǔn)化的(Standard)、共享的(Shared)、數(shù)據(jù)服務(wù)(Service)能力,降低數(shù)據(jù)互通成本,釋放計(jì)算、存儲(chǔ)、人力等資源,以消除業(yè)務(wù)和技術(shù)之痛。

2.體系架構(gòu)

圖片

體系架構(gòu)如圖。

業(yè)務(wù)板塊:由于阿里巴巴集團(tuán)業(yè)務(wù)生態(tài)龐大,所以根據(jù)業(yè)務(wù)的屬性劃分出幾個(gè)相對(duì)獨(dú)立的業(yè)務(wù)板塊,業(yè)務(wù)板塊之間的指標(biāo)或業(yè)務(wù)重疊性較小。如電商業(yè)務(wù)板塊涵蓋淘系、B2B系和AliExpress系等。

規(guī)范定義:阿里數(shù)據(jù)業(yè)務(wù)龐大,結(jié)合行業(yè)的數(shù)據(jù)倉庫建設(shè)經(jīng)驗(yàn)和阿里數(shù)據(jù)自身特點(diǎn),設(shè)計(jì)出的一套數(shù)據(jù)規(guī)范命名體系,規(guī)范定義將會(huì)被用在模型設(shè)計(jì)中。后面章節(jié)將會(huì)詳細(xì)說明。

模型設(shè)計(jì):以維度建模理論為基礎(chǔ),基于維度建模總線架構(gòu),構(gòu)建一致性的維度和事實(shí)(進(jìn)行規(guī)范定義)。同時(shí),在落地表模型時(shí),基于阿里自身業(yè)務(wù)特點(diǎn),設(shè)計(jì)出一套表規(guī)范命名體系。

3.模型設(shè)計(jì)

模型設(shè)計(jì)指導(dǎo)理論:阿里巴巴集團(tuán)數(shù)據(jù)公共層設(shè)計(jì)理念遵循維度建模思想,可參考Star Schema-The Complete Reference和The Data Warehouse Toolkit-The Definitive Guide to Dimensional Modeling。數(shù)據(jù)模型的維度設(shè)計(jì)主要以維度建模理論為基礎(chǔ),基于維度數(shù)據(jù)模型總線架構(gòu),構(gòu)建一致性的維度和事實(shí)。

模型層次:阿里巴巴的數(shù)據(jù)團(tuán)隊(duì)把表數(shù)據(jù)模型分為三層:操作數(shù)據(jù)層(ODS)、公共維度模型層(CDM)和應(yīng)用數(shù)據(jù)層(ADS),其中公共維度模型層包括明細(xì)數(shù)據(jù)層(DWD)和匯總數(shù)據(jù)層(DWS)。

操作數(shù)據(jù)層(ODS):把操作系統(tǒng)數(shù)據(jù)幾乎無處理地存放在數(shù)據(jù)倉庫系統(tǒng)中。

  • 同步:結(jié)構(gòu)化數(shù)據(jù)增量或全量同步到MaxCompute。

  • 結(jié)構(gòu)化:非結(jié)構(gòu)化(日志)結(jié)構(gòu)化處理并存儲(chǔ)到MaxCompute。

  • 累積歷史、清洗:根據(jù)數(shù)據(jù)業(yè)務(wù)需求及稽核和審計(jì)要求保存歷史數(shù)據(jù)、清洗數(shù)據(jù)。

公共維度模型層(CDM):存放明細(xì)事實(shí)數(shù)據(jù)、維表數(shù)據(jù)及公共指標(biāo)匯總數(shù)據(jù),其中明細(xì)事實(shí)數(shù)據(jù)、維表數(shù)據(jù)一般根據(jù)ODS層數(shù)據(jù)加工生成;公共指標(biāo)匯總數(shù)據(jù)一般根據(jù)維表數(shù)據(jù)和明細(xì)事實(shí)數(shù)據(jù)加工生成。

CDM層又細(xì)分為DWD層和DWS層,分別是明細(xì)數(shù)據(jù)層和匯總數(shù)據(jù)層,采用維度模型方法作為理論基礎(chǔ),更多地采用一些維度退化手法,將維度退化至事實(shí)表中,減少事實(shí)表和維表的關(guān)聯(lián),提高明細(xì)數(shù)據(jù)表的易用性;同時(shí)在匯總數(shù)據(jù)層,加強(qiáng)指標(biāo)的維度退化,采取更多的寬表化手段構(gòu)建公共指標(biāo)數(shù)據(jù)層,提升公共指標(biāo)的復(fù)用性,減少重復(fù)加工。其主要功能如下。

  • 組合相關(guān)和相似數(shù)據(jù):采用明細(xì)寬表,復(fù)用關(guān)聯(lián)計(jì)算,減少數(shù)據(jù)掃描。

  • 公共指標(biāo)統(tǒng)一加工:基于OneData體系構(gòu)建命名規(guī)范、口徑一致和算法統(tǒng)一的統(tǒng)計(jì)指標(biāo),為上層數(shù)據(jù)產(chǎn)品、應(yīng)用和服務(wù)提供公共指標(biāo);建立邏輯匯總寬表。

  • 建立一致性維度:建立一致的數(shù)據(jù)分析維表,降低數(shù)據(jù)計(jì)算口徑、算法不統(tǒng)一的風(fēng)險(xiǎn)。

應(yīng)用數(shù)據(jù)層(ADS):存放數(shù)據(jù)產(chǎn)品個(gè)性化的統(tǒng)計(jì)指標(biāo)數(shù)據(jù),根據(jù)CDM層與ODS層加工生成。

  • 個(gè)性化指標(biāo)加工:不公用性、復(fù)雜性(指數(shù)型、比值型、排名型指標(biāo))。

  • 基于應(yīng)用的數(shù)據(jù)組裝:大寬表集市、橫表轉(zhuǎn)縱表、趨勢(shì)指標(biāo)串。

阿里巴巴通過構(gòu)建全域的公共層數(shù)據(jù),極大地控制了數(shù)據(jù)規(guī)模的增長趨勢(shì),同時(shí)在整體的數(shù)據(jù)研發(fā)效率、成本節(jié)約、性能改進(jìn)方面都有不錯(cuò)的效果。

數(shù)據(jù)調(diào)用服務(wù)優(yōu)先使用公共維度模型層(CDM)數(shù)據(jù),當(dāng)公共層沒有數(shù)據(jù)時(shí),需評(píng)估是否需要?jiǎng)?chuàng)建公共層數(shù)據(jù),當(dāng)不需要建設(shè)公用的公共層時(shí),方可直接使用操作數(shù)據(jù)層(ODS)數(shù)據(jù)。應(yīng)用數(shù)據(jù)層(ADS)作為產(chǎn)品特有的個(gè)性化數(shù)據(jù)一般不對(duì)外提供數(shù)據(jù)服務(wù),但是ADS作為被服務(wù)方也需要遵守這個(gè)約定。

基本原則:

  • 高內(nèi)聚和低耦合——一個(gè)邏輯或者物理模型由哪些記錄和字段組成,應(yīng)該遵循最基本的軟件設(shè)計(jì)方法論的高內(nèi)聚和低耦合原則。主要從數(shù)據(jù)業(yè)務(wù)特性和訪問特性兩個(gè)角度來考慮:將業(yè)務(wù)相近或者相關(guān)、粒度相同的數(shù)據(jù)設(shè)計(jì)為一個(gè)邏輯或者物理模型;將高概率同時(shí)訪問的數(shù)據(jù)放一起,將低概率同時(shí)訪問的數(shù)據(jù)分開存儲(chǔ);

  • 核心模型與擴(kuò)展模型分離——建立核心模型與擴(kuò)展模型體系,核心模型包括的字段支持常用的核心業(yè)務(wù),擴(kuò)展模型包括的字段支持個(gè)性化或少量應(yīng)用的需要,不能讓擴(kuò)展模型的字段過度侵入核心模型,以免破壞核心模型的架構(gòu)簡潔性與可維護(hù)性。

  • 公共處理邏輯下沉及單一——越是底層公用的處理邏輯越應(yīng)該在數(shù)據(jù)調(diào)度依賴的底層進(jìn)行封裝與實(shí)現(xiàn),不要讓公用的處理邏輯暴露給應(yīng)用層實(shí)現(xiàn),不要讓公共邏輯多處同時(shí)存在。

  • 成本與性能平衡——適當(dāng)?shù)臄?shù)據(jù)冗余可換取查詢和刷新性能,不宜過度冗余與數(shù)據(jù)復(fù)制。

  • 數(shù)據(jù)可回滾——處理邏輯不變,在不同時(shí)間多次運(yùn)行數(shù)據(jù)結(jié)果確定不變。

  • 一致性——具有相同含義的字段在不同表中的命名必須相同,必須使用規(guī)范定義中的名稱。

  • 命名清晰、可理解——表命名需清晰、一致,表名需易于消費(fèi)者理解和使用。

如何從具體的需求或項(xiàng)目轉(zhuǎn)換為可實(shí)施的解決方案,如何進(jìn)行需求分析、架構(gòu)設(shè)計(jì)、詳細(xì)模型設(shè)計(jì)等,則是模型實(shí)施過程中討論的內(nèi)容。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容