Hologres+Flink流批一体首次落地4982亿背后的营销分析大屏
簡(jiǎn)介:?本篇將重點(diǎn)介紹Hologres在阿里巴巴淘寶營(yíng)銷活動(dòng)分析場(chǎng)景的最佳實(shí)踐,揭秘Flink+Hologres流批一體首次落地阿里雙11營(yíng)銷分析大屏背后的技術(shù)考驗(yàn)。
概要:剛剛結(jié)束的2020天貓雙11中,MaxCompute交互式分析(下稱Hologres)+實(shí)時(shí)計(jì)算Flink搭建的云原生實(shí)時(shí)數(shù)倉(cāng)首次在核心數(shù)據(jù)場(chǎng)景落地,為大數(shù)據(jù)平臺(tái)創(chuàng)下一項(xiàng)新紀(jì)錄。借此之際,我們將陸續(xù)推出云原生實(shí)時(shí)數(shù)倉(cāng)雙11實(shí)戰(zhàn)系列內(nèi)容,本篇將重點(diǎn)介紹Hologres在阿里巴巴淘寶營(yíng)銷活動(dòng)分析場(chǎng)景的最佳實(shí)踐,揭秘Flink+Hologres流批一體首次落地阿里雙11營(yíng)銷分析大屏背后的技術(shù)考驗(yàn)。
一、背景介紹
在淘系業(yè)務(wù)運(yùn)營(yíng)中,大促是業(yè)務(wù)運(yùn)營(yíng)和用戶增長(zhǎng)中非常重要的場(chǎng)景,而營(yíng)銷活動(dòng)分析產(chǎn)品作為大促期間用來(lái)服務(wù)決策、指導(dǎo)運(yùn)營(yíng)的核心數(shù)據(jù)產(chǎn)品,覆蓋活動(dòng)前、中、后全鏈路的分析,其中需要滿足不同角色小二在不同階段下,對(duì)數(shù)據(jù)時(shí)效性和數(shù)據(jù)靈活性的不同要求,整體產(chǎn)品大圖如下:
老版營(yíng)銷活動(dòng)分析是基于常規(guī)的實(shí)時(shí)離線數(shù)據(jù)體系&FW的產(chǎn)品架構(gòu),在之前的各類大大小小的活動(dòng)中,也暴露了比較多的問(wèn)題,其中核心的問(wèn)題可以歸納為三類:
- 實(shí)時(shí)和離線數(shù)據(jù)不一致:相同口徑的數(shù)據(jù)實(shí)時(shí)和離線不一致,包括數(shù)據(jù)邏輯口徑不統(tǒng)一、數(shù)據(jù)接口不統(tǒng)一,由于實(shí)時(shí)和離線數(shù)據(jù)開(kāi)發(fā)割裂(開(kāi)發(fā)人員和接口),不僅僅增加了整體數(shù)據(jù)的運(yùn)維成本,同時(shí)產(chǎn)品搭建層面的負(fù)擔(dān)也大幅度提升。
- 維護(hù)成本高:隨著業(yè)務(wù)量的增加,原有數(shù)據(jù)庫(kù)不能快速、靈活的支持復(fù)雜且多變的應(yīng)用場(chǎng)景。常規(guī)的Hbase、Mysql、ADB數(shù)據(jù)庫(kù),都只能單點(diǎn)滿足海量數(shù)據(jù)、高并發(fā)存儲(chǔ)點(diǎn)查、OLAP查詢,因此面對(duì)極其復(fù)雜的業(yè)務(wù),需要依賴多個(gè)數(shù)據(jù)庫(kù),整體維護(hù)成本和依賴成本會(huì)非常高。
- 擴(kuò)展性差:在FW框架下的產(chǎn)品搭建邏輯復(fù)雜度高、可擴(kuò)展性都比較差,在活動(dòng)期間維護(hù)的成本非常大
因此,如何能夠快速應(yīng)對(duì)頻繁變動(dòng)的業(yè)務(wù)訴求,以及更高效的處理活動(dòng)期間的數(shù)據(jù)問(wèn)題變得越來(lái)越重要,升級(jí)的新一代營(yíng)銷活動(dòng)分析架構(gòu)因而需要滿足以下幾個(gè)優(yōu)點(diǎn):
1. 實(shí)時(shí)數(shù)倉(cāng)與離線數(shù)倉(cāng)能夠模型統(tǒng)一(實(shí)時(shí)離線邏輯統(tǒng)一)、接口統(tǒng)一(數(shù)據(jù)存儲(chǔ)、取數(shù)統(tǒng)一),真正做到流批一體
2.?需要有更強(qiáng)大的數(shù)倉(cāng),既能夠滿足海量數(shù)據(jù)的并發(fā)寫入查詢,還能夠滿足業(yè)務(wù)的及時(shí)查詢功能
3. 簡(jiǎn)化現(xiàn)有的產(chǎn)品搭建邏輯、降低產(chǎn)品實(shí)現(xiàn)復(fù)雜度
基于上訴背景,我們需要重構(gòu)當(dāng)前架構(gòu)并尋找另外的替代產(chǎn)品來(lái)解決業(yè)務(wù)痛點(diǎn)。經(jīng)過(guò)長(zhǎng)時(shí)間的調(diào)用和嘗試,最終我們選擇了基于實(shí)時(shí)計(jì)算Flink+Hologres+FBI(阿里內(nèi)部的一款可視化分析工具)的技術(shù)方案來(lái)實(shí)現(xiàn)天貓營(yíng)銷活動(dòng)分析的架構(gòu)重構(gòu)。
二、 流批一體技術(shù)方案
通過(guò)深度剖析業(yè)務(wù)對(duì)數(shù)據(jù)的要求,以及多方位數(shù)據(jù)模型探索和數(shù)倉(cāng)的調(diào)研,最終確定了營(yíng)銷活動(dòng)分析產(chǎn)品重構(gòu)的整體技術(shù)框架,如下圖所示,其中的核心要點(diǎn)有:
- 通過(guò)流批一體架構(gòu)升級(jí),實(shí)現(xiàn)了流批SQL邏輯&計(jì)算引擎層面統(tǒng)一
- 通過(guò)Hologres實(shí)現(xiàn)了數(shù)據(jù)存儲(chǔ)和查詢的統(tǒng)一
- 利用FBI產(chǎn)品能力,在降低搭建成本的同時(shí)滿足業(yè)務(wù)的高靈活性,同時(shí)滿足不同角色對(duì)于報(bào)表的需求
**
下面,我們將詳細(xì)介紹整個(gè)技術(shù)方案中核心的幾大技術(shù)方案:流批一體、Hologres、FBI
1. 流批一體技術(shù)框架
傳統(tǒng)數(shù)倉(cāng)架構(gòu)圖如下圖所示,傳統(tǒng)數(shù)倉(cāng)架構(gòu)核心問(wèn)題:
- 流批間的存儲(chǔ)層割裂,集群、表、字段都是分開(kāi)的,導(dǎo)致應(yīng)用層對(duì)接時(shí)需要寫不同的取數(shù)邏輯。
- 流批間的處理邏輯不能復(fù)用,SQL標(biāo)準(zhǔn)不一樣,計(jì)算引擎不一樣,導(dǎo)致實(shí)時(shí)和離線需要分別開(kāi)發(fā),其實(shí)很多情況下,邏輯大同小異,但系統(tǒng)之前不能靈活轉(zhuǎn)換,導(dǎo)致工作量重復(fù)
- 計(jì)算層集群分開(kāi),實(shí)時(shí)和離線對(duì)資源的使用時(shí)間段高峰不一樣,導(dǎo)致資源利用率不夠高,波峰波谷非常明顯
流批一體數(shù)倉(cāng)架構(gòu)圖如下圖所示,升級(jí)后的架構(gòu)主要有以下核心點(diǎn)需要關(guān)注:
- 首先,數(shù)倉(cāng)DWD層雖然在存儲(chǔ)介質(zhì)上不同,但需要保證數(shù)據(jù)模型的等價(jià),然后進(jìn)行邏輯表封裝(一個(gè)邏輯表映射兩個(gè)物理表,即實(shí)時(shí)DWD和離線DWD),數(shù)據(jù)計(jì)算代碼的撰寫都是基于該邏輯表開(kāi)發(fā)
- 其次,基于邏輯表的代碼開(kāi)發(fā)、流、批計(jì)算模式的個(gè)性化配置、以及不同的調(diào)度策略等,需要有開(kāi)發(fā)平臺(tái)(Dataphin流批統(tǒng)一開(kāi)發(fā)平臺(tái))作為支撐,形成便捷的開(kāi)發(fā)、運(yùn)維一體化
- 最后,基于OneData規(guī)范的存儲(chǔ)層統(tǒng)一,不僅是模型規(guī)范統(tǒng)一,還是存儲(chǔ)介質(zhì)的統(tǒng)一,做到了無(wú)縫的銜接
今年雙11,實(shí)時(shí)計(jì)算Flink處理的流量洪峰創(chuàng)紀(jì)錄地達(dá)到了每秒40億條的記錄,數(shù)據(jù)體量也達(dá)到了驚人的每秒7TB,基于Flink的流批一體數(shù)據(jù)應(yīng)用在營(yíng)銷活動(dòng)分析場(chǎng)景中嶄露頭角,并在穩(wěn)定性、性能和效率方面都經(jīng)受住了嚴(yán)苛的生產(chǎn)考驗(yàn)
整體Flink流和Flink batch任務(wù)在活動(dòng)期間都表現(xiàn)了極強(qiáng)的穩(wěn)定性,全程0鏈路容量、機(jī)器單點(diǎn)、網(wǎng)絡(luò)帶寬等問(wèn)題的發(fā)生
2. Hologres流批一體落地
流批一體數(shù)據(jù)架構(gòu)實(shí)現(xiàn)了整體的數(shù)據(jù)層面的統(tǒng)一,還需要選用一款產(chǎn)品讓整體的存儲(chǔ)統(tǒng)一,這款產(chǎn)品需要即支持高并發(fā)寫入,又能夠滿足及時(shí)查詢,同時(shí)還能夠支持OLAP分析。
在老版本的架構(gòu)中每個(gè)頁(yè)面模塊會(huì)涉及到一個(gè)或多個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢,如Mysql、Hbase、ADB3.0「老版本HybridDB」等。由于Hbase的高并發(fā)寫入、高性能點(diǎn)查等特性,所以大多數(shù)實(shí)時(shí)數(shù)據(jù)就會(huì)放在Hbase中;而由于Mysql表管理便捷、查詢簡(jiǎn)易等好處,維表數(shù)據(jù)、離線數(shù)據(jù)通常會(huì)選擇存放在其中;另外,產(chǎn)品的一些模塊涉及到的數(shù)據(jù),具有數(shù)據(jù)量小、維度多等特征「如營(yíng)銷玩法數(shù)據(jù)」,則會(huì)選擇ADB作為OLAP多維分析的數(shù)據(jù)庫(kù)。如此,就會(huì)存在兩個(gè)痛點(diǎn):實(shí)時(shí)數(shù)據(jù)與離線數(shù)據(jù)的割裂、多數(shù)據(jù)庫(kù)多實(shí)例的雜亂管理。
新版營(yíng)銷活動(dòng)分析產(chǎn)品的建設(shè),一個(gè)目標(biāo)是要做到存儲(chǔ)統(tǒng)一,降低運(yùn)維成本和提高研發(fā)效能;另外一個(gè)目標(biāo)是高性能、高穩(wěn)定、低成本。
我們通過(guò)與多方位的產(chǎn)品對(duì)標(biāo)之后,選用了Hologres作為整個(gè)營(yíng)銷活動(dòng)分析的統(tǒng)一產(chǎn)品。Hologres作為一款兼容PostgreSQL 11協(xié)議的一站式實(shí)時(shí)數(shù)倉(cāng),與大數(shù)據(jù)生態(tài)無(wú)縫打通,支持PB級(jí)數(shù)據(jù)高并發(fā)、低延時(shí)的分析處理,可以輕松而經(jīng)濟(jì)地使用現(xiàn)有BI工具對(duì)數(shù)據(jù)進(jìn)行多維分析透視和業(yè)務(wù)探索,在這樣復(fù)雜的業(yè)務(wù)場(chǎng)景中Hologres的優(yōu)勢(shì)就表現(xiàn)得極為突出了。
通過(guò)對(duì)整體營(yíng)銷活動(dòng)分析個(gè)模塊的深度分析,以及結(jié)合業(yè)務(wù)側(cè)對(duì)數(shù)據(jù)時(shí)效性的要求,整體將營(yíng)銷活動(dòng)分析的幾大模塊的數(shù)據(jù)制定了具體的實(shí)時(shí)鏈路方案:
- 活動(dòng)直播、預(yù)售、加購(gòu)、流量監(jiān)控等核心模塊,我們選用了Hologres的實(shí)時(shí)點(diǎn)查能力,
- 面對(duì)復(fù)雜多變的營(yíng)銷玩法場(chǎng)景,我們選用了Hologres的OLAP即時(shí)查詢能力
針對(duì)營(yíng)銷活動(dòng)分析需要的點(diǎn)查能力和OLAP分析能力,天貓營(yíng)銷活動(dòng)分析分別建了dt-camp和dt-camp-olap庫(kù),其中dt_camp點(diǎn)查庫(kù)由于需要將活動(dòng)期間的一些歷史數(shù)據(jù)長(zhǎng)期存放用來(lái)做活動(dòng)的對(duì)比,整體數(shù)據(jù)量級(jí)在近40TB;營(yíng)銷玩法的OLAP庫(kù)中,存放的是玩法的一些明細(xì)數(shù)據(jù),整體數(shù)據(jù)量級(jí)在近百TB,由于營(yíng)銷玩法對(duì)整體數(shù)據(jù)的準(zhǔn)確度要求非常高,因此沒(méi)有采用有損精度的查詢方式,對(duì)整體數(shù)倉(cāng)的查詢性能提出了更高的要求。
為了提升Hologres的整體性能,針對(duì)營(yíng)銷活動(dòng)分析數(shù)倉(cāng)主要做了一下幾類優(yōu)化策略:
Hologres在雙十一期間表現(xiàn),點(diǎn)查場(chǎng)景的寫入峰值達(dá)幾十w/s,服務(wù)能力幾百w/s,OLAP寫入峰值400w/s,服務(wù)能力500w/s。同時(shí)單點(diǎn)查詢&OLAP查詢幾乎都能夠滿足單條查詢小于ms的查詢比例高達(dá)99.7%以上,因此在整個(gè)活動(dòng)期間,Hologres整體表現(xiàn)非常平穩(wěn),能夠很好的同時(shí)支持快速點(diǎn)查和快速OLAP分析。
3. FBI分析大屏
FBI作為阿里生態(tài)內(nèi)的首選數(shù)據(jù)可視化平臺(tái),即能快速支持搭建各類報(bào)表進(jìn)行數(shù)據(jù)分析,也能支持多種數(shù)據(jù)集的快速接入與擴(kuò)展,還有支持各種分析型數(shù)據(jù)產(chǎn)品建設(shè)的高級(jí)功能【產(chǎn)品搭建】。
在FBI產(chǎn)品搭建的核心流程中,可以通過(guò)4個(gè)核心功能大幅降低搭建成本:
1)實(shí)時(shí)離線一體的“實(shí)時(shí)小時(shí)分鐘模型”,自動(dòng)實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的精確趨勢(shì)和對(duì)比
針對(duì)營(yíng)銷活動(dòng)定義的批流一體的底層數(shù)據(jù),為了滿足用戶分析實(shí)時(shí)數(shù)據(jù),實(shí)時(shí)對(duì)比,小時(shí)對(duì)比的靈活性,FBI抽象出一套實(shí)時(shí)離線一體的標(biāo)準(zhǔn)數(shù)據(jù)模型,創(chuàng)建該模型后就可以實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的精確對(duì)比,趨勢(shì)分析自動(dòng)路由分鐘表,小時(shí)趨勢(shì)直接路由到小時(shí)表的能力。
2)FBI原創(chuàng)的FAX函數(shù),極簡(jiǎn)定義輸出各種復(fù)雜指標(biāo)
針對(duì)復(fù)雜的指標(biāo):如通道占比,類目占比,同比貢獻(xiàn)度,活動(dòng)累計(jì)成交額,上個(gè)版本中均是用sql套sql進(jìn)行定義,不僅導(dǎo)致SQL長(zhǎng)度保障,同時(shí)產(chǎn)品的穩(wěn)定性和可維護(hù)性都大大降低。為了解決這類問(wèn)題,FBI構(gòu)建了一套易于學(xué)習(xí)和理解的分析DSL,名為 FAX函數(shù)(同比差額、貢獻(xiàn)率、活動(dòng)累計(jì)等20+分析函數(shù)),簡(jiǎn)單的一行語(yǔ)句可以定義出營(yíng)銷活動(dòng)分析中用到的各種復(fù)雜指標(biāo)。
3)通過(guò)分析能力配置化和專有邏輯插件化,大幅節(jié)約頁(yè)面構(gòu)建時(shí)間
產(chǎn)品頁(yè)面構(gòu)建是一個(gè)非常核心的環(huán)節(jié),如何節(jié)約用戶的配置,FBI的方法就是:
a、通用分析能力配置化:對(duì)于最常用到的交叉表、活動(dòng)對(duì)比,日期變量傳參等分析場(chǎng)景,抽象升級(jí)為簡(jiǎn)單的配置項(xiàng),即可完成相應(yīng)的同期對(duì)比和同比差額等分析。
b、專有邏輯插件化:對(duì)于活動(dòng)參數(shù),顯示隱藏,結(jié)果排序等作用于區(qū)塊的定制能力,可以通過(guò)數(shù)據(jù)插件的方式覆蓋。
4、打造沉淀FBI的高保障體系,升級(jí)了發(fā)布管控,監(jiān)控預(yù)警,變更提示等,支持1-5-10
三、測(cè)試端的保駕護(hù)航
為了進(jìn)一步保障營(yíng)銷活動(dòng)分析產(chǎn)品質(zhì)量,測(cè)試端從明細(xì)->匯總->產(chǎn)品端都做了嚴(yán)格的數(shù)據(jù)比對(duì)和校驗(yàn),同時(shí)針對(duì)大促的核心數(shù)據(jù),進(jìn)行了全方位的監(jiān)控
在活動(dòng)期間測(cè)試巡檢功能大大提升了主動(dòng)發(fā)現(xiàn)數(shù)據(jù)問(wèn)題的能力,以及及時(shí)發(fā)現(xiàn)核心問(wèn)題的能力,大大的提升了活動(dòng)期間整個(gè)數(shù)據(jù)產(chǎn)品的質(zhì)量和穩(wěn)定性
四、業(yè)務(wù)反饋&價(jià)值
整個(gè)雙十一期間,基于實(shí)時(shí)計(jì)算Flink+Hologres流批一體的營(yíng)銷活動(dòng)分析產(chǎn)品不僅支持了天貓事業(yè)群上千+小二的人均上百PV高頻訪問(wèn),更實(shí)現(xiàn)了0 P1/P2故障的目標(biāo),同時(shí)整個(gè)產(chǎn)品在活動(dòng)期間表現(xiàn)了相比往年更有優(yōu)勢(shì)的幾大方面:
- 豐富:實(shí)時(shí)數(shù)據(jù)在營(yíng)銷活動(dòng)分析產(chǎn)品中大規(guī)模鋪開(kāi),核心維度可以down到活動(dòng)商品、商家標(biāo)簽分層等多個(gè)維度,同時(shí)加購(gòu)和預(yù)售都新增了商家、商品維度的實(shí)時(shí)數(shù)據(jù),更加友好的支持了業(yè)務(wù)側(cè)進(jìn)行商家的BD
- 穩(wěn)定:基于Hologres持續(xù)高穩(wěn)定的輸出,整體雙十一期間不論是實(shí)時(shí)數(shù)據(jù)寫入、還是數(shù)據(jù)的讀取都表現(xiàn)出了極強(qiáng)的穩(wěn)定性;同時(shí)工程端實(shí)時(shí)監(jiān)控用戶訪問(wèn)和數(shù)據(jù)響應(yīng)效率,實(shí)時(shí)分析解決業(yè)務(wù)問(wèn)題;產(chǎn)品巡檢涵蓋了產(chǎn)品的核心數(shù)據(jù),進(jìn)一步的保障了整個(gè)產(chǎn)品的穩(wěn)定性
- 高效:流批技術(shù)的應(yīng)用,以及Hologres的統(tǒng)一對(duì)接,不僅大幅度的提升了活動(dòng)期間的需求接入效率(今年雙十一期間整體需求承接能力是去年的3倍),同時(shí)整體的提升了問(wèn)題反饋和解決的時(shí)效(相比以往活動(dòng)提升了3-4倍)
五、未來(lái)展望
雖然已經(jīng)經(jīng)歷了一次大促大考驗(yàn),但是技術(shù)的探索永無(wú)止境,我們需要不斷的完善來(lái)應(yīng)對(duì)更加復(fù)雜的業(yè)務(wù)場(chǎng)景:
1)Dataphin流批一體的產(chǎn)品進(jìn)一步完善,減少人工干預(yù)成本,同時(shí)進(jìn)一步保證數(shù)據(jù)質(zhì)量
2)Hologres資源隔離,讀寫資源隔離,更好地保證查詢的SLA;打通Hologres與MaxCompute,支持元數(shù)據(jù)的互通,為產(chǎn)品元數(shù)據(jù)提供更高的保障;動(dòng)態(tài)擴(kuò)容,能夠靈活應(yīng)對(duì)峰值及日常的業(yè)務(wù)需要。
3)FBI產(chǎn)品工具,能夠提升產(chǎn)品版本管理功能,同一頁(yè)面支持多人編輯不覆蓋,更加高效的支持產(chǎn)品搭建
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的Hologres+Flink流批一体首次落地4982亿背后的营销分析大屏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何在工作中快速成长?致工程师的10个技
- 下一篇: 码住!Flink Contributor