架构之数据架构
數(shù)據(jù)平臺進(jìn)化
實際上世界都是圍繞數(shù)據(jù)在轉(zhuǎn),只是計算機(jī)、網(wǎng)絡(luò)的出現(xiàn)讓數(shù)據(jù)虛擬化、可視化、持久化、通信化。以前寫信,現(xiàn)在社交軟件通信;以前各地同一樣商品價格差,需要人去傳播,現(xiàn)在各大電商平臺已把此種情況規(guī)避;以前的有紙化辦公,升級到現(xiàn)在的全面電子化辦公;包括當(dāng)前的AI、大數(shù)據(jù),即將的5G、物聯(lián)網(wǎng)等,純軟件領(lǐng)域、軟硬結(jié)合領(lǐng)域,所有都離不開數(shù)據(jù)的支撐,而數(shù)據(jù)的重要不言而喻。所以構(gòu)建數(shù)據(jù)平臺,對數(shù)據(jù)進(jìn)行集中處理,規(guī)避"數(shù)據(jù)孤島",讓數(shù)據(jù)實際價值落地,價值最大化,也顯得勢在必行。以下對各層面數(shù)據(jù)平臺做一次介紹。
1.傳統(tǒng)數(shù)據(jù)架構(gòu)
如圖1,最簡單的數(shù)據(jù)架構(gòu)就是只有業(yè)務(wù)數(shù)據(jù)庫,且所有業(yè)務(wù)表都在一個數(shù)據(jù)庫中,或者按需分成多個數(shù)據(jù)庫。沒有專門的統(tǒng)計分析表,頁面上顯示的統(tǒng)計分析數(shù)據(jù)都是從業(yè)務(wù)數(shù)據(jù)中讀取后計算出來的。一個數(shù)據(jù)庫服務(wù)器承擔(dān)所有增刪改查操作,對邏輯刪除的數(shù)據(jù)沒有分化處理。
圖1???????????????????????? ? ??????????????????????????? 圖2??????????????????????????????????????????????????????????????? 圖3
數(shù)據(jù)量越來越大,歷史業(yè)務(wù)數(shù)據(jù)增多,新業(yè)務(wù)數(shù)據(jù)激增,表結(jié)構(gòu)越來越復(fù)雜,查詢和寫入頻率升高,高頻寫和長時間讀沖突越來越嚴(yán)重。而數(shù)據(jù)分析又要耗費大量計算資源,總不能眼睜睜看著單臺數(shù)據(jù)服務(wù)器掛掉吧?引入備份數(shù)據(jù)庫:
①解決了單點故障問題
②單數(shù)據(jù)庫服務(wù)器性能問題
③實現(xiàn)簡單的讀寫分離,分擔(dān)數(shù)據(jù)庫壓力
④備份數(shù)據(jù)可做歷史冷數(shù)據(jù)分化
圖2面對簡單查詢還是可以的,但是在轉(zhuǎn)換聚合等需要多表關(guān)聯(lián)、以及大數(shù)據(jù)量等業(yè)務(wù)復(fù)雜度高的情況下,其處理性能就不容樂觀了。
面圖2無法解決的問題,圖3這種T+n的預(yù)處理離線計算的架構(gòu)就出現(xiàn)了,引入獨立的任務(wù)調(diào)度和計算引擎:計算壓力可以交給業(yè)務(wù)數(shù)據(jù)庫處理,也可交給ETL處理,結(jié)果數(shù)據(jù)庫中只保存已經(jīng)處理好的數(shù)據(jù),只負(fù)責(zé)讀的操作,展現(xiàn)性能初步解決。
但這種情況還有缺點:數(shù)據(jù)庫表結(jié)構(gòu)實在太過復(fù)雜,每做一個分析,業(yè)務(wù)數(shù)據(jù)庫就要理一次業(yè)務(wù)邏輯、寫一段sql,還沒法進(jìn)行歷史追溯,以及數(shù)據(jù)整理成果的復(fù)用。為了解決T+n計算架構(gòu)的問題,才有以下的升級版的數(shù)據(jù)架構(gòu)。
2.數(shù)據(jù)集市與數(shù)據(jù)倉庫
把業(yè)務(wù)庫數(shù)據(jù)整理成星型結(jié)構(gòu),保證了事實的積累和維度的追溯。自由選擇需要的維度和相關(guān)事實進(jìn)行篩選計算,再也不用擔(dān)心每次寫sql都要去看“蜘蛛網(wǎng)”了。還有索引、結(jié)果表、分區(qū)分表等等黑科技來保證每次查旬需掃描的數(shù)據(jù)量最小,解決數(shù)據(jù)庫性能問題。當(dāng)然這種架構(gòu)方式的缺點也很明顯,不是企業(yè)內(nèi)一致的數(shù)據(jù)(多系統(tǒng),多主題數(shù)據(jù)不一致),就會產(chǎn)生信息孤島。當(dāng)然,如果客戶企業(yè)就是很小,就一個系統(tǒng),不用整合,一個數(shù)據(jù)集市足以的情況下采用這種方式也可以。常見情況是會在各個獨立的DW間建立一些對照表,可實現(xiàn)數(shù)據(jù)交換。如果多個DW間沒有物理隔絕,也可以形成EDW。
為了實現(xiàn)各個業(yè)務(wù)系統(tǒng)取數(shù)分析,或者做更多操作,就實現(xiàn)中心數(shù)據(jù)倉庫EDW從各個源系統(tǒng)收集數(shù)據(jù),再將數(shù)據(jù)提供給各個數(shù)據(jù)集市和挖掘倉庫使用。這也被稱為企業(yè)信息工廠架構(gòu)(CIF),一般情況下,大型企業(yè)會花費許多精力實現(xiàn)這類架構(gòu)。
無論是以什么架構(gòu)存在,數(shù)據(jù)展示的需求都必不可少。分析工具選擇必不可少,要在以上階段以一款工具涵蓋,那必然需要一款既可以做敏捷數(shù)據(jù)集市建模,又可以做數(shù)據(jù)展示分析的工具來處理。這種工具可對業(yè)務(wù)數(shù)據(jù)進(jìn)行簡單、快速整合,實現(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è)務(wù)數(shù)據(jù)庫階段,此階段已經(jīng)陳述過,重點問題就是計算性能影響大,以及數(shù)據(jù)孤島問題。建立數(shù)倉的過程相對敏捷數(shù)據(jù)集市而言,時間還是久的。這個時候就看看建立個常規(guī)意義的數(shù)倉和數(shù)據(jù)展示需求誰更緊急啦,或者可能有的也沒建數(shù)據(jù)平臺的意識也說不準(zhǔn)。此時快速的數(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īng)時間要求較高的展示需求,多次作業(yè)同步可能帶來延遲影響。而FineBI的引擎擴(kuò)展了kettle的插件,實現(xiàn)數(shù)據(jù)可以直接load到引擎中,倒是將麻煩的作業(yè)處理工作解決了。
4.數(shù)據(jù)湖
所謂的數(shù)據(jù)湖就是通過原始數(shù)據(jù)分類存儲到不同的數(shù)據(jù)池,然后在各個數(shù)據(jù)池中將數(shù)據(jù)整合轉(zhuǎn)化為容易分析的統(tǒng)一存儲格式進(jìn)行存儲。這種方式極大的方便用戶對數(shù)據(jù)進(jìn)行分析和利用,從而產(chǎn)生經(jīng)濟(jì)效益。
數(shù)據(jù)池主要是用來存放數(shù)據(jù)的,一個數(shù)據(jù)池中主要包含這幾種數(shù)據(jù):
1、原始數(shù)據(jù)池
原始數(shù)據(jù)池是單一數(shù)據(jù)湖,它的作用就是存儲大量的原始數(shù)據(jù)。不會對其進(jìn)行任何處理,很難從中提取想要的數(shù)據(jù)并進(jìn)行使用。
2、模擬數(shù)據(jù)池
模擬數(shù)據(jù)池專門負(fù)責(zé)存放模擬數(shù)據(jù),它主要是由機(jī)械設(shè)備產(chǎn)生的數(shù)據(jù),一般為測量的數(shù)據(jù)、溫度、濕度等。一般情況下都存儲在記錄或者日志磁帶當(dāng)中。
3、應(yīng)用數(shù)據(jù)池
應(yīng)用數(shù)據(jù)主要是執(zhí)行一個應(yīng)用或者事務(wù)時產(chǎn)生的數(shù)據(jù),比如銷售數(shù)據(jù)、支付數(shù)據(jù)、制造過程控制數(shù)據(jù)等。這種數(shù)據(jù)池專門負(fù)責(zé)存放應(yīng)用數(shù)據(jù)。
4、文本數(shù)據(jù)池
文本數(shù)據(jù)池顧名思義是負(fù)責(zé)存放文本數(shù)據(jù)的,原始數(shù)據(jù)可能是一些不同來源、形式的文本數(shù)據(jù)。比如錄音、郵件,甚至是一些物理設(shè)備產(chǎn)生的數(shù)據(jù)。在此類數(shù)據(jù)池中,數(shù)據(jù)可以根據(jù)感情分類進(jìn)行存儲,在數(shù)據(jù)池中需要預(yù)先設(shè)定不同情感的類別,然后新文本進(jìn)入數(shù)據(jù)池時就會根據(jù)上下文語境確定情感色彩,找到相對應(yīng)的類別,進(jìn)行存儲。
5、文檔數(shù)據(jù)池
文檔數(shù)據(jù)池主要存儲來自應(yīng)用數(shù)據(jù)池、模擬數(shù)據(jù)池、文本數(shù)據(jù)池中將來使用較小概率的數(shù)據(jù)。
實現(xiàn)數(shù)據(jù)湖
數(shù)據(jù)湖實現(xiàn)的常用手段是Hadoop。
hadoop參照:
https://blog.csdn.net/qq_36632174/article/details/102461023
https://blog.csdn.net/qq_36632174/article/details/102461682
在經(jīng)過進(jìn)化之后,會將數(shù)據(jù)群與程序、運算規(guī)則、顯示器和歷史記錄聯(lián)系在一起,完成數(shù)據(jù)湖的目標(biāo)。數(shù)據(jù)湖把原始數(shù)據(jù)按照類別進(jìn)行存儲,在各數(shù)據(jù)池中可將數(shù)據(jù)轉(zhuǎn)化為統(tǒng)一的可直接提取的格式,這種方式具有極大的商業(yè)價值,對大數(shù)據(jù)分析做出了極大貢獻(xiàn)。
數(shù)據(jù)湖存在問題:數(shù)據(jù)湖中很多數(shù)據(jù)永遠(yuǎn)不會刪除,所需要的存儲空間架構(gòu)龐大。而且數(shù)據(jù)湖其中一個數(shù)據(jù)池遭到破壞,所有的數(shù)據(jù)都可能會被訪問,具有較大安全隱患。
數(shù)據(jù)湖架構(gòu)
解讀數(shù)據(jù)湖架構(gòu):
ODS(operational data store, staging area)存儲來自各業(yè)務(wù)系統(tǒng)(生產(chǎn)系統(tǒng))的原始數(shù)據(jù),即為數(shù)據(jù)湖。
CDM為經(jīng)過整合、清洗的數(shù)據(jù)。其中的DWS匯總層,為面向主題的數(shù)據(jù)倉庫(狹義),用于BI報表出數(shù)
簡單來說,數(shù)據(jù)湖的定義就是原始數(shù)據(jù)保存區(qū). 雖然這個概念國內(nèi)談的少,但絕大部分互聯(lián)網(wǎng)公司都已經(jīng)有了。國內(nèi)一般把整個HDFS叫做數(shù)倉(廣義),即存放所有數(shù)據(jù)的地方。
數(shù)據(jù)湖的意義、與數(shù)據(jù)倉庫區(qū)別
數(shù)據(jù)湖和數(shù)倉,就是原始數(shù)據(jù)和數(shù)倉模型的區(qū)別。因為數(shù)倉(狹義)中的表,主要是事實表-維度表(下圖),主要用于BI、出報表,和原始數(shù)據(jù)是不一樣的。
為什么要強(qiáng)調(diào)數(shù)據(jù)湖呢?真正的原因在于,數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)進(jìn)入主流了,需要用原始數(shù)據(jù)做分析,而數(shù)倉的維度模型則通常用于聚合。另一方面,機(jī)器學(xué)習(xí)用到的數(shù)據(jù),也不止于結(jié)構(gòu)化數(shù)據(jù)。用戶的評論、圖像這些非結(jié)構(gòu)化數(shù)據(jù),也都可以應(yīng)用到機(jī)器學(xué)習(xí)中。
二者區(qū)別對比表:
除了以上區(qū)別外,還有以下幾點區(qū)別:
傳統(tǒng)數(shù)倉的工作方式是集中式的:業(yè)務(wù)人員給需求到數(shù)據(jù)團(tuán)隊,數(shù)據(jù)團(tuán)隊根據(jù)要求加工、開發(fā)成維度表,供業(yè)務(wù)團(tuán)隊通過BI報表工具查詢。
數(shù)據(jù)湖是開放、自助式的(self-service):開放數(shù)據(jù)給所有人使用,數(shù)據(jù)團(tuán)隊更多是提供工具、環(huán)境供各業(yè)務(wù)團(tuán)隊使用(不過集中式的維度表建設(shè)還是需要的),業(yè)務(wù)團(tuán)隊進(jìn)行開發(fā)、分析。也就是組織架構(gòu)和分工的差別 —— 傳統(tǒng)企業(yè)的數(shù)據(jù)團(tuán)隊可能被當(dāng)做IT,整天要求提數(shù),而在新型的互聯(lián)網(wǎng)/科技團(tuán)隊,數(shù)據(jù)團(tuán)隊負(fù)責(zé)提供簡單易用的工具,業(yè)務(wù)部門直接進(jìn)行數(shù)據(jù)的使用。人人具備數(shù)據(jù)分析能力。
數(shù)據(jù)湖的意義
數(shù)據(jù)湖最大的意義,在于幫團(tuán)隊做組織架構(gòu)調(diào)整,鼓勵所有人了解、分析數(shù)據(jù),降低出數(shù)類等"IT"型工作。當(dāng)然,對傳統(tǒng)企業(yè)而言,也是引入機(jī)器學(xué)習(xí)、用戶畫像的必須基礎(chǔ)設(shè)施,。
數(shù)據(jù)湖面臨的挑戰(zhàn)
從傳統(tǒng)集中式的數(shù)倉轉(zhuǎn)為開放式的數(shù)據(jù)湖,并不簡單,會碰到許多問題:
1.數(shù)據(jù)發(fā)現(xiàn):如何幫助用戶發(fā)現(xiàn)數(shù)據(jù)、了解有哪些數(shù)據(jù)
2.數(shù)據(jù)安全:如果管理數(shù)據(jù)的權(quán)限和安全?因為一些數(shù)據(jù)是敏感的、或者不應(yīng)直接開放給所有人的(比如電話號碼、地址等)
3.數(shù)據(jù)管理:多個團(tuán)隊使用數(shù)據(jù),如何共享數(shù)據(jù)成果(比如畫像、特征、指標(biāo)),避免重復(fù)開發(fā)
這也是目前各大互聯(lián)網(wǎng)公司都在改進(jìn)的方向,比如,對于數(shù)據(jù)發(fā)現(xiàn),目前的解決方案就是Data catalog, 典型的比如IBM Watson catalog (算是對傳統(tǒng)元數(shù)據(jù)管理的改進(jìn)). 對于機(jī)器學(xué)習(xí)方面的數(shù)據(jù)管理,可以看Airbnb的機(jī)器學(xué)習(xí)平臺Bighead中的實踐。
總結(jié)
- 上一篇: 默认smtp虚拟服务器,轻松架设自己的S
- 下一篇: python rbf神经网络_RBF神经