大數(shù)據(jù)之路-阿里巴巴大數(shù)據(jù)實(shí)踐-個人理解

本書是阿里巴巴分享描述了按照其公司業(yè)務(wù)的一些大數(shù)據(jù)技術(shù)實(shí)施的方案,是阿里巴巴對大數(shù)據(jù)的認(rèn)知。其中也有很多值得學(xué)習(xí)的資料。

本書分為數(shù)據(jù)技術(shù)篇、數(shù)據(jù)模型篇、數(shù)據(jù)管理篇、數(shù)據(jù)應(yīng)用篇

1、數(shù)據(jù)技術(shù)篇涉及阿里面對各種數(shù)據(jù)使用需求時的技術(shù)應(yīng)對方案,其中包括日志采集、數(shù)據(jù)同步、離線數(shù)據(jù)開發(fā)及實(shí)時技術(shù)、數(shù)據(jù)服務(wù)、數(shù)據(jù)挖掘等大數(shù)據(jù)在技術(shù)平臺上的應(yīng)用。

2、數(shù)據(jù)模型篇涉及數(shù)據(jù)在平臺架構(gòu)的基礎(chǔ)上,合理組織和儲存數(shù)據(jù)。

3、數(shù)據(jù)管理篇涉及對元數(shù)據(jù)的管理,數(shù)據(jù)計算和存儲成本管理、數(shù)據(jù)質(zhì)量的管理

4、數(shù)據(jù)應(yīng)用涉及阿里巴巴的數(shù)據(jù)應(yīng)用平臺(生意參謀,內(nèi)部應(yīng)用)

本篇文章是基于數(shù)據(jù)模型的知識整理:

面對數(shù)據(jù)規(guī)模的快速擴(kuò)大,如何有序、有結(jié)構(gòu)的的分類組織和存儲數(shù)據(jù)是我們面臨的極大挑戰(zhàn)。

數(shù)據(jù)模型解決面對業(yè)務(wù)需求,如何有效的組織和存儲數(shù)據(jù)的問題,其強(qiáng)調(diào)數(shù)據(jù)的性能,成本、效率、質(zhì)量。(這4哥們都是相輔相成的。如何達(dá)到四者的平衡是數(shù)據(jù)模型的研究對象)

典型的數(shù)據(jù)倉庫模型:

1、ER模型

出發(fā)點(diǎn)是對數(shù)據(jù)的整合,對業(yè)務(wù)需求的抽象和總結(jié),整理出描述分析需求的主題。然后根據(jù)分析主題構(gòu)建適合的高層模型(描述主題和主題間關(guān)系的業(yè)務(wù)概括)、中層模型(細(xì)化高層模型的數(shù)據(jù)項)、物理模型(基于中層模型的基礎(chǔ)上,對數(shù)據(jù)進(jìn)行物理存儲)

ER模型最典型的應(yīng)用代表為金融業(yè)務(wù)的10大主題

2、維度模型

維度建模從分析決策的需求出發(fā)構(gòu)建模型,把分析需求拆解為維度和事實(shí),然后針對維度進(jìn)行數(shù)據(jù)建模

3、data vault模型

出發(fā)點(diǎn)也是為了數(shù)據(jù)整合,但加入了審計的思想,要保留數(shù)據(jù)的歷史性質(zhì),講求數(shù)據(jù)的可塑性。(對主維度也進(jìn)行了維度化,通過關(guān)系id找回數(shù)據(jù)記錄)

4、anchor模型

把data vault模型更一步極致化,基本把所有數(shù)據(jù)記錄成key-value化。

(個人理解:ER模型和維度模型都是專注與對數(shù)據(jù)的整合和規(guī)范,ER模型從需求分析出發(fā)規(guī)范數(shù)據(jù)從查閱層面的儲存,維度模型更多的關(guān)心是數(shù)據(jù)倉庫內(nèi)部的一種數(shù)據(jù)存儲機(jī)制。兩者其實(shí)互相不沖突,可以在數(shù)據(jù)倉庫實(shí)施中使用維度模型,在數(shù)據(jù)模型設(shè)計、數(shù)據(jù)集市實(shí)施時使用ER模型整合數(shù)據(jù)。阿里巴巴的數(shù)據(jù)模型也是使用維度模型為核型理念進(jìn)行模型方法論,在搭建數(shù)據(jù)整合及管理體系(onedata)時,使用的思想也符合ER模型的設(shè)計思想)

