筆者之前講過(guò)很多次數(shù)據(jù)中臺(tái),數(shù)據(jù)中臺(tái)的計(jì)算載體包括hadoop、MPP以及流處理引擎,但你會(huì)發(fā)現(xiàn)這三類(lèi)計(jì)算載體承載的數(shù)據(jù)內(nèi)涵是不一樣的。
現(xiàn)在大家都急著在為大數(shù)據(jù)找場(chǎng)景,實(shí)際上,你只要把傳統(tǒng)企業(yè)內(nèi)任何一個(gè)離線(xiàn)營(yíng)銷(xiāo)的場(chǎng)景增加一個(gè)實(shí)時(shí)的維度,就有可能創(chuàng)造新的價(jià)值點(diǎn),這是傳統(tǒng)企業(yè)大數(shù)據(jù)賦能業(yè)務(wù)低垂的果實(shí)。
但現(xiàn)實(shí)情況是實(shí)時(shí)應(yīng)用的場(chǎng)景實(shí)現(xiàn)門(mén)檻有點(diǎn)高,假如你這個(gè)企業(yè)不能用簡(jiǎn)單的SQL快速的實(shí)現(xiàn)一個(gè)實(shí)時(shí)場(chǎng)景應(yīng)用,還需要用3-6個(gè)月去完成一個(gè)實(shí)時(shí)應(yīng)用項(xiàng)目的建設(shè),那么很多探索或創(chuàng)新就沒(méi)了。
很多公司的大數(shù)據(jù)平臺(tái)三大技術(shù)組件hadoop、MPP以及流處理很多年前就具備了,但為什么實(shí)時(shí)應(yīng)用就沒(méi)法做到像取數(shù)那樣的百花齊放?
因?yàn)橹T如IBM STREAM等各種流處理引擎有一定的開(kāi)發(fā)門(mén)檻,比如幾年前我們的數(shù)據(jù)團(tuán)隊(duì)甚至沒(méi)有一名流處理開(kāi)發(fā)人員。
我們企業(yè)要能大規(guī)模的使用實(shí)時(shí)數(shù)據(jù),就必須建立起實(shí)時(shí)的數(shù)據(jù)中臺(tái),讓開(kāi)發(fā)實(shí)時(shí)應(yīng)用數(shù)據(jù)簡(jiǎn)單到就像寫(xiě)一個(gè)SQL。
數(shù)據(jù)中臺(tái)
那么,實(shí)時(shí)的數(shù)據(jù)中臺(tái)怎么做?
下面是實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)中臺(tái)的一種邏輯架構(gòu),方便你去理解,其實(shí)最關(guān)鍵的是實(shí)時(shí)模型那一層。
1、實(shí)時(shí)接入:不同類(lèi)型的數(shù)據(jù)需要不同的接入方式,flume+kafka現(xiàn)在是標(biāo)配,其他還有文件、數(shù)據(jù)庫(kù)的DSG等等技術(shù)。比如運(yùn)營(yíng)商就有B域的訂購(gòu)、通話(huà),O域的位置、上網(wǎng)等各類(lèi)實(shí)時(shí)數(shù)據(jù)。
2、計(jì)算框架:這里只列出一種,基于KAppa架構(gòu)實(shí)現(xiàn)實(shí)時(shí)/離線(xiàn)一體化業(yè)務(wù)開(kāi)發(fā)能力,相對(duì)于傳統(tǒng)Lambda架構(gòu),開(kāi)發(fā)人員只需面對(duì)一個(gè)框架,開(kāi)發(fā)、測(cè)試和運(yùn)維的難度都相對(duì)較小,且能充分發(fā)揮Flink流式計(jì)算框架一點(diǎn)執(zhí)行、高吞吐、毫秒級(jí)響應(yīng)、批流融合的特點(diǎn)。
比如將流計(jì)算組件劃分實(shí)時(shí)數(shù)據(jù)切片,批處理組件提供離線(xiàn)數(shù)據(jù)模型(駐留內(nèi)存),兩類(lèi)數(shù)據(jù)在處理過(guò)程中實(shí)現(xiàn)批流關(guān)聯(lián)。
3、實(shí)時(shí)模型:跟數(shù)據(jù)倉(cāng)庫(kù)模型一樣,實(shí)時(shí)模型肯定首先是面向業(yè)務(wù)的,比如運(yùn)營(yíng)商有流量運(yùn)營(yíng)、服務(wù)提醒、競(jìng)爭(zhēng)應(yīng)對(duì)、放好拉新、廳店引流、語(yǔ)音消費(fèi)、運(yùn)營(yíng)評(píng)估、實(shí)時(shí)關(guān)懷、實(shí)時(shí)預(yù)警、實(shí)時(shí)洞察、實(shí)時(shí)推薦等一系列的實(shí)時(shí)場(chǎng)景,你總是要基于你的實(shí)時(shí)業(yè)務(wù)提煉出具備共性的數(shù)據(jù)模型要素。
比如放號(hào)拉新中的外來(lái)務(wù)工實(shí)時(shí)營(yíng)銷(xiāo),其中可能的觸發(fā)場(chǎng)景是針對(duì)漫入到某個(gè)交通樞紐并駐留10分鐘以上的用戶(hù)進(jìn)行營(yíng)銷(xiāo)投放,“在某個(gè)位置的駐留時(shí)長(zhǎng)”這個(gè)公共要素可能就是一種可復(fù)用的實(shí)時(shí)模型。
實(shí)時(shí)模型縱向可以劃分為DWD和DW兩層,DWD模型做的其實(shí)是針對(duì)各類(lèi)實(shí)時(shí)數(shù)據(jù)做命名的標(biāo)準(zhǔn)化和過(guò)濾字段的操作,方便進(jìn)行數(shù)據(jù)的標(biāo)準(zhǔn)化管理,DW模型這里分成了三大類(lèi):動(dòng)態(tài)模型、事件模型和時(shí)序模型,每種模型適合不同的場(chǎng)景,同時(shí)需要采用與之適配的存儲(chǔ)格式。
- 動(dòng)態(tài)模型:對(duì)實(shí)時(shí)的數(shù)據(jù)進(jìn)行匯總統(tǒng)計(jì),適合做實(shí)時(shí)的統(tǒng)計(jì)指標(biāo)分析,比如實(shí)時(shí)的業(yè)務(wù)辦理量,一般可存儲(chǔ)于Kafka和Hbase。
- 事件模型:把實(shí)時(shí)的數(shù)據(jù)抽象成一系列業(yè)務(wù)事件,比如從位置日志軌跡中記錄用戶(hù)的位置變更事件,從而可以觸發(fā)LBS的位置營(yíng)銷(xiāo),以下是典型的位置事件模型設(shè)計(jì),一般可存儲(chǔ)于MQ和redis:
你也可以設(shè)計(jì)滑動(dòng)窗口模型,比如保存最新一小時(shí)的分鐘級(jí)的滑動(dòng)窗口位置信息:
- 時(shí)序模型:主要保存用戶(hù)的在線(xiàn)的時(shí)空位置等信息,可以基于業(yè)務(wù)場(chǎng)景需要進(jìn)行各種快速的計(jì)算,比如非常方便的計(jì)算駐留時(shí)長(zhǎng),存儲(chǔ)于Hbase或TSDB(時(shí)序數(shù)據(jù)庫(kù)):
4、實(shí)時(shí)服務(wù)
有了實(shí)時(shí)模型還不夠,數(shù)據(jù)中臺(tái)還需要提供圖形化、流程化、可編排的數(shù)據(jù)開(kāi)發(fā)工具,才能真正的降低實(shí)時(shí)數(shù)據(jù)開(kāi)發(fā)成本。但由于離線(xiàn)和實(shí)時(shí)數(shù)據(jù)處理的技術(shù)手段不同,導(dǎo)致針對(duì)這兩種類(lèi)型的數(shù)據(jù)開(kāi)發(fā)和管理大多是在不同的平臺(tái)承載的。
比如以前我們的離線(xiàn)數(shù)據(jù)模型是通過(guò)DACP平臺(tái)管理的,但實(shí)時(shí)數(shù)據(jù)則游離在DACP平臺(tái)之外,其往往屬于應(yīng)用本身的一部分,應(yīng)用需要通過(guò)編寫(xiě)特定腳本去消費(fèi)和處理流處理引擎中的原生數(shù)據(jù),這種處理的門(mén)檻不僅高,而且資源浪費(fèi)也挺嚴(yán)重,每個(gè)實(shí)時(shí)應(yīng)用其實(shí)都是流數(shù)據(jù)的孤島。
站在應(yīng)用的角度看,業(yè)務(wù)其實(shí)需要的是一個(gè)統(tǒng)一的數(shù)據(jù)開(kāi)發(fā)管理平臺(tái),離線(xiàn)和實(shí)時(shí)數(shù)據(jù)應(yīng)作為統(tǒng)一的對(duì)象進(jìn)行管理,比如具備混合編排,混合關(guān)聯(lián)等能力,用簡(jiǎn)單的類(lèi)SQL定制化輸出應(yīng)用所需的各類(lèi)數(shù)據(jù),從而高效的對(duì)外提供實(shí)時(shí)/離線(xiàn)數(shù)據(jù)服務(wù)。
5、實(shí)時(shí)應(yīng)用
數(shù)據(jù)中臺(tái)如果能支持實(shí)時(shí)數(shù)據(jù)的快速編排,根據(jù)我們的測(cè)算,其實(shí)時(shí)場(chǎng)景應(yīng)用的數(shù)據(jù)開(kāi)發(fā)、測(cè)試、部署周期會(huì)由0.5-1個(gè)月降低為1-2天,效益是很高的。
對(duì)于運(yùn)營(yíng)商來(lái)講,由于其實(shí)時(shí)數(shù)據(jù)足夠多,場(chǎng)景足夠豐富,建立實(shí)時(shí)數(shù)據(jù)中臺(tái)的必要性還是非常高的。
筆者記得3年前當(dāng)我們開(kāi)始搞校園實(shí)時(shí)營(yíng)銷(xiāo)的時(shí)候,總是要提前3-6個(gè)月時(shí)間去做實(shí)時(shí)應(yīng)用的規(guī)劃和建設(shè),然而每年需求都要改,然后應(yīng)用就得推倒重來(lái),而且沒(méi)有任何知識(shí)留存下來(lái)。
隨著大數(shù)據(jù)內(nèi)外運(yùn)營(yíng)的深入,我們發(fā)現(xiàn)這種需求越來(lái)越多,你會(huì)驚奇的發(fā)現(xiàn),很多時(shí)候需求是隨著你技術(shù)能力的加強(qiáng)而增加的,很多時(shí)候,技術(shù)就是第一生產(chǎn)力。我們很多負(fù)責(zé)變現(xiàn)的產(chǎn)品、運(yùn)營(yíng)經(jīng)理應(yīng)是深有體會(huì)的。
從那個(gè)時(shí)候起,筆者就想著,我們能否建立一個(gè)真正的實(shí)時(shí)數(shù)據(jù)中臺(tái),能夠快速高效的創(chuàng)建海量的實(shí)時(shí)應(yīng)用,從而將大數(shù)據(jù)的管理和應(yīng)用水平提升到一個(gè)新的階段,終于我們現(xiàn)在走到了這條路上。






