阿里1688實時數(shù)據(jù)工程實踐

導(dǎo)讀:在天貓、淘寶網(wǎng)購過程中,商品的推薦與廣告的前端展示是怎樣的?兩者的底層數(shù)據(jù)服務(wù)又是怎樣構(gòu)建的?今天跟大家講述面向阿里1688業(yè)務(wù)的實時數(shù)據(jù)工程實踐。
本次分享主要分為三部分:首先講解實時數(shù)據(jù)工程實踐的意義;然后介紹中臺體系,因為中臺的基礎(chǔ)非常完善,所以面向業(yè)務(wù)時,工程實踐特別高效、低成本;最后通過實際案例讓大家深刻了解實時數(shù)據(jù)工程。
01 實時數(shù)據(jù)工程
1688是一個電商網(wǎng)站,每天會有千萬級的訪問流量,百萬級的訂單流量,每天能有數(shù)十億成交額。
一個網(wǎng)站想要發(fā)展,最關(guān)注的肯定就是買家數(shù),營收等一些指標(biāo);如果涉及到目標(biāo),就離不開匹配效率、市場機制、商業(yè)化 ( 如廣告投放等 )。
支撐這些目標(biāo)的通常是算法:
針對匹配效率,有實時個性化搜索,推薦算法的開發(fā);
針對市場機制,有業(yè)務(wù)需求方的實時調(diào)控策略;
針對商業(yè)化,有搜索推薦即廣告物料的實時上下架調(diào)整。
算法模型的底層就是實時特征工程,分為兩部分:
用戶行為數(shù)據(jù)工程體系。主要作用在場景中,通過捕捉用戶的行為信息,構(gòu)建用戶的數(shù)據(jù)特征體系,呈現(xiàn)更符合客戶價值的信息。
構(gòu)建業(yè)務(wù)與貨物的實時系統(tǒng)。由原先在搜索推薦中離線計算,進行實時化提速,由原來的 T+1 天改進到現(xiàn)在 1h、1min 甚至秒級的數(shù)據(jù)計算響應(yīng)。
實時數(shù)據(jù)工程所實現(xiàn)的用戶行為數(shù)據(jù)工程體系、業(yè)務(wù)實時化建設(shè)依賴于阿里巴巴非常完善的中臺基礎(chǔ)體系。
02 中臺基礎(chǔ)
簡單介紹下中臺基礎(chǔ),主要分為:在線服務(wù)體系、實時計算引擎與離線數(shù)據(jù)同步工具、數(shù)據(jù)存儲。
在線服務(wù)體系:
搜索引擎 HA3,是阿里巴巴搜索團隊開發(fā)的搜索引擎平臺,它為阿里集團包括1688、淘寶、天貓在內(nèi)的核心業(yè)務(wù)以及各垂類業(yè)務(wù)提供搜索服務(wù)支持。
推薦引擎 BE(BasicEngine ),包含搜索 Query 的各種召回 ( 如 item2item,behavior2item ) 及一些簡單的數(shù)據(jù)處理邏輯如合并、關(guān)聯(lián)、過濾、排序等。
在線打分系統(tǒng) RTP,在搜索與推薦之上,支持業(yè)務(wù)中深度模型的在線打分服務(wù)。
igraph 圖索引及查詢系統(tǒng),存儲用戶的行為信息。在實踐中,還會用來存儲如 kv、kkv 結(jié)構(gòu)的服務(wù)化數(shù)據(jù)。
實時計算引擎與離線數(shù)據(jù)同步工具:
阿里內(nèi)部使用較多的 Blink。大家可以認為是 Flink 的升級版,功能更加完善,也更加強大,甚至已經(jīng)成為了阿里巴巴實時計算的主流引擎,下面將要講的案例大都是以 Blink 為基礎(chǔ)實現(xiàn)的。
異構(gòu)數(shù)據(jù)源之間的同步工具 DataX。即通過底層的 ODPS ( Open Data Processing Service ) 服務(wù)將不同數(shù)據(jù)源的數(shù)據(jù)進行同步。
數(shù)據(jù)存儲:
OPDS 開放數(shù)據(jù)處理服務(wù),基于阿里飛天分布式平臺,支撐 GB/TB/PB 級的數(shù)據(jù)計算服務(wù)。
Tddl 是分表分庫的一個中間件,可以認為是類似于 MySQL 的一種工具,在其上進行封裝后,分表分庫可以橫向縱向的無限擴展。
03 工程實踐
下面將面向業(yè)務(wù)類型,進行案例講解,一是系統(tǒng)業(yè)務(wù)數(shù)據(jù)實時化的案例;二是根據(jù)用戶行為的實時數(shù)據(jù)服務(wù)。
1. 系統(tǒng)業(yè)務(wù)數(shù)據(jù)實時化
任務(wù):因為搜索推薦以及促銷活動商品池更新汰換,將導(dǎo)致商品的各種信息發(fā)生變化。從原始數(shù)據(jù)源中的數(shù)據(jù)實時同步更新到服務(wù)引擎中,就顯得非常有必要。
案例1:商品統(tǒng)計數(shù)據(jù)實時化
要求:商品的成交金額、買家數(shù)、其他算法指標(biāo)在線上發(fā)生變化時候,就能在線上的搜索引擎中實時顯示出來。
針對數(shù)據(jù)準(zhǔn)確性不同要求,設(shè)計了差異化的解決方案:
賣家或者買家在前端頁面展示出來的數(shù)據(jù)是非常精準(zhǔn)的,這個用中間的數(shù)據(jù)庫做轉(zhuǎn)存,然后再進入搜索引擎。
在線打分、商品排序階段,一些算法的因子可能存在時效性的誤差,我們是實時計算算好直接進入搜索引擎,更加高效,更加輕量,延遲更低,并發(fā)度可以更多。
全量+增量互補的方案
上面是實時的解決方案,對于 T+1 級別的數(shù)據(jù),要把 T-n->T 天的數(shù)據(jù)做一個全量的計算,再進到搜索引擎中,因為每天的搜索引擎是做一個全量更新的。
案例2:推薦商品的實時更新汰換
背景:在1688網(wǎng)站,每年要舉行3次S級的大促,類似于天貓?zhí)詫毜碾p11大促,大促會場一直是買家流量的主要承接場景,是大促的主要陣地。
原來的時候,算法是通過離線進行召回的,存在召回能力不足,效果不好的問題。
改進為算法實時召回,并且運營可以配置召回及打分方式,實現(xiàn)大促會場商品的實時更新汰換和算法能力結(jié)合,是運營的重要抓手,也對大促會場的匹配效率起到關(guān)鍵作用。
案例3:廣告引擎和推薦引擎之間的數(shù)據(jù)實時同步
背景:2018年下半年,推薦商業(yè)化:當(dāng)時廣告引擎和推薦引擎是異構(gòu)的,召回的方式完全不一樣,廣告走的是搜索的邏輯,根據(jù) Query 詞;而推薦根據(jù)用戶行為、或者冷啟動進行召回。
現(xiàn)在將廣告的數(shù)據(jù)同步到推薦引擎中,將千萬級別的全量廣告商品集進行精品篩選,得到百萬級別的精品商品集。使用 Blink batch 將這些數(shù)據(jù)每5分鐘全量更新一次,并按照商品投放計劃消息把數(shù)據(jù)更新給推薦廣告引擎。
2. 實時數(shù)據(jù)服務(wù)
實時數(shù)據(jù)服務(wù)就是將用戶行為數(shù)據(jù)從埋點收集到最終應(yīng)用的整個過程,構(gòu)成實時數(shù)據(jù)服務(wù)的閉環(huán)體系。利用用戶的歷史行為數(shù)據(jù),進行加工、計算、孵化,作用到每一個算法需要介入的場景中,比如實時搜索、個性化推薦、會場場景等。
首先,通過場景的規(guī)范埋點進行用戶行為數(shù)據(jù)的采集,得到原始數(shù)據(jù)存儲 TT 流,這些是阿里日志中臺做的工作。
其次,將數(shù)據(jù)通過 Blink 進行打標(biāo)簽,這里是通用標(biāo)簽,跟業(yè)務(wù)無關(guān)。然后,根據(jù)業(yè)務(wù)場景對數(shù)據(jù)進行多維度的聚合加工,如用戶維度、商品維度、場景維度等。最后,建立統(tǒng)一的服務(wù)層,對外提供接口,將數(shù)據(jù)應(yīng)用到業(yè)務(wù)場景中。
最后搭建的實時數(shù)據(jù)服務(wù)解析如上圖所示:
當(dāng)用戶進入網(wǎng)站后,通過用戶標(biāo)識,用戶的點擊,收藏,加購,支付的數(shù)據(jù)將會實時進入到實時數(shù)據(jù)服務(wù)層。
用戶在瀏覽商品的時候,會對商品做曝光過濾處理,因為不希望用戶每次進入網(wǎng)站都看到相同的東西,而是根據(jù)算法將商品展示的序列進行優(yōu)化。
每個商品,根據(jù)商品的 id 可以在后臺得到商品實時的 CTR/CVR 數(shù)據(jù),由中臺基礎(chǔ)的 Blink 提供實時計算。
根據(jù)商品 id,可以實時查詢某種商品的成交額,支持批量查詢。
針對于新形態(tài)的挑貨與直播,通過 feeds id 可以得到 feeds 的實時 CTR/CVR。
在大促會場中,可以通過場景標(biāo)識+分桶標(biāo)識,快速得到對應(yīng)場景的一些報表數(shù)據(jù) ( 曝光、點擊、成交、相應(yīng)的 uv 等 )。
用戶標(biāo)識+場景標(biāo)識,根據(jù)得到的用戶在指定場景下的統(tǒng)計數(shù)據(jù),可用于實時化的個性化分流、推薦等。
場景的標(biāo)識,得到場景的總體統(tǒng)計,可以用于流量分配機制的完善。
特別推薦一個分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關(guān)注的小伙伴,可以長按關(guān)注一下:
長按訂閱更多精彩▼
如有收獲,點個在看,誠摯感謝
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!