阿里巴巴數(shù)據(jù)模型層次為:

1、ODS操作數(shù)據(jù)層:數(shù)據(jù)同步、清洗、保存歷史

2、CDM公共維度模型層:

?? ? 1)、DWD明細(xì)數(shù)據(jù)層:面向業(yè)務(wù)過程建模,把維度退化到事實(shí)表中(減少事實(shí)表和維表的關(guān)聯(lián),提高明細(xì)數(shù)據(jù)表的易用性);生成事務(wù)型、周期性快照、累計快照的事實(shí)表

? ? 2)、DWS匯總數(shù)據(jù)層:面向分析主題建模,使用明細(xì)數(shù)據(jù)寬表,復(fù)用關(guān)聯(lián)計算,減少數(shù)據(jù)掃描;統(tǒng)一口徑,實(shí)現(xiàn)數(shù)據(jù)命名和算法的規(guī)范化;構(gòu)建一致性的維度,統(tǒng)一數(shù)據(jù)的計算口徑;

3、ADS應(yīng)用數(shù)據(jù)層:存放個性化(不公用,復(fù)雜性)的統(tǒng)計指標(biāo);基于個性化定制報表的應(yīng)用

構(gòu)建數(shù)據(jù)倉庫的基本原則:

1、高內(nèi)聚和低耦合:將業(yè)務(wù)相近或者相關(guān)、粒度相同的數(shù)據(jù)設(shè)計為一個邏輯或者物理模型;按照使用概率將數(shù)據(jù)進(jìn)行分開儲存

2、核心模型和擴(kuò)展模型分離:核心模型包括的字段支持最常用的業(yè)務(wù),保持核心模型的簡潔

3、公共處理邏輯下沉:對公用處理邏輯進(jìn)行提早下沉。

4、成本和性能的平衡:適當(dāng)?shù)娜哂嗄軗Q取查詢性能、不適宜過度冗余浪費(fèi)儲存成本

5、數(shù)據(jù)可回滾:支持?jǐn)?shù)據(jù)可以回滾

6、一致性:統(tǒng)一企業(yè)數(shù)據(jù)的口徑

7、命名清晰、可理解


阿里巴巴數(shù)據(jù)整合及管理體系(one data)

構(gòu)建數(shù)據(jù)模型,最重要的還是有一個統(tǒng)一、規(guī)范、可共享的體系。全公司以統(tǒng)一的方式、理解、分類、數(shù)據(jù),才能有更完善的可用的數(shù)據(jù)模型。

搭建數(shù)據(jù)整合管理體系的核心是:從業(yè)務(wù)架構(gòu)設(shè)計到模型和設(shè)計、從數(shù)據(jù)研發(fā)到數(shù)據(jù)服務(wù),做到數(shù)據(jù)可管理、可追溯、可規(guī)避重復(fù)建設(shè)。

阿里巴巴構(gòu)建的體系

1、業(yè)務(wù)板塊

根據(jù)業(yè)務(wù)屬性進(jìn)行板塊劃分,阿里巴巴業(yè)務(wù)板塊之間的指標(biāo)或業(yè)務(wù)重疊性比較小。? ??

2、規(guī)范定義

對數(shù)據(jù)模型建設(shè)中的數(shù)據(jù)域、業(yè)務(wù)過程、維度、度量、修飾類型、時間、指標(biāo)等進(jìn)行一一定義。

數(shù)據(jù)域:指面向業(yè)務(wù)分析,將業(yè)務(wù)過程或者維度進(jìn)行抽象的集合。

業(yè)務(wù)過程:指企業(yè)的業(yè)務(wù)活動事件

時間周期:用來明確數(shù)據(jù)統(tǒng)計的時間范圍或者時間點(diǎn)

修飾類型:修飾類型屬于某個業(yè)務(wù)域,用于描述修飾詞

