10年大數(shù)據(jù)平臺(tái)經(jīng)驗(yàn),總結(jié)出這份數(shù)據(jù)建設(shè)干貨(內(nèi)含多張架構(gòu)圖)
在業(yè)務(wù)增長(zhǎng)過(guò)程中,每個(gè)企業(yè)不知不覺(jué)積累積累了一些數(shù)據(jù)。無(wú)論數(shù)據(jù)是多是少,企業(yè)都希望讓“數(shù)據(jù)說(shuō)話”,通過(guò)對(duì)數(shù)據(jù)的采集、存儲(chǔ)、分析、計(jì)算最終提供對(duì)業(yè)務(wù)有價(jià)值信息。
由此,大數(shù)據(jù)平臺(tái)、數(shù)據(jù)中臺(tái)等新鮮的概念就真的落地了,其實(shí)數(shù)據(jù)類的概念都是相同的:報(bào)表、BI、數(shù)據(jù)倉(cāng)庫(kù)...少了一個(gè)都玩不轉(zhuǎn),只有每一個(gè)都做到極致,企業(yè)的數(shù)據(jù)價(jià)值才能得到提高。
先來(lái)說(shuō)說(shuō)背景吧,搭建大數(shù)據(jù)平臺(tái)離不開(kāi)BI。在大數(shù)據(jù)之前,BI就已經(jīng)存在很久了,簡(jiǎn)單把大數(shù)據(jù)等同于BI,明顯是不恰當(dāng)?shù)?。但兩者又是緊密關(guān)聯(lián)的,相輔相成的。
BI是達(dá)成業(yè)務(wù)管理的應(yīng)用工具,沒(méi)有BI,大數(shù)據(jù)就沒(méi)有了價(jià)值轉(zhuǎn)化的工具,就無(wú)法把數(shù)據(jù)的價(jià)值呈現(xiàn)給用戶,也就無(wú)法有效地支撐企業(yè)經(jīng)營(yíng)管理決策;大數(shù)據(jù)則是基礎(chǔ),沒(méi)有大數(shù)據(jù),BI就失去了存在的基礎(chǔ),沒(méi)有辦法快速、實(shí)時(shí)、高效地處理數(shù)據(jù),支撐應(yīng)用。
所以,數(shù)據(jù)的價(jià)值發(fā)揮,大數(shù)據(jù)平臺(tái)的建設(shè),必然是囊括了大數(shù)據(jù)處理與BI應(yīng)用分析建設(shè)的。
淘寶的大數(shù)據(jù)平臺(tái)
滴滴的大數(shù)據(jù)平臺(tái)
你可以看到,這些知名大廠的大數(shù)據(jù)平臺(tái)真的是大同小異,他們根據(jù)各自場(chǎng)景和技術(shù)棧的不同,雖然在大數(shù)據(jù)產(chǎn)品選型和架構(gòu)細(xì)節(jié)上略有調(diào)整,但整體思路基本上都是一樣的。
再來(lái)說(shuō)說(shuō)數(shù)據(jù)中臺(tái)吧,厚平臺(tái),大中臺(tái),小前臺(tái),沒(méi)有基礎(chǔ)厚實(shí)笨重的大數(shù)據(jù)平臺(tái),是不可能構(gòu)建數(shù)據(jù)能力強(qiáng)大、功能強(qiáng)大的數(shù)據(jù)中臺(tái)的。沒(méi)有大數(shù)據(jù)中臺(tái),要迅速搭建小快靈的小前臺(tái)也只是理想化的。
數(shù)據(jù)平臺(tái)你可以把它看成是數(shù)據(jù)集,那么數(shù)據(jù)中臺(tái)呢他就是數(shù)據(jù)集API,那么它們之間就差在API這三個(gè)字母上,API我想應(yīng)該不需要過(guò)多解釋呢,大家都知道,比如學(xué)JAVA的時(shí)候有了JAVA API你才知道怎么使用,那么數(shù)據(jù)中臺(tái)相當(dāng)于在數(shù)據(jù)平臺(tái)的基礎(chǔ)上告訴你這些數(shù)據(jù)怎么使用。
有數(shù)據(jù)中臺(tái)之前,我們根本就不清楚表的來(lái)源和鏈路,尤其是一些復(fù)雜報(bào)表的結(jié)果表,來(lái)源非常復(fù)雜可能涉及到多個(gè)系統(tǒng),涉及十幾個(gè)源表。等到上游業(yè)務(wù)表要做變更、都不知道會(huì)影響哪些報(bào)表,線上已經(jīng)運(yùn)行上千個(gè)報(bào)表了??!要去揪出這些來(lái)實(shí)在是麻煩!有了數(shù)據(jù)中臺(tái)之后,10秒鐘就能解決這個(gè)問(wèn)題。
如果是公司需要進(jìn)行大數(shù)據(jù)分析,那么還要研究以下幾個(gè)問(wèn)題:
為什么需要搭建大數(shù)據(jù)分析平臺(tái)?要解決什么業(yè)務(wù)問(wèn)題?需要什么樣的分析?數(shù)據(jù)量有多少?是否有實(shí)時(shí)分析的需求?是否有BI報(bào)表的需求?
這里舉一個(gè)典型的場(chǎng)景:
公司之前采用Oracle或MySQL搭建的業(yè)務(wù)數(shù)據(jù)庫(kù),而且有簡(jiǎn)單的數(shù)據(jù)分析,或者可能采購(gòu)了BI系統(tǒng),就是直接用業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫(kù)進(jìn)行支持的,現(xiàn)在隨著數(shù)據(jù)量越來(lái)越大,那么就需要采用大數(shù)據(jù)技術(shù)進(jìn)行擴(kuò)容。
搞清楚需求之后,按照以下的步驟進(jìn)行:
1、整體方案設(shè)計(jì)
- 數(shù)據(jù)量有多少:幾百GB?幾十TB?數(shù)據(jù)存儲(chǔ)在哪里:存儲(chǔ)在MySQL中?Oracle中?
- 分析主題是什么:只有幾個(gè)簡(jiǎn)單指標(biāo)?還是說(shuō)有很多統(tǒng)計(jì)指標(biāo),需要專門的人員?
- 是否需要搭建整體數(shù)倉(cāng)?
- 是否需要BI報(bào)表:業(yè)務(wù)人員有無(wú)操作BI的能力,或團(tuán)隊(duì)組成比較簡(jiǎn)單,不需要前后端人員投入,使用BI比較方便;
- 是否需要實(shí)時(shí)計(jì)算?
2、組件選型
架構(gòu)設(shè)計(jì)完成后就需要組件選型了,這時(shí)候最好是比較資深的架構(gòu)師參與設(shè)計(jì),選型包括:
離線計(jì)算引擎:Hadoop、Spark
實(shí)時(shí)計(jì)算引擎:Storm、Flink
BI軟件:FineBI
3、安裝部署
選型完成后,就可以進(jìn)行安裝部署了,這部分其實(shí)是最簡(jiǎn)單的,直接按照每個(gè)組件的部署要求安裝即可。
后文是對(duì)數(shù)據(jù)倉(cāng)庫(kù)、大數(shù)據(jù)平臺(tái)、數(shù)據(jù)中臺(tái)的一些總結(jié)性的架構(gòu)材料,也是對(duì)自己這些年來(lái)的一些匯總和思考吧,看懂了前面的文字,后面的各種架構(gòu)圖也就無(wú)需贅述了。
1、數(shù)據(jù)倉(cāng)庫(kù)硬件架構(gòu)
2、數(shù)據(jù)倉(cāng)庫(kù)功能架構(gòu)
3、數(shù)據(jù)倉(cāng)庫(kù)技術(shù)架構(gòu)
4、第一個(gè)Hadoop平臺(tái)硬件架構(gòu)
主要是為了解決海量離線數(shù)據(jù)的計(jì)算和存儲(chǔ),在Hadoop集群中實(shí)現(xiàn)明細(xì)數(shù)據(jù)、匯總數(shù)據(jù)存儲(chǔ),在mysql中實(shí)現(xiàn)報(bào)表數(shù)據(jù)存儲(chǔ)。
5、第一個(gè)流式處理平臺(tái)硬件架構(gòu)
主要是為了解決海量實(shí)時(shí)數(shù)據(jù)的流式采集和計(jì)算,在Hadoop集群中實(shí)現(xiàn)明細(xì)數(shù)據(jù)、匯總數(shù)據(jù)存儲(chǔ),在mysql中實(shí)現(xiàn)報(bào)表數(shù)據(jù)存儲(chǔ);并通過(guò)實(shí)時(shí)事件處理集群實(shí)現(xiàn)流式事件的匹配。
6、大數(shù)據(jù)平臺(tái)系統(tǒng)規(guī)劃
對(duì)于大數(shù)據(jù)平臺(tái)各種軟硬件各種組件的規(guī)劃
7、大數(shù)據(jù)平臺(tái)系統(tǒng)定位
8、大數(shù)據(jù)平臺(tái)邏輯部署架構(gòu)
9、大數(shù)據(jù)平臺(tái)功能視圖
10、大數(shù)據(jù)平臺(tái)數(shù)據(jù)流向
11、大數(shù)據(jù)平臺(tái)整體硬件架構(gòu)
12、數(shù)據(jù)中臺(tái)整體架構(gòu)