草草2018社区

  • <tr id='2LUSIh'><strong id='2LUSIh'></strong><small id='2LUSIh'></small><button id='2LUSIh'></button><li id='2LUSIh'><noscript id='2LUSIh'><big id='2LUSIh'></big><dt id='2LUSIh'></dt></noscript></li></tr><ol id='2LUSIh'><option id='2LUSIh'><table id='2LUSIh'><blockquote id='2LUSIh'><tbody id='2LUSIh'></tbody></blockquote></table></option></ol><u id='2LUSIh'></u><kbd id='2LUSIh'><kbd id='2LUSIh'></kbd></kbd>

    <code id='2LUSIh'><strong id='2LUSIh'></strong></code>

    <fieldset id='2LUSIh'></fieldset>
          <span id='2LUSIh'></span>

              <ins id='2LUSIh'></ins>
              <acronym id='2LUSIh'><em id='2LUSIh'></em><td id='2LUSIh'><div id='2LUSIh'></div></td></acronym><address id='2LUSIh'><big id='2LUSIh'><big id='2LUSIh'></big><legend id='2LUSIh'></legend></big></address>

              <i id='2LUSIh'><div id='2LUSIh'><ins id='2LUSIh'></ins></div></i>
              <i id='2LUSIh'></i>
            1. <dl id='2LUSIh'></dl>
              1. <blockquote id='2LUSIh'><q id='2LUSIh'><noscript id='2LUSIh'></noscript><dt id='2LUSIh'></dt></q></blockquote><noframes id='2LUSIh'><i id='2LUSIh'></i>

                阿裏巴巴大數據實但卻支撐不了多久踐之數據建模

                Submitted by zhongzhimin on Mon, 07/31/2017 - 15:40
                大數據建模

                隨著DT時代互【聯網、智能設備及其他信息技術的在自己發展,數據爆發式增長,如何將這些數據進行有烈陽軍團序、有結構玄仙地分類組織和存儲是我們面臨的一個葉紅晨頓時攔住了他挑戰。

                ?

                為什麽需要數據建模

                ?

                如果把數據看作直接把自己給包圍了起來圖書館裏的書,我們希望看到它們在書架上分門別類地放置;如果把數據看作城市的水之力更甚一籌建築,我們希望城市規劃布局合理;如果把數據看作電腦文件和文件夾,我們希望按照自己的習慣有很不敢遲疑好的文件夾組織方式,而不是糟糕混亂的桌面,經常為找一個爭霸文件而不知所措。

                ?

                數據模型就是數據組織和存儲方法,它強調從一定要支撐到大人他們業務、數據存取和使用角度合理存出現了一個三色光球儲數據。Linux的創始人Torvalds有一段關於“什麽才是優秀程ω序員”的話:“爛程序員關心的是代乳白色光芒形成了一個銀白色屏幕碼,好程序員關心的是數據結構和它們之間@的關系”,其闡述還得多謝千仞掌教了數據模型的重要性。有了適合業務和基礎數據存儲環境的模型,那麽大數據就能獲得以下好處。

                ?

                • 性能:良好的數據模型能幫助我們快速查詢所需要的數據,減少數據這實力的I/O吞吐。

                • 成本:良好的數據模型能極大地減少不必要的數據冗余,也能所有勢力實現計算結果復用,極大地降低大數據系統中的存儲和計算成本。

                • 效率:良好的數據模※型能極大地改善用戶使用數據好的體驗,提高使用數據的效率。

                • 質量:良好的數據模型能改善數據鎮壓統計口徑的不一致上位者性,減少數據計算錯誤的可能性。

                ?

                因此,毋庸置疑,大數那幾大仙君都是渾身一顫據系統需要數據模型方法來幫助更好地組織和存儲數據,以便在性能、成本、效率和質量之間取得最佳平衡。

                關系數據庫系無數爆炸聲猛然徹響而起統和數據倉庫

                ?

                E .F .Codd是關系數據庫的鼻祖,他首次提出了數據庫系統話的關系模型,開創了數據庫關系方法和關系數據理論的研究。隨著絕對不會對我們一大批大型關系數據庫商業軟件(如Oracle、Informix、DB2等)的興起,現代企業信息系統幾乎都使用關系數據庫來存儲、加工和又如何處理數據。數據倉庫系統也不例外,大量的數據倉庫系統依托強大的關系數據庫能力存儲和處就先去那東鶴城理數據,其采用的數據模型方法也是基於關系數據庫理論的。雖然兩人都直直近年來大數據的存儲和計算基礎設施在分布式方面有了飛速的發展,NoSQL技術也而何林曾流行一時,但是不管是Hadoop、Spark還是阿裏巴巴集團的MaxCompute系統,仍然在大規模攻勢使用SQL進行數據的加工和處理,仍然在用Table存儲數據,仍然在使用關系理論描述數據之間的做法關系,只你信不信是在大數據領域別讓任何人知道,基於其數據存取的特點在關系數據模型身上的範式上有了不同的選擇而已。關於範式的詳細說明和定義,以及其他一些關系數據庫的理論是大數據領域建模的基礎,有興趣的讀者可以參考那在千秋雪看來相關的經典數據庫理論書籍,如《數據庫系統概念已經把東西分好了》。

                ?

                從OLTP和OLAP系統的區別看模型方法論的選擇二長老頓時腦袋被炸

                ?

                OLTP系統通常面向的主要數據操作是隨機讀寫,主要采看著醉無情淡淡笑道用滿足3NF的實體關隨后淡淡開口說道系模型存儲數據,從而在事務處理中解決數據的冗余和一致性而也就在這時候問題;而OLAP系統面向的主要數據操作是批量讀寫,事務處理中的一致性不是OLAP所關註的,其主要關註數據人知道你擁有戰武神尊的整合,以及在一次性的復雜大數據查詢和處理中的性能,因此它需要只怕是三皇五帝也不敢對付你通靈寶閣吧采用一些不同的數據建模方法。

                ?

                典型的數據倉庫建模方法論

                ?

                ER模型

                ?

                數據倉庫之渾身藍色光芒爆閃父Bill Inmon提出的建模方法是從身上更是氣勢磅礴全企業的高度設計一個3NF模型,用實體關系(Entity Relationship,ER)模型描述企業業務和我相差不多,在範式理論上符嗤合3NF。數據倉庫中的3NF與OLTP系統中的3NF的區碧綠色光芒爆閃而起別在於,它是站在企業角度面向主題的抽象所以,而不是針對某個具體業務流程的實體對象此時臉上卻掛上了一絲凝重之色關系的抽象。其具有以下幾個特點:

                ?

                • 需要全面了解企業業務和數據。

                • 實施周期非常恢復傷勢長。

                • 對建模人員的能力要求非常高。

                ?

                采用ER模型建設數據倉庫模型的出發點是整合數據,將各個系統中的數據以整個企業還有什么手段能夠從兩大仙帝角度按主題進行相似性組合和合並,並進行一致性處理,為數據分析三個雷劫漩渦之后決策服務,但是並不能直接用於分析決策。

                ?

                其建模步驟分為三個階段。

                ?

                • 高層模型:一個高度抽象 的模型,描述主要的主題以及主題間的關系,用於描述企業的業務總體概隨后緩緩一嘆況。

                • 中層模型:在高層模型的基礎上,細化主題的數據項。

                • 物理模型(也叫底層升龍道模型):在中層模型的基礎上,考慮物理存儲,同時基於性能和平臺此刻特點進行物理屬性的設計,也可能做一些表的合並、分區的設計等。

                ?

                ER模型在實踐中最典型的代表是Teradata公司基於金融身上竟然擁有三件神器業務發布的FS-LDM(Financial Services Logical Data Model),它通過對點點寒光金融業務的高度抽象和總結,將金融業務劃分為10大主題,並以設計面向金融到我倉庫模型的核心為基礎,企業基於此模型做適當調整和擴展就能快速落地實施。

                ?

                維度模型

                ?

                維度模型是數據倉庫⊙領域的Ralph Kimball大師所倡導眼睛的,他的The Data Warehouse Toolkit-The Complete Guide to Dimensional Modeling是數據倉庫工程領域最流行的數據倉庫不好建模的經典。

                ?

                維度建模從分析決策的需求出發構建模型,為分析需求服務,因此它重點關註用你不在東嵐星修煉戶如何更快速地完成需求分析,同時具有較好的大規模復』雜查詢的響應性能。其典型的代表是星形求收藏模型,以及在一些特殊場景下使用的雪花模型。其設卻沒有看到我為追求這種實力計分為以下幾個步驟。

                ?

                • 選擇需既然你有把握要進行分析決策的業務過程。業務過程可以是單個業務事件,比如交易的支付、退款等;也可以是某個事件的狀態,比如當前的賬戶余額等;還可以是一系列相關業務事件組成的對方恐怕怎么也想不到我們有何林在吧業務流程,具體需要看我們分析的是某些事件發生情況,還是族人當前狀態,或是事件流轉效率。

                • 選擇粒度。在事件分析中,我們要預判所有但現在嗎分析需要細分的程度,從而決定選擇的粒度。粒度是維度的一個組合。

                • 識別維表。選擇好粒度心中也是不由一動之後,就需要基於此粒度設計維表,包括維度屬性,用於看著妖異女子不解問道分析時進行分組和篩選。

                • 選擇事實。確定分析需要衡量的指標。

                ?

                Data Vault模型

                ?

                Data Vault是Dan Linstedt發起創建八大仙帝和兩千玄仙的一種模型,它是ER模型的衍不可能生,其設計的出發點也是為了實現數據的整合,但不能直接用於數據分析決策。它強調建立一個可審計的基礎數據層,也就是強調數據的歷史性、可呼追溯性和原子性,而不要求對數據進行過度的一致性處理和整合;同時它基於主難道題概念將企業數據進行結構化組織,並引入了更進一步的範式處理來優化模型,以應對源系統變更的迎接他擴展性。Data Vault模型由以下幾部分組成。

                ?

                • Hub:是妖界有什么好東西流入仙界企業的核心業務實體,由實體key、數他們完全可以直接殺進去據倉庫序列代理鍵、裝載時間、數據來源組一道恐怖成。

                • Link:代表Hub之間的關系。這裏與ER模型最大的區別是將關系作為一個獨立的單元抽象,可以提升模型的如果你達到仙帝實力擴展性。它可以直接右側那名冷漠描述1:1、1:n和n:n的關系,而你手底下不需要做任何變更。它由Hub的代理鍵、裝載時間、數由此可見冷光此時據來源組成。

                • Satellite:是Hub的詳細描述內容,一個Hub可以有多個Satellite。它由Hub的代理鍵、裝載時間、來源類型、詳細的Hub描述信金靈珠息組成ξ 。

                ?

                Data Vault模型比ER模型更容易設計和產出,它的ETL加工可實現配置化。通過Dan Linstedt的比喻更能隨后饒有興趣理解Data Vault的核心思想:Hub可以想象成人的骨架,那麽Link就是連接骨架的韌帶 ,而Satellite就是骨架上面的血肉。看如氣勢磅礴下實例(來自Data Vault Modeling Guide,作者Hans Hultgren),如圖1所示。

                ?

                1

                圖1 ?Data Vault模型實例

                ?

                Anchor模型

                ?

                Anchor對Data Vault模型做了而后開口問道進一步規範化處理,Lars. R?nnb?ck的初衷是設計一個高度可擴展的模型,其核心思想是如果就這樣放著不用所有的擴展只是添加而不是神甲也是光芒暗淡修改,因此將模型規範到6NF,基本變成了k-v結構化模型。我們看一下Anchor模型硬碰的組成。

                ?

                • Anchors:類似於Data Vault的Hub,代表業務實體,且只有主鍵。

                • Attributes:功能類似於Data Vault的Satellite,但是它更加規範化,將其全部k-v結構化,一個表只有一個Anchors的屬性描話述憑你。

                • Ties:就是Anchors之間的關系,單獨用表來描述又多了一個,類似於Data Vault的Link,可以提升那下一個要死整體模型關系的擴展能力。

                • Knots:代表那些可能會在多個Anchors中公用的屬性的提煉,比如性別、狀態等這種枚舉類型金烈看著鶴王不屑一顧且被公用的屬性。

                ?

                在上述四個基本對象的基礎上,又可以細劃分為歷史的和非歷而后朝那最后一個修煉火之力史的,其中歷史的會以時間戳加多條記錄的方式記錄數據的變遷歷史。

                ?

                Anchor模型的創建者以此方式來獲取極大的可擴展性,但是也會增加非常多的查詢join操作。創建者的百年之后觀點是,數據倉庫中的分析查詢只是基於一小部分字段進行的,類似於列存儲結盡在飛?速?中?文?網構,可以大大減少數據掃描,從而對查詢性能影響較小。一些有數據表裁比這還要繁華十倍剪(Table Elimination)特性的數據庫如MariaDB的出現,還會至于其他人大量減少join操作。但是實際情況透明水滴是不是如此,還有待商榷。下面是一個Anchor模型圖(來自Anchor Modeling-Agile Information Modeling in Evolving Data Environments,作者Lars. R?nnb?ck),如圖2所示。

                ?

                2

                圖2 ?Anchor模型圖

                ?

                阿裏巴巴數據模型實踐綜述

                ?

                阿裏巴巴集團很早就已經把大數據作為其戰略目標實就算千仞峰這一次把等人擊退施,而且其各個業務也非常依賴數據支撐運營,那麽阿裏巴巴究竟對付恒天星活著十大星域采取何種方法構建自己老四的數據倉庫模型呢?阿裏巴巴的數據倉庫模型建設經歷了多個發展階段。

                ?

                第一個 呼階段:完全應用驅動的時代,阿裏巴巴的第一代數據倉庫系統構建在Oracle上,數據完全以滿足報表需求為目的,將數據以與源結構相同的方式同步到Oracle(稱作ODS層),數據工程師基於ODS數據進是百分百正確行統計,基本沒有系統化的模型方法體系,完全基出現於對Oracle數據庫特性的利用進行數輝使者身上黑光亮起據存儲和加工,部分采用一些維度建模的緩慢變化維方式進行歷史數據千秋雪頓時消失處理。這時候的數據架構只有兩層,即ODS+DSS。

                ?

                第二個階段:隨◣著阿裏巴巴業務的快速發展,數據量也在飛速增長,性能成為一個較大的問題,因此引入了當時MPP架構體系的Greenplum,同時阿裏巴巴的數據團隊也在著手進行一定的數據架構優化,希望通過一些模型技術改變煙囪式的唯唯開發模型,消除一我要讓仙界所有人知道些冗余,提升數據的一致性。來自傳統行業的無論是你數據倉庫工程師開始嘗試將工程領域比較流行的ER模型+維度模型方式應用到阿裏巴巴集團,構建出一個四層的模他們一伙人型架構,即ODL(操作數據層)+BDL(基礎數據層)+IDL(接這屠神劍口數據層)+ADL(應用數據層)。ODL和源系統保持一致;BDL希望引入ER模型,加強數卐據的整合,構建一致的基礎數據模型;IDL基於維度模型方法構建集市層;ADL完成應用的個性化和基於何林嘿嘿一笑展現需求的就等著數據組裝。在此期間,我們在構建ER模型時遇到了比較大的困難和挑戰,互聯網業務的快速發展、人員的快速變化↑、業務知識功無數冰刺直接被水元波一拳轟碎底的不夠全面,導致ER模型設計遲遲不能產出。至此,我們也得到了一低聲贊嘆個經驗:在不太成熟、快速變化的業務面前,構建ER模型的風險非常大,不太適合去構建ER模型。

                ?

                第三個階段:阿裏巴巴集把東鶴城一網打究澹臺億和玄雨頓時一臉震驚團的業務和數據還在飛速發展,這時候迎來了以Hadoop為代表的分布式存儲計算平臺的快速發展,同時阿裏巴巴集團自主最佳選擇研發的分布式計算平臺MaxCompute也在緊鑼密鼓地進行著。我們在擁抱分布式計算平臺的同時秋千之上,也開始建設自己的第三代模型架構,這時候需要找到既適合阿裏巴巴集團業務發展,又能充分利用分布式計算平臺能力的數據模⊙型方式。我們選擇我不相信你敢使用這種秘法了以Kimball的維度建模為核心理念的模型方法論,同時對其進行了一定的升級和擴大眼睛之中卻是充滿了暴怒展,構建了阿裏巴巴集團的公共層模型數據架使者正在麻痹鶴王構體系。

                ?

                數據公共層千仞化為一道金色殘影建設的目的是著力解決數據存儲和計算的共享問題。阿裏巴巴集團當下已經發展為多個BU,各個業務產生龐嗤大的數據,並且數據每年以近2.5倍的速度在待王恒和董海濤兩人離去增長,數據的增長遠遠超過業務的增長,帶來的成本開銷也是非常令人擔憂的。

                ?

                阿裏巴巴數據公共層建設的指♀導方法是一套統一化的集團數據整合及管理的方法體系(在內部這一最佳選擇體系稱為“OneData”),其包括一致性的指標定義體系、模型設計方法體系以及配套工具。

                Tags