修飾詞:除了維度意外用于具象指標(biāo)的定義

度量、原子指標(biāo):基于某一業(yè)務(wù)事件行為下的度量。不可再拆分

維度:維度是度量的環(huán)境

維度屬性:用于描述維度

派生指標(biāo):派生指標(biāo)=原子指標(biāo)+多個修飾詞+時間周期

指標(biāo)體系:阿里巴巴有一套成熟的指標(biāo)命名規(guī)范

模型實(shí)施過程

業(yè)務(wù)調(diào)研和需求分析做得是否充分直接決定了數(shù)據(jù)倉庫建設(shè)是否成功

實(shí)施工作流包括:1、數(shù)據(jù)調(diào)研(包括業(yè)務(wù)調(diào)研與需求調(diào)研,簡單理解就是分析現(xiàn)有的業(yè)務(wù)流程、分析需求、行業(yè)要求)2、架構(gòu)設(shè)計(數(shù)據(jù)區(qū)域劃分和構(gòu)建總線矩陣,根據(jù)分析需求做業(yè)務(wù)板塊的劃分,構(gòu)建指標(biāo)維度關(guān)系表,清晰分析過程)

維度設(shè)計

確定維度屬性及維度之間的關(guān)聯(lián)關(guān)系,找到業(yè)務(wù)源系統(tǒng)中的主維度表,然后梳理各系統(tǒng)之間的維度關(guān)系和維度屬性

維度處理的主要原則:

1、盡可能生成豐富的維度屬性

2、盡可能多的給出包括一些富有意義的文字屬性

3、區(qū)分?jǐn)?shù)值型屬性和事實(shí)

4、盡量沉淀出通用的維度屬性

維度擁有層次結(jié)構(gòu),當(dāng)維度有鉆取功能時,可以設(shè)計反規(guī)范化的維度表進(jìn)行儲存(分析系統(tǒng)的主要目的是用于數(shù)據(jù)的分析和統(tǒng)計,如何更方便用戶進(jìn)行統(tǒng)計分析決定了分析系統(tǒng)的優(yōu)劣)維度采用雪花模型進(jìn)行設(shè)計在統(tǒng)計分析時需要大量的關(guān)聯(lián)操作,使用復(fù)雜性高,查詢性能差。采用反規(guī)范化的設(shè)計則方便易用且性能較好。

一致性維度

? ? 數(shù)據(jù)倉庫總線架構(gòu)的重要基石之一就是一致性維度。在數(shù)據(jù)倉庫中使用多個指標(biāo)進(jìn)行交互是要注意維度是否完全一致。

維度整合

????垂直整合:將多個源系統(tǒng)的維度數(shù)據(jù)整合到一個維度表

????水平整合:使用關(guān)聯(lián)鍵進(jìn)行維度組合(數(shù)據(jù)沖突的情況,建議使用)

維度拆分:

? ? 拆分原則:擴(kuò)展性、效能、易用性

? ? 水平拆分:按照維度的不同分類或維度的業(yè)務(wù)關(guān)聯(lián)程度作為拆分依據(jù),可將維度進(jìn)行水平拆分

? ? 垂直拆分:當(dāng)有維度屬性產(chǎn)出時間有差異,熱度高度不同等,可以構(gòu)建垂直拆分

????歷史歸檔:

????????????1、同前臺歸檔策略,在數(shù)據(jù)倉庫中實(shí)現(xiàn)前臺歸檔算法

? ? ? ? ? ? 2、同前臺歸檔策略,但采用數(shù)據(jù)庫變更日志的方式

? ? ? ? ? ? 3、數(shù)據(jù)倉庫自定義歸檔策略。

維度變化:

? ? 緩慢變化維度:

? ? ? ? 1、插入新的維度行,對新增、修改的維度進(jìn)行新記錄的形式進(jìn)行保存。

? ? ? ? 2、添加維度列,在維度設(shè)計中增加一列保存維度的變化情況,優(yōu)點(diǎn)是方便把維度歸于舊值或新值計算

? ? ????3、快照維度:直接快照記錄每天的維度情況。優(yōu)點(diǎn):簡單有效,開發(fā)和維護(hù)成本低;使用方便,理解性好。缺點(diǎn):浪費(fèi)存儲

