┊文章閱讀:次
近期看到很多企業(yè)在設計自己的數(shù)據(jù)平臺,以及選型一些數(shù)據(jù)分析工具,正好拜讀了數(shù)據(jù)倉庫之父的《數(shù)據(jù)架構:大數(shù)據(jù)、數(shù)據(jù)倉庫以及Data Vault》一書,有些許感觸,就來聊一下個人思考吧。
首先從企業(yè)信息化發(fā)展階段時,數(shù)據(jù)平臺結構的程度來看。個人依照企業(yè)信息化,將數(shù)據(jù)平臺階段劃分為:只有業(yè)務數(shù)據(jù)庫——>中間庫——>完善數(shù)據(jù)倉庫(DW)——>數(shù)據(jù)集市(Data Mart),順序與階段并不絕對正確,可能有組合,可能所在階段不完全一致。以下先看各個數(shù)據(jù)平臺階段特點,再看對應階段數(shù)據(jù)分析工具選型的考慮吧。
1.業(yè)務數(shù)據(jù)庫
一個企業(yè)IT信息化建設最初的階段,業(yè)務庫中數(shù)據(jù)量不大,要分析展示下數(shù)據(jù)情況啦,不慌,問題不大,這時候OLTP結構下也可以寫寫SQL快速展現(xiàn),隨便玩玩office工具也沒問題。
但是隨著時間的推移,各種問題開始出現(xiàn):
(1)查詢和寫入頻率越來越高,高頻write和和長時間read沖突越來越嚴重。而數(shù)據(jù)分析要耗費大量計算資源,不能動不動掛業(yè)務系統(tǒng)吧。
(2)數(shù)據(jù)量越來越大,歷史業(yè)務數(shù)據(jù)啦,新業(yè)務數(shù)據(jù)激增啦,第一要務就是要解決業(yè)務應用效率問題了,誰管數(shù)據(jù)分析里的問題呢。
(3)業(yè)務越來越多,表結構越來越復雜。業(yè)務系統(tǒng)數(shù)量的越來越多,導致數(shù)據(jù)孤島開始形成。
這種情況下,企業(yè)面臨數(shù)據(jù)展示與數(shù)據(jù)平臺建設的階段了要怎么處理。這種情況下要做數(shù)據(jù)分析就麻煩了,要人為去各個系統(tǒng)取數(shù),人力是一個方面。各個系統(tǒng)口徑命名啥都有差異,人為的處理出錯率高就是另一方面。
2.中間庫
由于上述問題,就要引入中間庫來處理。左圖結構解決了高頻write和read沖突問題,以及單數(shù)據(jù)庫服務器性能問題,順手也搞定了數(shù)據(jù)備份。這種情況下呢簡單查詢還是可以的,但是在轉換聚合等需要多表關聯(lián)、以及大數(shù)據(jù)量等業(yè)務復雜度高的情況下,其處理性能就不容樂觀了。
此時就開始考慮可以利用空閑時間的服務器性能來做預先處理呢。右圖這種T+n的預處理離線計算的架構就出現(xiàn)了,引入獨立的任務調度和計算引擎:計算壓力可以交給數(shù)據(jù)庫處理,也可交給ETL處理,展現(xiàn)性能初步解決。
但是這種情況下,數(shù)據(jù)庫表結構實在太過復雜,每做一個分析,就要理一次業(yè)務邏輯、寫一段sql,還沒法進行歷史追溯,以及數(shù)據(jù)整理成果的復用,so sad。
那有沒有理一次之后,后續(xù)能夠省點事的方式呢?這時候數(shù)倉的概念就可以使用上了。
3.完善數(shù)據(jù)倉庫(DW)
把業(yè)務庫數(shù)據(jù)整理成星型結構,保證了事實的積累和維度的追溯。自由選擇需要的維度和相關事實進行篩選計算,麻麻再也不用擔心每次寫sql都要去看“蜘蛛網(wǎng)”了。還有索引、結果表、分區(qū)分表等等黑科技來保證每次查旬需掃描的數(shù)據(jù)量最小,解決數(shù)據(jù)庫性能問題。
當然這種架構方式的缺點也很明顯,不是企業(yè)內(nèi)一致的數(shù)據(jù)(多系統(tǒng),多主題數(shù)據(jù)不一致),就會產(chǎn)生信息孤島。當然,如果客戶企業(yè)就是很小,就一個系統(tǒng),不用整合,一個數(shù)據(jù)集市足以的情況下采用這種方式也可以。常見情況是會在各個獨立的DW間建立一些對照表,可實現(xiàn)數(shù)據(jù)交換。如果多個DW間沒有物理隔絕,也可以形成EDW。
4.完善數(shù)倉+數(shù)據(jù)集市(Data Mart)
為了實現(xiàn)各個業(yè)務系統(tǒng)取數(shù)分析,或者做更多操作,就實現(xiàn)中心數(shù)據(jù)倉庫EDW從各個源系統(tǒng)收集數(shù)據(jù),再將數(shù)據(jù)提供給各個數(shù)據(jù)集市和挖掘倉庫使用。這也被稱為企業(yè)信息工廠架構(CIF),一般情況下,大型企業(yè)會花費許多精力實現(xiàn)這類架構。
業(yè)務復雜度的提高與數(shù)據(jù)量級的增大以及對這些數(shù)據(jù)的應用,促成了各個大數(shù)據(jù)平臺的繁榮,這個放到另一篇文章陳述。
無論是以什么架構存在,數(shù)據(jù)展示的需求都必不可少。分析工具選擇必不可少,要在以上階段以一款工具涵蓋,那必然需要一款既可以做敏捷數(shù)據(jù)集市建模,又可以做數(shù)據(jù)展示分析的工具來處理。這種工具可對業(yè)務數(shù)據(jù)進行簡單、快速整合,實現(xiàn)敏捷建模節(jié)省時間,并且可以大幅度提升數(shù)據(jù)的展示速度,可對接前端的數(shù)據(jù)分析展示層,實現(xiàn)自由數(shù)據(jù)展示與OLAP分析,典型如各類BI分析工具。
數(shù)據(jù)分析也很考驗分析工具數(shù)據(jù)讀取、運算的性能,但擁有大數(shù)據(jù)量計算引擎的BI分析工具并不多。像FineBI與其高性能數(shù)據(jù)引擎在以上幾個階段均可在不同程度解決很多場景。
(1)業(yè)務數(shù)據(jù)庫階段,此階段已經(jīng)陳述過,重點問題就是計算性能影響大,以及數(shù)據(jù)孤島問題。建立數(shù)倉的過程相對敏捷數(shù)據(jù)集市而言,時間還是久的。這個時候就看看建立個常規(guī)意義的數(shù)倉和數(shù)據(jù)展示需求誰更緊急啦,或者可能有的也沒建數(shù)據(jù)平臺的意識也說不準。此時快速的數(shù)據(jù)展示需求,就可以通過將數(shù)據(jù)放到FineBI的數(shù)據(jù)引擎中支撐實現(xiàn)。
(2)中間庫與完善數(shù)倉階段,此階段其實主要就是計算性能問題了,用戶的數(shù)據(jù)量級也一定挺大了。正好借助于FineBI的分布式引擎,完成數(shù)據(jù)加速計算工作。此引擎屬hadoop生態(tài),核心計算引擎利用的spark,借助了alluxio作為內(nèi)存加速計算,處理了大數(shù)據(jù)計算問題,也很好闡釋了“大數(shù)據(jù)”。這個在接下來的文章中也會說到,這里先埋個伏筆,暫不贅述。
此階段呢,肯定有一些響應時間要求較高的展示需求,多次作業(yè)同步可能帶來延遲影響。而FineBI的引擎擴展了kettle的插件,實現(xiàn)數(shù)據(jù)可以直接load到引擎中,倒是將麻煩的作業(yè)處理工作解決了。
(3)完善數(shù)倉+數(shù)據(jù)集市階段,這種階段數(shù)據(jù)平臺建設已經(jīng)很完善了,各業(yè)務部門數(shù)據(jù)量級,業(yè)務復雜度都很高。
底層技術上雖然數(shù)據(jù)集市是建立在集成的中心數(shù)據(jù)倉庫EDW上,但是這些數(shù)據(jù)集市之間還是不能進行數(shù)據(jù)交換的,大家建立的方法和ETL程序都會不同,各個數(shù)據(jù)集市之間的數(shù)據(jù)不見得的是一致,且平臺架構超級復雜,擴展以及再為各業(yè)務部門設計計算層結果表之類都相對麻煩。此時可考慮部分需整合數(shù)據(jù)放到敏捷數(shù)據(jù)集市處理,可直接對接的再直接對接處理。FineBI的引擎恰好都滿足這樣的場景需求,前端OLAP分析恰好也有,簡單處理整合展示一站式解決。
在不久的將來,多智時代一定會徹底走入我們的生活,有興趣入行未來前沿產(chǎn)業(yè)的朋友,可以收藏多智時代,及時獲取人工智能、大數(shù)據(jù)、云計算和物聯(lián)網(wǎng)的入門知識和資訊信息,讓我們一起攜手,引領人工智能的未來
Copyright @ 2013-2018 中國福建網(wǎng) 版權所有
聯(lián)系我們
免責聲明:本站為非營利性網(wǎng)站,部分圖片或文章來源于互聯(lián)網(wǎng)如果無意中對您的權益構成了侵犯,我們深表歉意,請您聯(lián)系,我們立即刪除。