蔡琨 閆宇 張云 彭濤 葉秀泳
(中移互聯網有限公司,廣東廣州 510000)
進入5G時代,智能終端設備產生的海量數據,對于業務運營、客戶維系具有較高的價值。如何管理好、使用好這些數據資產,通過數據驅動業務,使能業務的智慧運營?在提升數據應用的實時效率上,我們進行了積極探索和實踐。
隨著數字化時代日新月異的發展,終端設備的智能化,業務服務的精細化,數據運營在使能業務智慧運營發揮著越來越重要的作用,對于數據處理的實時性需求越來越多,例如搜索推薦、實時分析、廣告投放、系統監控。傳統以批處理為主的數據處理模式不能滿足業務要求,需要一種實時的數據處理平臺,以支撐流式數據處理模式的場景,有效發揮大數據和快數據的技術優勢,賦能業務生產的精細化運營。
近幾年,隨著流式數據處理框架的興起,實時數據倉庫這一理念被越來越多互聯網公司所采用。實時數倉是傳統數據庫的新演進,以數據的實時處理和實時應用為主要特征的數據存儲、處理和應用服務平臺。在數據的接入流程上,數據實時采集后,快速清洗,存儲成一定格式的數據結構,并能夠立刻面向外部提供數據服務,整個數據鏈路的時延可以控制在毫秒級,實現了數據的“即采即存即用”。
目前,業界的互聯網大廠都構建起了以Flink為框架的實時數倉,例如阿里是國內最早一批開展實時計算平臺搭建的公司之一,其瞄準和深耕最前沿的實時計算框架Flink,并在此開源框架上,研發了Blink大數據實時平臺,形成了具有數千臺規模的Blink實時生產集群,支撐著廣告、推薦、搜索、大屏等核心生產業務場景。
美團作為國內做大的生活服務平臺,其在實時數倉的建設上同樣走在業界前列。其采用Flink框架迭代了原有的Storm框架,支撐運營、運維、安全和用戶等多種角色的實時場景。
針對業務運營模式不斷向智慧化、高效化的轉變,實時數倉的應用場景不斷豐富,對數據的快速搬運和實時計算,為運營人員提供自動化的策略工具,為用戶提供個性化的產品服務,為企業提高業務轉化率,做大收入;同時,提升智慧運營能力、節省成本、提高效率。中國移動的數字業務,實時數倉主要用于服務以下場景:
會員營銷:針對用戶屬性特征和行為數據的實時分析,為用戶精準推送會員產品。結合內容熱度、產品價格、營銷轉化率,構建會員商業價值模型,實時計算推送策略,挖掘每一個用戶流量價值最大化;
推薦搜索:實時采集用戶的行為數據,結合用戶的搜索內容輸入,預測用戶偏好和意圖,在搜索內容直達和搜索結果中為用戶推薦個性化的產品服務;
廣告投放:在數字業務的商業化變現場景中,實時計算廣告的投放轉化數據,結合廣告主的動態出價,綜合快速確定投放的策略和內容,提高變現的坪效,提升渠道觸點價值;
決策支持:用戶行為特征、業務交易指標等數據實時更新,為運營提供最新的市場變化行情;實時大屏,形成動態地圖和看板,為領導提供實時全視圖;
實時監控:系統性能、接口交互等數據實時監控和告警提醒,提升系統的故障發現時效和恢復及時性;
實時風控:異常行為檢測和識別,最快最精準的發現異常違規的交易行為防范商家刷單,防范用戶薅羊毛,打造安全可信的交易生態環境,確保業務損失最小化。
對標業界最先進的實時計算技術,以生產應用場景需求為導向,構建以Flink流計算框架為核心的實時數倉,分為接入層、計算層、匯聚層、服務層的4層架構(見圖1),功能分層劃分,滿足業務的實時需求。
圖1 實時數倉架構圖
接入層:利用各種數據接入工具收集數據源,包括binlog 日志、埋點日志、以及后端服務日志,數據被收集同步到 Kafka 中;這些數據不只是參與實時計算,也會參與離線計算,保證實時和離線的原始數據是統一的;在接入層中,集成了數據實時ETL工具,提供將底層數據進行過濾、清洗、轉換等處理,包括聯表處理、維度補全,基于事實表和維表的數據信息,加工形成中間層的臨時數據或臨時寬表。
計算層:實時數倉的核心,服務對匯聚數據的邏輯化運算和處理。目前,主要使用Flink、Sparkstreaming和OLAP數據庫自帶的計算引擎,Flink計算引擎主要用于實時數據同步、流式ETL、關鍵系統秒級實時指標計算場景,Sparkstreaming主要用于復雜多維分析的準實時指標計算需求場景,HIVE和 ClickHouse主要滿足多維自助分析、對查詢響應時間要求不太高的場景。在計算層,面向不同的對象,如訂單、用戶、產品等,將基礎數據分類匯總為不同的數據子集。針對這些數據子集,結合不同業務場景的需求,運用不同的計算框架,實時或離線計算成結構化、規范化、可應用的結果數據。
匯聚層:固化計算層的輸出結果,將用戶標簽、分析指標、推薦結果、轉化效果、黑白名單等,沉淀、匯集在改層,實時或定期進行更新,可面向服務層進行直接檢索或調用,同時對外提供統一查詢服務、元數據及指標管理、數據質量及血緣;匯聚層,主要使用ES、Redis、Hbase、tidb等實現了計算層的數據sink。
服務層:將匯聚層的數據,通過多種方式封裝,如api和sdk, 形成可實時對外輸出的能力,將實時數倉的數據,應用于搜索推薦、大數據風控、實時BI、廣告投放、運維監控等場景中,直接支撐業務的實時數據需求。
聚焦現有生產場景,在數字內容服務場景中,落地實時數倉的第一個應用,通過對系統接口數據的實時采集和計算,實時監控平臺間的交互狀態,為運營提前預警。性能提升:監控顆粒度更細致,由10min/次縮短到1min/次。計算速度更快,時延由500ms以上縮短到50ms以內。
支持會員營銷、廣告投放、商業化應用分發的應用場景。累計發展 500萬生活服務會員,拉動2億信息費收入。服務超過100家廣告主,覆蓋超過2000萬用戶曝光,實現超過1億次應用下載量。
在中國移動的品牌用戶運營項目中,對常態化的運營和熱點活動運營,如秒殺活動、節假日營銷,實現運營一站式實時分析,用戶漏斗模型實時監控預警,用戶特征自動化分析,實時推薦排序4個實時場景,提高了業務運營智慧化、高效化、自動化的水平,同時為用戶提供了更好的用戶體驗感。結合多維度的用戶數據,實時開展數字業務的個性化推薦,A/B test結果:用戶訂購轉化率提升約10倍。
隨著Flink作為主流的實時計算技術的快速發展,Flink生態的不斷演進和迭代,流式數據處理性能不斷優化,其穩定性、低時延、可靠性、易用性不斷的提升。同時,流批一體化的實時數倉,兼顧了流處理和批處理的雙重特點,既滿足了傳統離線計算的需要,也順應了快數據處理的發展,達到了一體化數據開發、一體化數據應用的成效,為運營商數字業務的智慧運營提供了強大的數據技術工具。