? ? 極限儲存:做緩慢變化時的歷史拉鏈一般用分區(qū)來記錄start_dt,end_dt。隨著時間的遷移,分區(qū)數(shù)量會越來越多。使用極限儲存的辦法是每月月初重新開始做歷史拉鏈表;每月1號做全量的數(shù)據(jù),月內(nèi)剩下的每個日子存儲上一天的變化情況。

? ? 微型維度:把維度進(jìn)行組合,對組合值進(jìn)行枚舉以建立維度。

特殊維度:

? ? 遞歸層次:當(dāng)維度擁有層次等級,可以建立遞歸的層次結(jié)構(gòu)建立維度。

? ? 行為維度:? 通過后臺算法計算得到的一些維度(如賣家主營業(yè)務(wù)的維度),按照行為維度的計算頻率,邏輯復(fù)雜性確定維度的設(shè)計方式(冗余至現(xiàn)有維度或者單獨(dú)加工生成維度)

????多值維度:同一個事實(shí)表需要多次調(diào)用同一個維度。(1、可以降低事實(shí)表粒度,把事實(shí)分?jǐn)偟骄S度的方式;2、事實(shí)表采用多維度;3、橋接表的形式記錄維度(使用橋接表記錄事實(shí)表中使用了的維度,并在橋接表中記錄對應(yīng)的維度信息))

????雜項維度:事實(shí)表中有些字段只是含有某種說明性需求,存放在事實(shí)表,或者生成維度保存都不妥當(dāng),則可以建立雜項維度,把這些字段建立到一個維度表中,通過外鍵進(jìn)行關(guān)聯(lián)。


事實(shí)表設(shè)計:

? ? 事實(shí)表類型:1、事務(wù)事實(shí)表;2、周期快照事實(shí)表;3、累計快照事實(shí)表;

事實(shí)表設(shè)計原則:

? ? 1、盡可能包含所有與業(yè)務(wù)過程相關(guān)的事實(shí):

????2、選擇對應(yīng)的業(yè)務(wù)過程建立事實(shí)表,并確保事實(shí)只與業(yè)務(wù)過程相關(guān);

? ? 3、對于可加性事實(shí)進(jìn)行分解(比如訂單優(yōu)惠率分解為訂單原價金額,訂單優(yōu)惠金額)

? ? 4、在選擇維度和事實(shí)之前必須先聲明粒度

? ? 5、在同一個事實(shí)表中不能有多種不同的粒度

? ? 6、保持事實(shí)單位的一致性

? ? 7、處理事實(shí)數(shù)據(jù)中的null值

? ? 8、退化維度到事實(shí)表,提高事實(shí)表的易用性

????9、父子事實(shí)的結(jié)構(gòu)處理進(jìn)行父度量分?jǐn)偟阶佣攘康牟僮?/p>

事實(shí)表設(shè)計實(shí)施方法:

? ? 1、選擇業(yè)務(wù)過程及確定事實(shí)表類型(針對需要分析的需求,從業(yè)務(wù)流中對業(yè)務(wù)過程進(jìn)行篩選)

? ? 2、聲明粒度(精確定義事實(shí)表的每一行的業(yè)務(wù)含義,確定主鍵,粒度應(yīng)該選擇最細(xì)力度的級別,方便滿足各項需求)

? ? 3、確定維度(選擇能夠清楚描述業(yè)務(wù)過程所處的環(huán)境的維度信息)

? ? 4、確定事實(shí)(選擇與業(yè)務(wù)過程有關(guān)的所有事實(shí),對事實(shí)區(qū)分可加性,半可加性,非可加性,)

? ? 6、冗余維度(對事實(shí)表進(jìn)行維度退化處理)

事務(wù)事實(shí)表:

????單事務(wù)事實(shí)表:單個業(yè)務(wù)過程使用單個事實(shí)表進(jìn)行記錄

????多事務(wù)事實(shí)表:把多個業(yè)務(wù)過程記錄到同一張事實(shí)表中

