導(dǎo)讀:如果說(shuō)互聯(lián)網(wǎng)的上半場(chǎng)是粗狂運(yùn)營(yíng),因?yàn)橛辛髁考t利不需要考慮細(xì)節(jié)。那么在下半場(chǎng),精細(xì)化運(yùn)營(yíng)將是長(zhǎng)久的主題,有數(shù)據(jù)分析能力才能讓用戶得到更好的體驗(yàn)。當(dāng)下比較典型的分析方式是構(gòu)建用戶標(biāo)簽系統(tǒng),從而精準(zhǔn)地生成用戶畫(huà)像,提升用戶體驗(yàn)。今天分享的主題是網(wǎng)易嚴(yán)選DMP標(biāo)簽系統(tǒng)建設(shè)實(shí)踐。
01 平臺(tái)總覽
DMP作為網(wǎng)易嚴(yán)選的數(shù)據(jù)中臺(tái),向下連接數(shù)據(jù),向上賦能業(yè)務(wù),承擔(dān)著非常重要的基石角色。
DMP的數(shù)據(jù)來(lái)源主要包括三大部分:
自營(yíng)平臺(tái)的app、小程序、pc端等各端的業(yè)務(wù)日志
網(wǎng)易集團(tuán)內(nèi)部共建的一些基礎(chǔ)數(shù)據(jù)
京東、淘寶、抖音等第三方渠道店鋪的數(shù)據(jù)
通過(guò)收集、清洗,將以上數(shù)據(jù)形成數(shù)據(jù)資產(chǎn)沉淀下來(lái)。DMP在數(shù)據(jù)資產(chǎn)基礎(chǔ)上形成了一套自己的標(biāo)簽產(chǎn)出、人群圈選和用戶畫(huà)像分析體系,從而為業(yè)務(wù)提供支撐,包括:智能化的選品、精準(zhǔn)觸達(dá)以及用戶洞察等。總的來(lái)說(shuō),DMP系統(tǒng)就是構(gòu)建以數(shù)據(jù)為核心的標(biāo)簽體系和畫(huà)像體系,從而輔助業(yè)務(wù)做一系列精細(xì)化的運(yùn)營(yíng)。
了解DMP系統(tǒng),先從以下幾個(gè)概念開(kāi)始。
標(biāo)簽:對(duì)于實(shí)體(用戶、設(shè)備、手機(jī)號(hào)等)特征的描述,是一種面向業(yè)務(wù)的數(shù)據(jù)組織形式,比如使用:年齡段、地址、偏好類目等對(duì)用戶實(shí)體進(jìn)行刻畫(huà)。
人群圈選:通過(guò)條件組合從全體用戶中圈選出一部分用戶,具體就是指定一組用戶標(biāo)簽和其對(duì)應(yīng)的標(biāo)簽值,得到符合條件的用戶人群。
畫(huà)像分析:對(duì)于人群圈選結(jié)果,查看該人群的行為情況、標(biāo)簽分布。例如查看【城市為杭州,且性別為女性】的用戶在嚴(yán)選APP上的行為路徑、消費(fèi)模型等。
嚴(yán)選標(biāo)簽系統(tǒng)對(duì)外主要提供兩大核心能力:
(1)標(biāo)簽查詢:查詢特定實(shí)體指定標(biāo)簽的能力,常用于基本信息的展示。
(2)人群圈選:分為實(shí)時(shí)和離線圈選。圈選結(jié)果主要用于:
分組判斷:判讀用戶是否在指定的一個(gè)或多個(gè)分組,資源投放、觸點(diǎn)營(yíng)銷等場(chǎng)景使用較多。
結(jié)果集拉。豪≈付ǖ娜巳簲(shù)據(jù)到業(yè)務(wù)方系統(tǒng)中,進(jìn)行定制化開(kāi)發(fā)。
畫(huà)像分析:分析特定人群的行為數(shù)據(jù),消費(fèi)模型等,進(jìn)行更精細(xì)的運(yùn)營(yíng)。
整體的業(yè)務(wù)流程如下:
首先定義標(biāo)簽和人群圈選的規(guī)則;
定義出描述業(yè)務(wù)的DSL之后,便可以將任務(wù)提交到Spark進(jìn)行計(jì)算;
計(jì)算完成之后,將計(jì)算結(jié)果存儲(chǔ)到HIVE和DORIS;
之后業(yè)務(wù)方便可以根據(jù)實(shí)際業(yè)務(wù)需求從HIVE或DORIS中查詢使用數(shù)據(jù)。
DMP平臺(tái)整體分為計(jì)算存儲(chǔ)層、調(diào)度層、服務(wù)層、和元數(shù)據(jù)管理四大模塊。
所有的標(biāo)簽元信息存儲(chǔ)在源數(shù)據(jù)表中;調(diào)度層對(duì)業(yè)務(wù)的整個(gè)流程進(jìn)行任務(wù)調(diào)度:數(shù)據(jù)處理、聚合轉(zhuǎn)化為基礎(chǔ)標(biāo)簽,基礎(chǔ)標(biāo)簽和源表中的數(shù)據(jù)通過(guò)DSL規(guī)則轉(zhuǎn)化為可用于數(shù)據(jù)查詢的SQL語(yǔ)義,由調(diào)度層將任務(wù)調(diào)度到計(jì)算存儲(chǔ)層的Spark進(jìn)行計(jì)算,并將計(jì)算結(jié)果存儲(chǔ)到Hive和Doris中。服務(wù)層由標(biāo)簽服務(wù)、實(shí)體分組服務(wù)、基礎(chǔ)標(biāo)簽數(shù)據(jù)服務(wù)、畫(huà)像分析服務(wù)四部分組成。
標(biāo)簽的生命周期包含5個(gè)階段:
(1)標(biāo)簽需求:在此階段,運(yùn)營(yíng)提出標(biāo)簽的需求和價(jià)值預(yù)期,產(chǎn)品評(píng)估需求合理性以及緊迫性。
(2)排期生產(chǎn):此階段需要數(shù)據(jù)開(kāi)發(fā)梳理數(shù)據(jù),從ods到dwd到dm層整個(gè)鏈路,根據(jù)數(shù)據(jù)建立模型,同時(shí)數(shù)據(jù)開(kāi)發(fā)需要做好質(zhì)量監(jiān)控。
(3)人群圈選:標(biāo)簽生產(chǎn)出來(lái)之后進(jìn)行應(yīng)用,圈選出標(biāo)簽對(duì)應(yīng)的人群。
(4)精準(zhǔn)營(yíng)銷:對(duì)3中圈選出來(lái)的人群進(jìn)行精準(zhǔn)化營(yíng)銷。
(5)效果評(píng)估:最后產(chǎn)品、數(shù)據(jù)開(kāi)發(fā)和運(yùn)營(yíng)對(duì)標(biāo)簽使用率、使用效果進(jìn)行效果評(píng)估來(lái)決定后續(xù)對(duì)標(biāo)簽進(jìn)行改進(jìn)或降級(jí)。
總的來(lái)說(shuō),就是以業(yè)務(wù)增長(zhǎng)為目標(biāo),圍繞標(biāo)簽的生命周期,投入合理的資源,最大化運(yùn)營(yíng)效果。
02 標(biāo)簽生產(chǎn)
接下來(lái)介紹標(biāo)簽生產(chǎn)的整個(gè)過(guò)程。
標(biāo)簽的數(shù)據(jù)分層:
最下層是ods層,包括用戶登錄日志、埋點(diǎn)記錄日志、交易數(shù)據(jù)以及各種數(shù)據(jù)庫(kù)的binlog數(shù)據(jù)。
對(duì)ods層處理后的數(shù)據(jù)到達(dá)dwd明細(xì)層,包括用戶登錄表、用戶活動(dòng)表、訂單信息表等。
dwd層數(shù)據(jù)聚合后到dm層,標(biāo)簽全部基于dm層數(shù)據(jù)實(shí)現(xiàn)。
目前我們從原始數(shù)據(jù)庫(kù)到ods層數(shù)據(jù)產(chǎn)出已經(jīng)完全自動(dòng)化,從ods層到dwd層實(shí)現(xiàn)了部分自動(dòng)化,從dwd到dm層有一部分自動(dòng)化操作,但自動(dòng)化程度還不高,這部分的自動(dòng)化操作是我們接下來(lái)的工作重點(diǎn)。
標(biāo)簽根據(jù)時(shí)效性分為:離線標(biāo)簽、近實(shí)時(shí)標(biāo)簽和實(shí)時(shí)標(biāo)簽。
根據(jù)聚合粒度分為:聚合標(biāo)簽和明細(xì)標(biāo)簽。
通過(guò)類別維度可將標(biāo)簽分為:賬號(hào)屬性標(biāo)簽、消費(fèi)行為標(biāo)簽、活躍行為標(biāo)簽、用戶偏好標(biāo)簽、資產(chǎn)信息標(biāo)簽等。
直接將dm層的數(shù)據(jù)不太方便拿來(lái)用,原因在于:
基礎(chǔ)數(shù)據(jù)比較原始,抽象層次有所欠缺、使用相對(duì)繁瑣。通過(guò)對(duì)基礎(chǔ)數(shù)據(jù)進(jìn)行與、或、非的組合,形成業(yè)務(wù)標(biāo)簽供業(yè)務(wù)方使用,可以降低運(yùn)營(yíng)的理解成本,降低使用難度。
標(biāo)簽組合之后需要對(duì)標(biāo)簽進(jìn)行具體業(yè)務(wù)場(chǎng)景應(yīng)用,如人群圈選。配置如上圖左側(cè)所示,支持離線人群包和實(shí)時(shí)行為(需要分開(kāi)配置)。
配置完后,生成上圖右側(cè)所示的DSL規(guī)則,以json格式表達(dá),對(duì)前端比較友好,也可以轉(zhuǎn)成存儲(chǔ)引擎的查詢語(yǔ)句。
標(biāo)簽有一部分實(shí)現(xiàn)了自動(dòng)化。在人群圈選部分自動(dòng)化程度比較高。比如分組刷新,每天定時(shí)刷新;高級(jí)計(jì)算,如分組與分組間的交/并/差集;數(shù)據(jù)清理,及時(shí)清理過(guò)期失效的實(shí)體集。
03 標(biāo)簽存儲(chǔ)
下面介紹一下我們?cè)跇?biāo)簽存儲(chǔ)方面的實(shí)踐。
嚴(yán)選DMP標(biāo)簽系統(tǒng)需要承載比較大的C端流量,對(duì)實(shí)時(shí)性要求也比較高。
我們對(duì)存儲(chǔ)的要求包括:
支持高性能查詢,以應(yīng)對(duì)大規(guī)模C端流量
支持SQL,便于應(yīng)對(duì)數(shù)據(jù)分析場(chǎng)景
支持?jǐn)?shù)據(jù)更新機(jī)制
可存儲(chǔ)大數(shù)據(jù)量
支持?jǐn)U展函數(shù),以便處理自定義數(shù)據(jù)結(jié)構(gòu)
和大數(shù)據(jù)生態(tài)結(jié)合緊密
目前還沒(méi)有一款存儲(chǔ)能夠完全滿足要求。
我們第一版的存儲(chǔ)架構(gòu)如下圖所示:
離線數(shù)據(jù)大部分存儲(chǔ)在hive中,小部分存儲(chǔ)在hbase(主要用于基礎(chǔ)標(biāo)簽的查詢)。實(shí)時(shí)數(shù)據(jù)一部分存儲(chǔ)在hbase中用于基礎(chǔ)標(biāo)簽的查詢,部分雙寫(xiě)到KUDU和ES中,用于實(shí)時(shí)分組圈選和數(shù)據(jù)查詢。離線圈選的數(shù)據(jù)通過(guò)impala計(jì)算出來(lái)緩存在redis中。
這一版本的缺點(diǎn)包括:
存儲(chǔ)引擎過(guò)多。
雙寫(xiě)有數(shù)據(jù)質(zhì)量隱患,可能一方成功一方失敗,導(dǎo)致數(shù)據(jù)不一致。
項(xiàng)目復(fù)雜,可維護(hù)性較差。
為了減少引擎和存儲(chǔ)的使用量,提高項(xiàng)目可維護(hù)性,在版本一的基礎(chǔ)上改進(jìn)實(shí)現(xiàn)了版本二。
存儲(chǔ)架構(gòu)版本二引入了ApacheDoris,離線數(shù)據(jù)主要存儲(chǔ)在HIVE中,同時(shí)將基礎(chǔ)標(biāo)簽導(dǎo)入到Doris,實(shí)時(shí)數(shù)據(jù)也存儲(chǔ)在doris,基于Spark做HIVE加Doris的聯(lián)合查詢,并將計(jì)算出來(lái)的結(jié)果存儲(chǔ)在redis中。經(jīng)過(guò)此版改進(jìn)后,實(shí)時(shí)離線引擎存儲(chǔ)得到了統(tǒng)一,性能損失在可容忍范圍內(nèi)(Hbase的查詢性能比doris好一些,能控制在10ms以內(nèi),doris目前是1.0版本,p99,查詢性能能控制在20ms以內(nèi),p999,能控制在50ms以內(nèi));項(xiàng)目簡(jiǎn)化,降低了運(yùn)維成本。
在大數(shù)據(jù)領(lǐng)域,各種存儲(chǔ)計(jì)算引擎有各自的適用場(chǎng)景,如下表所示:
04 高性能查詢
分組存在性判斷:判斷用戶是否在指定的一個(gè)分組或者多個(gè)分組。包括兩大部分:第一部分為靜態(tài)人群包,提前進(jìn)行預(yù)計(jì)算,存入redis中(key為實(shí)體的id,value為結(jié)果集id),采用lua腳本進(jìn)行批量判斷,提升性能;第二部分為實(shí)時(shí)行為人群,需要從上下文、API和ApacheDoris中提取數(shù)據(jù)進(jìn)行規(guī)則判斷。性能提升方案包括,異步化查詢、快速短路、查詢語(yǔ)句優(yōu)化、控制join表數(shù)量等。
還有一個(gè)場(chǎng)景是人群分析:人群分析需要將人群包數(shù)據(jù)同多個(gè)表進(jìn)行聯(lián)合查詢,分析行為路徑。目前doris還不支持路徑分析函數(shù),因此我們開(kāi)發(fā)了dorisUDF來(lái)支持此業(yè)務(wù)。doris的計(jì)算模型對(duì)自定義函數(shù)的開(kāi)發(fā)還是很友好的,能夠比較好地滿足我們的性能需要。
ApacheDoris在網(wǎng)易嚴(yán)選中已應(yīng)用于點(diǎn)查、批量查詢、路徑分析、人群圈選等場(chǎng)景。在實(shí)踐中具備以下優(yōu)勢(shì):
(1)在點(diǎn)查和少量表的聯(lián)合查詢性能QPS超過(guò)萬(wàn)級(jí),RT99<50MS。
(2)水平擴(kuò)展能力很強(qiáng),運(yùn)維成本相對(duì)比較低。
(3)離線數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)相統(tǒng)一,降低標(biāo)簽?zāi)P蛷?fù)雜度。
不足之處在于大量小數(shù)據(jù)量的導(dǎo)入任務(wù)資源占用較多,性能還需要優(yōu)化。
05 未來(lái)規(guī)劃
(1)提升存儲(chǔ)&計(jì)算性能
HIVE和Spark逐漸全部轉(zhuǎn)向ApacheDoris。
(2)優(yōu)化標(biāo)簽體系
建立豐富準(zhǔn)確的標(biāo)簽評(píng)價(jià)體系
提升標(biāo)簽質(zhì)量和產(chǎn)出速度
提升標(biāo)簽覆蓋率
(3)更精準(zhǔn)的運(yùn)營(yíng)
建立豐富的用戶分析模型
從使用頻次和用戶價(jià)值兩個(gè)方面提升用戶洞察模型評(píng)價(jià)體系
建立通用化畫(huà)像分析能力,輔助運(yùn)營(yíng)智能化決策
文章內(nèi)容僅供閱讀,不構(gòu)成投資建議,請(qǐng)謹(jǐn)慎對(duì)待。投資者據(jù)此操作,風(fēng)險(xiǎn)自擔(dān)。
2024年的Adobe MAX 2024發(fā)布會(huì)上,Adobe推出了最新版本的Adobe Creative Cloud。
奧維云網(wǎng)(AVC)推總數(shù)據(jù)顯示,2024年1-9月明火炊具線上零售額94.2億元,同比增加3.1%,其中抖音渠道表現(xiàn)優(yōu)異,同比有14%的漲幅,傳統(tǒng)電商略有下滑,同比降低2.3%。
“以前都要去窗口辦,一套流程下來(lái)都要半個(gè)月了,現(xiàn)在方便多了!”打開(kāi)“重慶公積金”微信小程序,按照提示流程提交相關(guān)材料,僅幾秒鐘,重慶市民曾某的賬戶就打進(jìn)了21600元。
華碩ProArt創(chuàng)藝27 Pro PA279CRV顯示器,憑借其優(yōu)秀的性能配置和精準(zhǔn)的色彩呈現(xiàn)能力,為您的創(chuàng)作工作帶來(lái)實(shí)質(zhì)性的幫助,雙十一期間低至2799元,性價(jià)比很高,簡(jiǎn)直是創(chuàng)作者們的首選。
9月14日,2024全球工業(yè)互聯(lián)網(wǎng)大會(huì)——工業(yè)互聯(lián)網(wǎng)標(biāo)識(shí)解析專題論壇在沈陽(yáng)成功舉辦。