一文詳解企業(yè)數(shù)據(jù)平臺(tái)建設(shè)思路
目前很多傳統(tǒng)行業(yè)的企業(yè),都希望構(gòu)建自己的數(shù)據(jù)平臺(tái)。其目的大都是希望通過(guò)借鑒互聯(lián)網(wǎng)公司積累的成熟的技術(shù)經(jīng)驗(yàn),構(gòu)建自己的數(shù)據(jù)能力,最終實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)型企業(yè)。
數(shù)據(jù)平臺(tái)早已不是什么新鮮事物,甚至在當(dāng)前大家都在談?wù)摂?shù)據(jù)中臺(tái)的時(shí)候,還顯得有點(diǎn)過(guò)時(shí)。但大家對(duì)于數(shù)據(jù)中臺(tái)的認(rèn)識(shí)仍處于探索階段,并沒(méi)有形成讓行業(yè)信服的一致的觀點(diǎn)。但一提到數(shù)據(jù)平臺(tái),大家對(duì)其應(yīng)該包含的內(nèi)容還相對(duì)比較清楚。所以,本文嘗試選擇“數(shù)據(jù)平臺(tái)”這個(gè)可能有點(diǎn)過(guò)時(shí)但是相對(duì)務(wù)實(shí)一點(diǎn)的詞語(yǔ)來(lái)組織內(nèi)容。無(wú)論這個(gè)東西在概念上最終被定義成什么,它要解決的企業(yè)中的數(shù)據(jù)問(wèn)題是明確而具體的。
什么是企業(yè)數(shù)據(jù)平臺(tái)
企業(yè)建設(shè)數(shù)據(jù)平臺(tái)想要解決什么樣的數(shù)據(jù)問(wèn)題?讓我們先來(lái)看看數(shù)據(jù)是如何發(fā)揮它的價(jià)值的。
數(shù)據(jù)在企業(yè)中如何應(yīng)用
一般企業(yè)內(nèi)部的數(shù)據(jù)會(huì)以兩種方式來(lái)使用:
- 支持BI分析,即通常我們所說(shuō)的各種數(shù)據(jù)報(bào)表應(yīng)用,它也包括數(shù)據(jù)的上卷下鉆分析。
- 支持自助式的探索式的數(shù)據(jù)分析,通常包括統(tǒng)計(jì)分析和建模分析。
不管是哪種方式,首先要有數(shù)據(jù)。一般的做法是將數(shù)據(jù)從業(yè)務(wù)系統(tǒng)搜集到一個(gè)專(zhuān)門(mén)用于分析的數(shù)據(jù)存儲(chǔ)中。再在這個(gè)系統(tǒng)中執(zhí)行數(shù)據(jù)計(jì)算。
對(duì)于報(bào)表應(yīng)用,通常我們需要周期性的將一些數(shù)據(jù)指標(biāo)計(jì)算出來(lái),并存儲(chǔ)為某一張數(shù)據(jù)庫(kù)表,供BI系統(tǒng)快速查詢。
對(duì)于探索式的數(shù)據(jù)分析,我們常常需要提供一個(gè)可編程的接口,以便數(shù)據(jù)分析師可以用于數(shù)據(jù)處理和分析。考慮到數(shù)據(jù)分析師的技術(shù)背景,這里的編程接口通常是SQL和Python。
數(shù)據(jù)平臺(tái)功能
了解了數(shù)據(jù)應(yīng)用的流程,我們就可以將數(shù)據(jù)平臺(tái)的功能大致梳理出來(lái)。
- 數(shù)據(jù)接入支持,需要提供一個(gè)接口以便業(yè)務(wù)團(tuán)隊(duì)可以快速的把數(shù)據(jù)接入到數(shù)據(jù)平臺(tái)。
- 數(shù)據(jù)開(kāi)發(fā)支持,需要提供接口用于進(jìn)行數(shù)據(jù)計(jì)算,以便可以算出數(shù)據(jù)指標(biāo)提供給BI工具。
- 任務(wù)調(diào)度支持,需要將上述的計(jì)算程序周期性的調(diào)度起來(lái),以便可以周期性的計(jì)算出數(shù)據(jù)指標(biāo)。
- 探索式數(shù)據(jù)分析支持,提供SQL和Python接口給數(shù)據(jù)分析師使用。
從更方便的組織和管理數(shù)據(jù)的角度來(lái)看,數(shù)據(jù)平臺(tái)還需要具備如下能力:
- 數(shù)據(jù)安全管理。比如數(shù)據(jù)權(quán)限控制,實(shí)現(xiàn)無(wú)權(quán)限讀寫(xiě)的數(shù)據(jù)無(wú)法讀寫(xiě),權(quán)限申請(qǐng)流程簡(jiǎn)單等;還比如數(shù)據(jù)脫敏控制等。
- 數(shù)據(jù)質(zhì)量管理。比如可以方便的查詢數(shù)據(jù)標(biāo)準(zhǔn),根據(jù)數(shù)據(jù)標(biāo)準(zhǔn)執(zhí)行數(shù)據(jù)檢查等。
- 數(shù)據(jù)發(fā)現(xiàn)支持,便于平臺(tái)使用者能夠快速找到數(shù)據(jù)和理解數(shù)據(jù)。這里就包括數(shù)據(jù)目錄,元數(shù)據(jù)管理,數(shù)據(jù)血緣管理等一系列數(shù)據(jù)管理功能。
從軟件架構(gòu)的角度來(lái)說(shuō),為了更好的支持?jǐn)?shù)據(jù)理解,以便高效的進(jìn)行指標(biāo)開(kāi)發(fā)和數(shù)據(jù)分析,一般我們會(huì)進(jìn)行一定的數(shù)據(jù)模型設(shè)計(jì)。為了支持高效的復(fù)雜數(shù)據(jù)計(jì)算,一般數(shù)據(jù)平臺(tái)中會(huì)沉淀大量的可以復(fù)用的基礎(chǔ)指標(biāo)。
所以,從改進(jìn)軟件開(kāi)發(fā)的角度來(lái)看,數(shù)據(jù)平臺(tái)還將具備的功能如下:
- 數(shù)據(jù)建模能力支持
- 分層的數(shù)據(jù)架構(gòu)支持
- 維護(hù)數(shù)據(jù)開(kāi)發(fā)規(guī)范、設(shè)計(jì)建議、最佳實(shí)踐等指導(dǎo)性的文檔
如果用一張圖來(lái)概括上面的數(shù)據(jù)平臺(tái),就形成了大家常??吹降娜缦碌臄?shù)據(jù)平臺(tái)架構(gòu)圖。
其中,如果企業(yè)對(duì)建模能力有特別強(qiáng)的需求,通常我們還會(huì)將機(jī)器學(xué)習(xí)模型相關(guān)的功能進(jìn)一步劃分出來(lái),形成一個(gè)機(jī)器學(xué)習(xí)平臺(tái)。
數(shù)據(jù)平臺(tái)建設(shè)思路
了解了數(shù)據(jù)平臺(tái)是什么,我們?cè)賮?lái)看看企業(yè)數(shù)據(jù)平臺(tái)建設(shè)思路。
中心化還是非中心化
首先從組織形式上面來(lái)看,一般而言,數(shù)據(jù)平臺(tái)會(huì)是一定程度的中心化和集成式的。
一提到中心化,想必有人會(huì)不服,認(rèn)為這樣的中心化的系統(tǒng)和組織一定不能成功。我曾經(jīng)就聽(tīng)到有人堅(jiān)決否定中心化的價(jià)值,其舉出的反例可能有以項(xiàng)目為單位的小的敏捷團(tuán)隊(duì)、去中心化的區(qū)塊鏈、去中心化運(yùn)維團(tuán)隊(duì)的devops思想或者是去中心化測(cè)試團(tuán)隊(duì)的敏捷實(shí)踐等等。
中心化確實(shí)有其不足,但是我們也要看到它的很多優(yōu)點(diǎn),比如:
- 可以避免各個(gè)團(tuán)隊(duì)重復(fù)建設(shè)帶來(lái)的資源浪費(fèi)
- 統(tǒng)一的數(shù)據(jù)管理可以更好更快的推進(jìn)企業(yè)內(nèi)部的數(shù)據(jù)策略的落地,比如數(shù)據(jù)標(biāo)準(zhǔn),數(shù)據(jù)安全等
- 實(shí)現(xiàn)計(jì)算和存儲(chǔ)資源共享,節(jié)省開(kāi)支
- 更方便的實(shí)現(xiàn)跨業(yè)務(wù)線數(shù)據(jù)集成
其實(shí),中心化與非中心化哪種方式更好,與企業(yè)的規(guī)模、文化和組織結(jié)構(gòu)相關(guān)。
比如,一些規(guī)模比較大的業(yè)務(wù)線,人才資源多技術(shù)能力也強(qiáng),通常完全有能力自建一套數(shù)據(jù)平臺(tái)。這樣的業(yè)務(wù)線內(nèi)部通常業(yè)務(wù)也特別復(fù)雜,數(shù)據(jù)量特別大,且對(duì)定制能力有著很高的要求。這時(shí),企業(yè)級(jí)別的中心化數(shù)據(jù)平臺(tái)帶來(lái)的成本優(yōu)勢(shì)就顯得不夠有吸引力了。反而會(huì)由于需要很多的跨團(tuán)隊(duì)溝通協(xié)作而降低了效率。
但是,如果我們把這樣的業(yè)務(wù)線當(dāng)做一個(gè)稍小的獨(dú)立自治的組織來(lái)看,在其內(nèi)部通常是劃分為更小的業(yè)務(wù)團(tuán)隊(duì),在這些業(yè)務(wù)團(tuán)隊(duì)間建設(shè)一個(gè)中心化的數(shù)據(jù)平臺(tái)同樣會(huì)帶來(lái)價(jià)值。
再比如,有一些業(yè)務(wù)線,雖然也很大,但其內(nèi)部的組織結(jié)構(gòu)是按照以業(yè)務(wù)隔離性非常強(qiáng)的項(xiàng)目組為基本單元組織而成的。每個(gè)項(xiàng)目組形成一個(gè)小的全功能敏捷團(tuán)隊(duì),各自探索式的推動(dòng)業(yè)務(wù)發(fā)展。這樣的情況下,團(tuán)隊(duì)間幾乎不用數(shù)據(jù)共享,且對(duì)于數(shù)據(jù)管理要求也不高,他們的第一優(yōu)先級(jí)是快速推動(dòng)業(yè)務(wù)發(fā)展。于是中心化的數(shù)據(jù)平臺(tái)的價(jià)值也不那么明顯了。他們甚至可能連業(yè)務(wù)線級(jí)別的數(shù)據(jù)平臺(tái)都不需要,而是根據(jù)團(tuán)隊(duì)各自的需要自建一些小的數(shù)據(jù)平臺(tái)即可。
上面這樣的情況可以舉出的例子很多,比如某大型通訊企業(yè),其內(nèi)部的消費(fèi)者業(yè)務(wù)線就建設(shè)了獨(dú)立的數(shù)據(jù)平臺(tái),為大量的內(nèi)部項(xiàng)目團(tuán)隊(duì)提供中心化數(shù)據(jù)服務(wù),而運(yùn)營(yíng)商務(wù)線則由于其面向企業(yè)提供服務(wù)的特性,項(xiàng)目間業(yè)務(wù)相似性低、隔離性高,更傾向于每個(gè)團(tuán)隊(duì)自建小的數(shù)據(jù)平臺(tái)。
再比如,很多的銀行或者零售行業(yè)企業(yè),其內(nèi)部業(yè)務(wù)通常比較成熟,常見(jiàn)的情況是建設(shè)一套統(tǒng)一的中心化的數(shù)據(jù)平臺(tái)。
所以,回到最初的數(shù)據(jù)平臺(tái)建設(shè)思路上,一般而言,數(shù)據(jù)平臺(tái)會(huì)是一定程度的中心化和集成式的。但究竟是哪種程度的中心化,還要根據(jù)具體的企業(yè)情況來(lái)看。
對(duì)于本文最初提到的傳統(tǒng)行業(yè)的情況,他們大多數(shù)并不是以軟件服務(wù)為核心,而是以其現(xiàn)有的生產(chǎn)或者信息業(yè)務(wù)為中心(比如汽車(chē)、零售、保險(xiǎn)業(yè)務(wù))。在這些企業(yè)內(nèi)部,軟件常常只是輔助作用,因而軟件開(kāi)發(fā)團(tuán)隊(duì)的能力也不是特別強(qiáng)。對(duì)于這些企業(yè),建設(shè)中心化集成式的數(shù)據(jù)平臺(tái)可能是更為合適的方式。
采用精益的思想來(lái)逐步構(gòu)建數(shù)據(jù)平臺(tái)
再?gòu)臄?shù)據(jù)平臺(tái)建設(shè)團(tuán)隊(duì)的職責(zé)來(lái)看,一般而言,數(shù)據(jù)平臺(tái)建設(shè)需要以某一高價(jià)值數(shù)據(jù)分析(包括業(yè)務(wù)指標(biāo)或者機(jī)器學(xué)習(xí)模型)需求來(lái)拉動(dòng),在實(shí)現(xiàn)業(yè)務(wù)價(jià)值的同時(shí)慢慢的完善平臺(tái),最終實(shí)現(xiàn)企業(yè)級(jí)的數(shù)據(jù)平臺(tái)。
與此相對(duì)應(yīng)的,很多企業(yè)一上來(lái)就直接想要建設(shè)一個(gè)功能大而全的數(shù)據(jù)平臺(tái),其中很多都成為了失敗的案例。這一做法的典型思路是,先對(duì)標(biāo)一個(gè)行業(yè)標(biāo)桿的數(shù)據(jù)平臺(tái),組建一個(gè)大型團(tuán)隊(duì)開(kāi)始做開(kāi)發(fā)。開(kāi)發(fā)過(guò)程中,他們對(duì)于數(shù)據(jù)平臺(tái)誰(shuí)來(lái)使用,產(chǎn)生了什么價(jià)值關(guān)注不夠。最終的結(jié)果是,項(xiàng)目投資人花了大筆經(jīng)費(fèi)卻遲遲看不到價(jià)值,從而慢慢減少投資導(dǎo)致項(xiàng)目流產(chǎn)。
采用價(jià)值拉動(dòng)的模式,用精益的思想來(lái)指導(dǎo)數(shù)據(jù)平臺(tái)建設(shè)。以價(jià)值實(shí)現(xiàn)為目標(biāo),每一個(gè)平臺(tái)功能的實(shí)現(xiàn)都對(duì)應(yīng)著立即可見(jiàn)的價(jià)值實(shí)現(xiàn)。長(zhǎng)期以往,通過(guò)不斷的進(jìn)行技術(shù)重構(gòu)和架構(gòu)演進(jìn),平臺(tái)也就慢慢形成。
有人可能會(huì)說(shuō)這樣建設(shè)而來(lái)的數(shù)據(jù)平臺(tái)大家都不一樣,將缺乏一個(gè)行業(yè)統(tǒng)一標(biāo)準(zhǔn)。然而,企業(yè)是以實(shí)現(xiàn)經(jīng)濟(jì)效益為前提的,為什么數(shù)據(jù)平臺(tái)非得是行業(yè)的標(biāo)準(zhǔn)實(shí)現(xiàn)呢?數(shù)據(jù)平臺(tái)具有非常強(qiáng)的技術(shù)相關(guān)性,其最終形式本身就會(huì)因企業(yè)和團(tuán)隊(duì)的不同而不同。試想,對(duì)于某一個(gè)功能的軟件實(shí)現(xiàn),如果交給不同的開(kāi)發(fā)人員去做,最后產(chǎn)生的設(shè)計(jì)和實(shí)現(xiàn)的代碼會(huì)一樣嗎?然而,其實(shí)我們并不是很關(guān)心代碼是否一樣,只要最后的功能實(shí)現(xiàn)了,目的也就達(dá)到了。所以,數(shù)據(jù)平臺(tái)的最終形式很可能不同企業(yè)完全不同。
一個(gè)成功的數(shù)據(jù)平臺(tái)建設(shè)的過(guò)程通常會(huì)是:
- 組建一個(gè)數(shù)據(jù)平臺(tái)團(tuán)隊(duì)
- 基于開(kāi)源技術(shù)搭建一個(gè)具備基本功能的數(shù)據(jù)平臺(tái)
- 為了實(shí)現(xiàn)某一個(gè)業(yè)務(wù)指標(biāo)計(jì)算,接入某一個(gè)系統(tǒng)的數(shù)據(jù),從而順便完成了一定的平臺(tái)數(shù)據(jù)接入功能
- 為了實(shí)現(xiàn)某一個(gè)機(jī)器學(xué)習(xí)模型,接入另一個(gè)系統(tǒng)的數(shù)據(jù),從而順便增強(qiáng)了之前的平臺(tái)數(shù)據(jù)接入功能,且順便完成了某一些通用的可復(fù)用的指標(biāo)的計(jì)算
- 為了支持更多的探索性數(shù)據(jù)分析,根據(jù)需要,數(shù)據(jù)平臺(tái)支持了自助式的以SQL為接口的數(shù)據(jù)分析
- 為了支持更多的探索性數(shù)據(jù)分析,根據(jù)需要,數(shù)據(jù)平臺(tái)支持了自助式的以Python為接口的數(shù)據(jù)分析
- 根據(jù)數(shù)據(jù)安全的需要,數(shù)據(jù)平臺(tái)完善了對(duì)于數(shù)據(jù)權(quán)限的管理,數(shù)據(jù)加密脫敏的支持
- 隨著數(shù)據(jù)平臺(tái)功能逐步完善,業(yè)務(wù)團(tuán)隊(duì)更多的自助的進(jìn)行數(shù)據(jù)接入和數(shù)據(jù)分析,數(shù)據(jù)平臺(tái)團(tuán)隊(duì)則專(zhuān)注在平臺(tái)功能不斷增強(qiáng)及平臺(tái)穩(wěn)定性維護(hù)上面
總結(jié)一下。本文首先討論了什么是數(shù)據(jù)平臺(tái)這個(gè)問(wèn)題,嘗試回答了數(shù)據(jù)平臺(tái)的定義和功能范圍。接著,結(jié)合作者本人所經(jīng)歷過(guò)的數(shù)據(jù)項(xiàng)目經(jīng)驗(yàn),對(duì)建設(shè)企業(yè)數(shù)據(jù)平臺(tái)的思路進(jìn)行了一定的梳理。
本文希望能對(duì)從事數(shù)據(jù)工作的同仁有所啟發(fā),也希望可以讓非數(shù)據(jù)工作的小伙伴對(duì)數(shù)據(jù)工作有一定的認(rèn)識(shí)。