? ? 對比:多事務(wù)事實(shí)表能有效減少計算儲存成本,但會造成度量數(shù)據(jù)的大量冗余,并增加下游業(yè)務(wù)使用的理解難度。并且有一定的使用要求(同一個粒度,一致維度)

? ? 設(shè)計原則:1、業(yè)務(wù)過程包含完整性;2、維度度量數(shù)據(jù)的一致性(確保度量單位統(tǒng)一,數(shù)據(jù)分?jǐn)倻?zhǔn)確);3、事實(shí)可加性需要對度量進(jìn)行分?jǐn)?/p>

周期快照表:

? ? 對確定的時間間隔內(nèi)進(jìn)行度量的計算,這樣很容易得出實(shí)體度量值,而不需要聚集長期的事務(wù)歷史

特性:

? ? 1、使用快照采樣狀態(tài)(以預(yù)定的間隔采樣狀態(tài)度量)

? ? 2、快照粒度,計算快照的粒度范圍

? ? 3、密度和稀疏性,(周期快照表需要定時記錄數(shù)據(jù))

? ? 4、半可加性(注意度量的匯總)

? ? 事務(wù)與快照應(yīng)成對設(shè)計,設(shè)計事務(wù)數(shù)據(jù)的時候應(yīng)設(shè)計快照數(shù)據(jù)。

? ? 可在快照事實(shí)表中多放置事實(shí)狀態(tài),避免事實(shí)表的重復(fù)應(yīng)用

? ? 考慮多周期的事實(shí)度量

累積快照表:

????用于計算保存發(fā)生事件的時間隔間的需求。

特性:

? ? 1、數(shù)據(jù)不斷更新(數(shù)據(jù)必須進(jìn)行每天不斷更新,記錄每個業(yè)務(wù)日期的時間,并保證更新正確)

? ? 2、多業(yè)務(wù)過程日期(一個業(yè)務(wù)流里面記錄多個業(yè)務(wù)過程)

物理實(shí)現(xiàn):

? ? 1、全量表形式,每天的分區(qū)存儲昨天的全量數(shù)據(jù)和當(dāng)天的增量數(shù)據(jù)合并結(jié)果。使用全量數(shù)據(jù)較少的情況

? ? 2、全量表變化,分區(qū)保存最近產(chǎn)生N天的數(shù)據(jù),其余數(shù)據(jù)做歸檔。需要保存多天的數(shù)據(jù),數(shù)據(jù)量較大,存儲消耗較大

? ? 3、以業(yè)務(wù)實(shí)體的結(jié)束時間分區(qū),每天的分區(qū)存放當(dāng)天結(jié)束的數(shù)據(jù)。并設(shè)計一個分區(qū)放置歸檔數(shù)據(jù)存放截至當(dāng)前未結(jié)束的數(shù)據(jù)。

無事實(shí)的事實(shí)表

? ? 1、記錄一些事件類的事實(shí),如日志信息;2、記錄條件,范圍或資格類的信息

公共匯總層:

? ? 聚集型事實(shí)表,通過對維度的匯總實(shí)現(xiàn)初步計算,能有效減少數(shù)據(jù)的查詢性能。

原則:

? ? 一致性:確保聚集表中的維度和度量與原始模型的維度和度量是一致的

? ? 避免單一表設(shè)計:為減少用戶的誤用統(tǒng)計口徑的幾率,每列應(yīng)為單一的數(shù)據(jù)應(yīng)用。(篩選條件越復(fù)雜人們誤用率越大)

? ? 聚集粒度可不同:聚集可按照日常最基本的使用進(jìn)行匯總

? ? 數(shù)據(jù)的公用性:盡量考慮多個數(shù)據(jù)應(yīng)用場景,把需要經(jīng)常分析的維度都考慮進(jìn)去

? ? 不跨數(shù)據(jù)域:數(shù)據(jù)域是在較高層次上對數(shù)據(jù)進(jìn)行分類聚集的抽象,數(shù)據(jù)聚集不需要跨數(shù)據(jù)域進(jìn)行匯總。

? ? 區(qū)分統(tǒng)計周期:在表的命名上區(qū)分?jǐn)?shù)據(jù)的統(tǒng)計周期

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

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

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