流式圖計算在螞蟻大數據場景的應用
在大數據領域中,流式圖計算(Streaming Graph Processing)作為一種用于處理實時數據流的計算模型和技術,結合了圖計算和流式數據處理的概念,旨在處理數據流中的節點(vertices)和邊(edges)之間的關系,以實時分析、處理和理解不斷涌現的數據。螞蟻集團對于流式圖計算在實時數據處理與分析領域有較成熟的體系。今天主要介紹螞蟻集團實時數據體系和關鍵技術、基于流式圖計算的實時流量歸因場景應用,以及基于流式圖計算在支付寶營銷場景實時 OLAP 和數金場景實時用戶行為意圖分析的探索。
一、螞蟻實時數據整體介紹
首先介紹的是螞蟻集團實時大數據能力框架圖。
1、螞蟻實時能力大圖
總體分基礎技術、實時核心能力、業務三個層次?;A技術包含計算、存儲、消息隊列等,今天重點分享的流式圖計算引擎就在這里。實時核心能力自下向上依次是技術架構&研發范式、數據資產、數據解決方案。技術架構&研發范式包括“流批一體”、“湖倉一體”等架構,也包括針對不同業務情景的研發范式和架構約束。技術架構之上是資產層,類似離線數倉我們為實時也構建了一套資產管理和治理體系。最上面是領域解決方案,面向類似業務場景提供一套通用的實時領域解決方案,比如營銷活動、實時風控等場景。基于這個能力大圖,逐漸實現以需求驅動為主向數據驅動業務發展的整體戰略目標轉化。
2、螞蟻流批一體架構:從“物理”到“邏輯”代碼的數據研發
這里簡要介紹實時能力大圖中的“流批一體”。流批一體能力的應用指的是一種應用程序能夠同時處理實時數據流和批量數據的能力。換句話說,該應用能夠靈活地在實時情境下處理連續的數據流,也可以在一段時間內處理累積的數據批次。Apache Flink 和 Apache Spark 是兩個流行的分布式計算框架。這兩個框架都具有處理實時數據流和批處理數據的能力。
對于流批一體可以有兩個層面的理解:
- 從引擎角度:unified 引擎,它指的是一種引擎,在底層能夠統一處理流式數據和批處理數據。這意味著開發人員可以使用同一套引擎來處理不同類型的數據處理需求,而不需要切換或使用不同的引擎。
- 從業務研發角度:開發人員只需要編寫一套代碼,就能夠處理實時數據流和批處理數據,這樣可以減少開發工作量,提高開發效率,并且更容易維護代碼。
螞蟻的解決方案是在數據研發平臺層實現開發一套邏輯代碼實現流批一體,并在此基礎上做了大量優化。比如代碼里可以根據“__source_type__“這些系統級別的關鍵詞(值為“bounded”和“unbounded”)進行不同位點和分區的流式和批式處理。
3、螞蟻流式圖計算(TuGraph-Analytics)系統架構
螞蟻流式圖計算系統的整體框架包含了容器資源、流圖引擎與 API、數據應用,及計算控制后臺幾個層面,為實現高效的數據處理和分析提供了完整的架構。在該框架中,底層為強大的容器基礎設施,涵蓋了 Kubernetes(k8s)和Ray,為上層提供了可擴展性和資源管理。在此基礎上構建了流圖引擎,為數據流處理和分析提供核心支持,其中包括 GraphView API、Unified Graph Engine 和 Graph State。最上層則是流圖數據應用,涵蓋了轉化歸因、實時 OLAP、行為意圖等多個領域,同時展望未來的發展,計劃在廣告場景中引入鏈路診斷,以進一步提升系統的功能和價值。整個框架在數據處理的各個層面提供了一體化的解決方案,為實時數據處理和分析應用提供了強有力的支持。
二、流式圖計算在實時流量歸因場景的應用
1、流量轉化
左邊是一個流量轉化漏斗,指在數字營銷和業務運營中,通過不同階段的處理和轉化,將大量的潛在用戶或訪問者逐步引導、篩選,最終實現特定目標的過程。包括了公域到商家私域/行業陣地的流量分發、私域交易轉化、流量商業化變現幾個環節。從平臺視角,通過為商家進行流量引導、提升交易轉化,最終實現流量的商業化價值。
以用戶在支付寶的訪問為例,可以詳細介紹如何通過流量漏斗實現從公域流量到商家私域,再到交易轉化,最終實現商業化:
- 商家私域/行業陣地的流量分發: 典型的公域流量如在支付寶首頁空格、腰封的曝光。如何在公域流量場將合適的私域或行業內容分發推薦給用戶是個非常重要的課題。用戶可以通過點擊入支付寶首頁的曝光內容跳轉到相應的小程序或承接頁面。在這個階段,可以通過精準的內容定位、個性化推送等方式,將用戶進一步引導到感興趣的領域,從而提高用戶的黏性和互動性。
- 私域交易轉化: 在商家的私域內,可以采取多種策略促使用戶進行轉化,例如訂閱、入會等。這些操作可以進一步深化用戶與商家之間的互動,建立用戶畫像,私域中的用戶已經顯示出一定的興趣和親近度,因此更容易進行交易轉化。
- 流量商業化變現: 一旦用戶完成交易轉化,平臺就達到了流量變現的目標,即通過用戶的付費行為實現商業化價值。
右邊是一個對應的廣告商業化的漏斗。從曝光到點擊再到轉化,可以通過廣告中不同的 CPM(千次曝光)、CPC(點擊)、CPA(動作)計費模式來實現流量的實時跟蹤與變現。
2、流量轉化歸因模型
流量轉化歸因模型在數字營銷等場景中具有關鍵作用,它可以幫助分析和理解用戶在不同階段的行為對最終轉化(例如購買、注冊等)的貢獻,從而優化營銷策略和資源分配。這有助于了解用戶決策路徑、優化轉化率,以及對不同營銷渠道和策略進行評估和優化。
用戶路徑建模:客戶端上報的埋點數據將被用于構建用戶路徑模型,即用戶在整個流程中的行為路徑。這可以通過分析用戶在頁面之間的轉換關系來實現,整個過程會形成一個動態的路徑圖。
該模型包含以下節點:
- 路徑起點:轉化事件發生前最后一次進入支付寶首頁
- 裁剪點:從相同的頁面跳出又跳入,兩次跳入之間沒有發現轉化事件,中間日志對轉化達成無效,可以剪裁
- 有效轉化節點:轉化主鏈路上的有效轉化日志
- 無效轉化節點:轉化鏈路上的無效轉化日志
- 路徑終點:轉化事件前的最后一條日志
經過裁剪的最終轉化鏈路:A(1)->B(6)->F(7)->G(8)->H(9)
3、實時流量轉化歸因整體技術架構
這是實時流量轉化歸因的整體技術架構,其中數據部分比較核心的是基于業務中間層的轉化事件定義(如交易支付、權益核銷等)和轉化數據模型的 Schema 歸一化。通過對不同轉化事件類型的 Schema 歸一化可以屏蔽不同業務的差異,便于下游消費使用。在此基礎上,通過邏輯視圖可以實現對不同業務場景分類消費的支持,大大提升了數據消費的效率。最后是基于流圖的轉化歸因計算,輸入是流量和轉化事件,輸出是轉化的歸因結果。
4、基于流式圖計算的的實時流量轉化歸因
目前,用戶行為日志主要以“訪問”和“點擊”為主,“曝光”由于數據量大、上傳延遲高暫沒有使用。根據實時的用戶訪問行為日志和用戶點擊行為日志通過流式圖計算引擎進行實時構圖,當轉化事件到達時進行歸因路徑計算,即根據流量轉化歸因模型從橙色節點(路徑起點)到綠色節點(路徑終點)的鏈路計算,最后將其結果輸出到下游的 MQ 和 OLAP。
該系統從用戶端到后端的數據采集時效已經達到五分鐘90%以上,十分鐘接近100%,已可以滿足絕大多數業務需求。
5、實時流量轉化歸因數據鏈路
以上是實時生產過程中的實時轉化鏈路,上游主要有兩種數據源,一種是客戶端埋點采集,一種是服務端數據采集(如服務端日志、數據庫 binlog)。一般而言服務端數據采集實效性比較快,除了中間件的抖動,其上報速度在秒級。整個鏈路的主要延遲集中在流量上報環節和流圖計算環節,其中流量上報環節由于客戶端、網絡等多種因素變量較大,而流圖計算環節則是可控的人為設定的等待時間窗口,因為實際的流量、轉化事件上傳不是嚴格有序及時上傳的,這個等待窗口大小的設定也要結合歸因的時效性和準確性綜合考慮權衡。最終這些數據會加工處理成 DWD 中間層供下游營銷等應用場景使用。
三、流式圖計算在實時 OLAP 場景的探索
1、后置計算
后置計算是流計算的一種研發模式。當前螞蟻實時計算以“前置計算”為主,正逐步發展成為包括“后置計算”在內的支持不同業務場景的“多模式計算”研發模式。
- 前置預計算模式:在數據進入 OLAP 系統之前,提前對部分計算進行處理,從而減輕后續計算的負擔,加速數據處理和分析過程。廣泛應用于大數據量,數據時效和查詢性能要求高的場景,如實時大屏。其優點為數據時效快,查詢性能高。其缺點為數據容錯性差,靈活性低。
- 前置打寬后置聚合:從 TP 到 AP 階段進行數據打寬,在 AP 階段進行聚合。其優點為靈活性適中,數據容錯高。缺點為查詢性能一般。因而適用于業務確定性比較高的場景,例如直播分析看板。
- 后置聚合:從 TP 到 AP 階段進行實時同步,保存原始數據,其優點為靈活性較高,且數據容錯率高,但是查詢性能低。適用于業務不確定性比較高的場景,例如自助分析。
以實時特征研發為例,基于后置計算模式后,新增特征只需要在特征平臺進行特征視圖配置,無需為不同特征加工建設不同的 Flink 實時任務,實時特征研發效率得到極大提升。
2、后置計算:基于流式圖計算在營銷實時 OLAP 場景的探索
接下來介紹支付寶營銷場景后置計算的一個案例,即流式圖計算在實時 OLAP 場景的探索。采用流圖進行后置計算后,在數據模型和研發模式上都發生了比較大的變化。
數據模型方面,過去在我們完成基礎的 ODS、DWD 建設后,隨著時間和復雜度的增加,ADM 應用層的數量會急劇上升(各種維度的指標報表),這給開發和運維工作都帶來了極大壓力。采用流圖后,基于用戶去做圖建模,將權益和玩法等業務層面與用戶本身建立關系,形成一個圖關系網,再進行后置分析。
研發模式方面,經典的研發模式是指標需求驅動研發,先采集上游數據,形成維度等中間表,再根據不同的場景去計算對應需求的指標。這個模型的缺點是對于內部運營非常態化需求的指標數據而言,浪費了前置計算量?;诹鲌D的后置計算可以有效的避免這個浪費,只有業務有需求需要查看數據時,才進行計算,即保證了數據時效性也避免了計算浪費。除此之外,模型的靈活性比較高,對于臨時增加計算節點和指標等行為的代價比較小??偠灾?,后置流圖計算更符合如今高復雜度,高靈活性需求的應用場景。
流式計算引擎與傳統基于 OLAP 的引擎內測對比發現,對于單表場景,流式計算引擎性能稍顯遜色,但是多表關聯場景,其性能明顯優于基于 OLAP 的引擎。
四、流式圖計算在實時用戶行為意圖分析場景的探索
另一個我們基于流式圖計算的探索是在數字金融領域,在財富場景進行的用戶行為意圖分析。以前,我們對用戶行為意圖的分析主要是使用一維的用戶行為特征或者二維的用戶行為序列。類似上面提到的流量轉化歸因的例子,用戶實際的行為是復雜多變的、噪音較多,傳統的數據模型在意圖識別準確度,尤其是大規模數據的精準意圖識別上還存在比較大的挑戰。
上圖通過對用戶行為意圖的實時構圖及對不同節點意圖分的計算,得到用戶最有可能感興趣的產品。比如用戶在進入支付寶理財 tab 頁,可能在不同的頁面(如引導、承接、交易)訪問了不同的基金產品,這其中結合基金產品的 spm 和訪問次數會計算一個意圖分,并綜合整個路徑中不同意圖分的情況得到一個用戶最可能交易的意圖節點。另一方面,基于這些用戶偏好的產品節點,可以進一步推演出用戶感興趣的產品類目,基于這些數據可以實現更豐富的推廣營銷。
基于流圖可以實現更加快速精準識別用戶行為意圖,與傳統的推薦算法不同,作為一個實時數據方案,它具備高時效性、過程白盒化、可人工干預擴展節點、消除噪音意圖識別更精準、后置計算效率更高等特點。
五、未來展望
展望未來主要包括以下這些:
- 基于流圖的實時 OLAP 在營銷場景的推廣應用
- 基于流圖的實時用戶行為意圖分析在數金、內容等場景的推廣應用
- 基于流圖的實時歸因能力在廣告鏈路診斷場景的應用探索
- 流圖開源項目的貢獻參與