tft每日頭條

 > 科技

 > apachedoris架構原理及特性

apachedoris架構原理及特性

科技 更新时间:2024-11-24 13:27:37

導讀:本次分享題目為基于Doris的知乎DMP系統架構與實踐,由知乎用戶理解&數據賦能研發Leader 侯容老師帶來經驗分享,主要圍繞四個方面展開介紹:

  • 背景:知乎DMP的業務背景、流程、特征及功能介紹
  • 架構與實現:知乎DMP的架構設計和實現
  • 難點及解決方案:知乎DMP平台建設的難點和解決方案
  • 未來展望:知乎DMP平台下一步叠代方向

apachedoris架構原理及特性(基于Doris的知乎)1


01

背景

DMP本身是個老生常談的業務領域,在廣告系統出現的時候就有了類似DMP平台的系統。業界做得比較好的有騰訊廣點通、阿裡達摩盤。

知乎搭建DMP的原因可簡單概括為:知乎存在大量站内運營的業務需要,搭建DMP平台需要支持同知乎内部系統的對接,搭建DMP存在一定量的知乎定制化需求,需要适配知乎的内部運營流程。

1. DMP業務背景

首先,抛出問題:知乎業務中具體存在哪些問題需要解決?為什麼要建立DMP平台來解決這些問題?

下面圍繞業務模式業務場景業務需求等三個主要方面,來具體說明建設DMP平台的必要性和功能定位。

apachedoris架構原理及特性(基于Doris的知乎)2

(1)業務模式

如何找出核心客戶,圍繞某個客戶應該如何運營、如何适配營銷操作、以及廣告投放,如何進行人和業務的匹配,都需要完成對人的定向、對人的畫像洞察,以及對人的理解和運營操作,這些都是DMP的主要業務定位。

知乎DMP主要包括三種業務模式:

  • 站外轉站内,典型的場景是,在廣告側有廣告主在知乎平台投放廣告,觸發站外人群,如何通過一個Mapping将站外人群承接到站内,且在站内的各個系統上能夠承接這些用戶包。
  • 站内轉站外,典型的場景是,增長投放方面,如何在知乎平台找到一個定向價值用戶群,再針對這些用戶包到三方平台進行廣告投放。
  • 站内自閉環,主要是知乎内部運營,包括内容運營、用戶運營、活動運營等,一方面增加内容宣傳和營銷;一方面完成客戶的定位及客群分析,解決一些客戶問題;策劃一些活動,促成客戶價值提升和針對營銷效果達成。

(2)業務場景

針對上述三種業務模式,知乎DMP适配了多種業務場景:

  • 信息流,比如推薦場景,有一些定向推薦、定向提權等訴求,把某些内容推給誰,某些内容針對特定客戶進行定向提權,去重新打分等。
  • 廣告,比如實時競價,基于一個客戶身上挂的廣告特征,進行實時競價,排序篩選最合适的廣告推送。
  • 詳情頁,比如彈窗提示,當用戶進入詳情頁,根據觸發的規則條件情況,進行相關的訪問引導。
  • 活動平台,比如目标用戶,對該活動是否可見?哪些活動可見?等進行管理适配。
  • 觸達系統,比如推送、消息、彈窗、短信等,針對具體的客群進行Push、站内信等觸達。
  • 站外投放,比如站外廣告,面向特定的人群,進行站外廣告觸達。

(3)業務需求

基于三種業務模式、六種業務場景的拆解分析,提煉出人群管理的功能需求主要包括:

  • 人群對接,主要是對接系統,無論是站外系統還是站内系統,基礎需求是用戶命中了哪些人群包——以廣告系統為例,人群包的ID可以Mapping為一則廣告,即一個用戶身上可以挂哪些廣告;其次是人群包(内部),把人群推薦給誰,或者把哪些内容推送給該人群;最後是人群包(外部),主要圍繞外部廣告投放場景,提供人群包服務。後兩種主要在内部統一ID和外部多平台ID等管理存在差異。
  • 人群定向,主要包括導入、導出、标簽圈選、人群泛化、人群用戶量預估等基礎功能。
  • 人群洞察,包括人群包内部畫像洞察、不同人群包之間的差異對比分析等。

2. DMP業務流程

基于知乎DMP業務模式提煉、業務場景刻畫、業務需求澄清等背景梳理,結合站内系統、站外系統交互協同,形成了一套業務流程。

apachedoris架構原理及特性(基于Doris的知乎)3

概括為四大核心功能模塊

  • 人群定向模塊,包括人群圈選、人群泛化、用戶導入等;
  • 目标用戶ID-Mapping模塊,包括站外Mapping、站内Mapping等對接适配;
  • 用戶洞察(效果評估)模塊,包括構成分析、對比分析等;
  • ABTest(活動優化)模塊,包括策略設置、實驗組織等。

圍繞站内運營自閉環、站内向站外投放閉環、站外向站内廣告閉環等人群運營,可以靈活适配活動落地。

3.DMP畫像特征

在人群定向模塊,存在大量的人群标簽篩選、組合标簽篩選的應用要求,對DMP平台的畫像特征庫提出很高的要求。

知乎DMP按照三層結構進行畫像特征分類設計

apachedoris架構原理及特性(基于Doris的知乎)4

第一層分類:按主題分組,目前主要包括個體信息、消費特征、創作、興趣、圖文等8組。

第二層分類:按屬性分組,比如個體信息主題包括基礎特征、設備屬性、社會屬性等,知乎DMP目前有40組屬性特征分組。

第三層分類:按标簽類分組,比如性别類、手機品牌類、話題類等,目前有120類标簽。

基于以上三層特征設計,知乎DMP畫像特征庫已有标簽(标簽值)超過250萬。

4.DMP功能梳理

按照業務功能和特征管理兩大能力進行說明:

  • 業務功能主要服務于運營、營銷、站内應用系統等,包括人群定向、人群洞察、ID-Mapping等。
  • 特征管理的核心是特征應用接入,在大規模标簽特征基礎上,結合用戶群體關聯、以及實時特征要求,這部分技術支撐依賴比較重。

詳細的功能分布參見下圖:

apachedoris架構原理及特性(基于Doris的知乎)5

--

02

架構與實現

一套好的架構設計,能夠有效降低業務功能實現的複雜度;能夠支撐業務功能動态擴展與叠代;對于有外部交互的系統,能夠保障系統的兼容性和開放性;能夠保持系統運維的便捷性。

1.DMP平台架構

知乎DMP平台的整體架構,不同模塊進行差異化設計:

對外模塊:

lDMP接口:高穩定性、高并發高吞吐。

lDMP前台:操作簡單,低運營使用成本。

lDMP後台:日常開發工作配置化,降低開發成本。

業務模塊:

  • 人群圈選:可擴展。新增特征0成本,新增規則低成本。
  • 人群洞察:可擴展。新增特征0成本,新增洞察方式低成本。
  • 人群泛化:可擴展。新增泛化方式低成本。
  • 特征生産:擴展成本低。原子特征低成本生産,派生特征通過後台可配置。
  • ID-Mapping:屏蔽ID打通邏輯。
  • 計算任務運維:屏蔽機器資源和任務依賴的邏輯。
  • 存儲:可擴展可持續,不因業務成長而導緻成本大幅增加。

架構分布詳情,如下圖示:

apachedoris架構原理及特性(基于Doris的知乎)6

2.DMP平台功能盤點

按照業務向、基礎向兩部分進行特征功能介紹。

(1)業務向功能

核心功能為人群定向、人群洞察兩部分,分别支撐業務應用側和價值運營側服務。

apachedoris架構原理及特性(基于Doris的知乎)7

知乎DMP業務向功能上線運營情況介紹:

  • 支持了5.2萬人群定向;
  • 支持340次人群洞察;
  • 支持59次人群泛化。

(2)基礎向功能

主要包括特征建設、ID-Mapping能力、計算任務運維等三部分工作,形成三組專業小組分工協同。

apachedoris架構原理及特性(基于Doris的知乎)8

知乎DMP基礎向功能運營情況介紹:

  • 每日2.0 TB共5日11TB(離線、實時)特征——Doris。
  • 120個離線生産任務和5個實時生産任務。
  • 每日6100次人群評估,300個人群圈選,1-2個人群洞察,1個人群泛化任務。

3.DMP特征數據鍊路及存儲

數據導入/存儲、快速查詢/讀取,是DMP平台關鍵的數據技術環節。

DMP的批量、流式特征如何建設并落地到相應的存儲?

apachedoris架構原理及特性(基于Doris的知乎)9

(1)離線标簽鍊路(Spark批處理計算過程)

  • 基于Hive中的各類業務數據,進行SQL批量計算,生成tag表(落地Hive表);
  • 基于tag表再進行Mapping計算——主要通過用戶/設備核心完成的統一ID計算,生成連續的自動ID,同時完成ID、Imei、IDsa等統一轉換和唯一綁定;
  • 如果是一個新用戶,則生成一個新ID,如果是一個老用戶,則直接獲取已有ID,這個過程維護了一張ID-Mapping表,繼而附加各類MD5加密等處理過程,形成用戶唯一ID、各類ID映射關系表。知乎DMP中的ID-Mapping表已存儲約8.5億的ID轉化寬表數據。

(2)實時标簽鍊路(Flink實時計算處理過程)

  • 基于Kafka中的各類業務數據,進行流式特征計算,生成實時tag表(Kafka數據);
  • 基于tag表進行流式Mapping計算,通過用戶/設備核心完成統一ID計算(過程同上)。

(3)枚舉采集

即250萬标簽的應用服務能力。

知乎DMP平台現有的125個标簽類分組,分别由120個離線業務存儲過程和5個實時業務事件過程計算完成,已經生成了各類原子标簽。

ES标簽搜索存儲:在面向标簽篩選應用環節,大規模标簽錄入操作成本太高,所有選擇使用Bulk Load自動寫入ES,生成标簽枚舉表tag_group表(存儲标簽中文信息及搜索,約250萬記錄),生成連續自增ID;

Doris中核心存儲:根據ES中的連續自增ID,可以映射到Doris中用戶标簽表tag_map表(倒排表,用戶和标簽組合表,約有1100億數據),Doris中還存在第三張表即用戶行為表,是基于實時數倉夠賤的,這裡不做擴展介紹。

基于這三張表,給客戶洞察、人群定向提供了相應的數據支撐基礎。

4.人群定向流程

基于上個環節生成的ES-标簽枚舉表、Doris-用戶标簽表、Doris-ID轉換映射表,進行人群定向流程解讀。

場景一:通過購物車圈選人群标簽,生成人群包,進行人群預估、繼而完成人群圈選,最後寫入Redis的過程。

第一步:标簽搜索(相關标簽、标簽組合等設置,購物車生成)

第二步:人群預估(潛在人群包的動态評估,根據标簽組合聯動調整購物車配置,完成目标事件的人群匹配)

第三步:生成人群包,關聯原數據、ID-Mapping 關聯轉換(站外);将人群包ID和人群ID寫入Redis,支持高并發查詢使用。若非高并發場景,可以寫入離線存儲機制使用。

場景二:種子人群泛化場景,依托AI平台完成模型訓練和人群推理泛化,通過置信度去選擇,打上人群标簽和人群包,最後寫會Doris的過程。

該場景包括曆史效果人群泛化、圈選人群的特征泛化等。

apachedoris架構原理及特性(基于Doris的知乎)10

日常業務運營過程中,對标簽、曆史人群進行組合、泛化,再限制條件進行圈選、洞察,最後再調整等靈活組合、交叉應用模式。

--

03

難點及解決方案

本部分主要圍繞人群定向方面做進行總結分享。

1.人群定向性能優化的痛點

知乎DMP平台關鍵應用模塊包括人群定向和客戶洞察,都依賴基礎的畫像特征。基于當前250萬的标簽特征數據基礎,如何解決以下兩個場景痛點:

人群定向方面關注痛點問題一:人群預估(秒級響應)——針對投放和營銷場景,對人群數量期望是一定的,通過類似購物車的模式,動态調整用戶特征,如何能保障快速看到預計匹配的人數?

人群定向方面關注痛點問題二:人群圈選(分鐘級響應)——熱點運營,當熱點事件發生後,快速進行人群包圈選搶事件,對人群包時間有很高要求。

apachedoris架構原理及特性(基于Doris的知乎)11

2.人群定向性能優化的思路(第一版)

解決上述性能問題的主要思路:

①倒排索引,将數據表變為bitmap。

②查詢條件的與或非轉變為bitmap的交并差。

③附帶完成連續數值轉變為離散标簽,即發揮離散計算的性能優勢,又提高了業務場景應用适配性。

apachedoris架構原理及特性(基于Doris的知乎)12

倒排序索引,示例如下圖(左)所示:

ID-Mapping适配,基于倒排序索引優化結果,在導入的過程中,完成ID-Mapping的生成(支持bitmap),實現用戶ID的連續自增。如下圖(右)所示:

apachedoris架構原理及特性(基于Doris的知乎)13

結合倒排序索引存儲方式優化調整,查詢邏輯變化示例如下:

apachedoris架構原理及特性(基于Doris的知乎)14

經過上述優化,仍存在單一bitmap過大的問題,導緻shuffle過程網絡IO過大,交換過程中數據堆積Doris出現brpc傳輸擁堵報錯,上百兆的bitmap間進行交并差計算性能低等情況;以及bitmap空間分布分散,導緻每次查詢都會有大量的數據交換,網絡負載高,速度慢等特點。

3.人群定向性能優化的思路(第二版)

基于人群預估分鐘級、人群圈選10分鐘級的優化結果,再優化的核心思路是分而治之。

apachedoris架構原理及特性(基于Doris的知乎)15

第二版優化的解決思路:基于全站ID的交并差等價于将全站ID分組後的交并差結果的合并,故分而治之思路可行;考慮利用Doris的colocate group特性,将分組所有tag的bitmap阈值在同一台物理機上,避免網絡開銷;同時,升級Doris新版本,利用bitmap_and_not_count等組合函數,性能優于多函數嵌套等特性。

适配第二版優化的解決方案:查詢過程調整,變更預估和圈人的查詢邏輯實現;發揮多線程查詢計算能力;查詢代碼嵌套條件優化;寫入過程調整,進行百萬人群寫入分組,設置分組key;數據表設置colocate group。

分而治之方案的具體優化邏輯,如下圖所示:

apachedoris架構原理及特性(基于Doris的知乎)16

優化前後的bitmap邏輯計算複雜度對比如下圖所示:

apachedoris架構原理及特性(基于Doris的知乎)17

通過上述兩版本優化,實現人群定向秒級響應,人群圈選分鐘級響應效果。知乎DMP平台達到運營投産目标。

--

04

知乎DMP平台下一步叠代方向

1.業務運營優化

從DMP平台的多核心模塊整體運營協同考慮,将目前松耦合的目标結果管理模塊,同平台進行強綁定;将依賴流程綁定的A/B實驗能力,與平台進行邏輯綁定。

apachedoris架構原理及特性(基于Doris的知乎)18

2.技術叠代優化

技術層面,主要結合平台日常運營圈選操作特點分析,實現以下兩方面的提升:

查詢效率提升:自動探查SQL複雜查詢條件,預先合并成一個派生特征的bitmap,預測和圈選時對複雜條件SQL重寫為派生特征。

導入效率提升:将每天2TB的數據導入,每15天大約會存11TB的數據,導入過程中加速策略——結合業界的Spark寫OLTP引擎,考慮能否通過Spark直接寫Doris Tablet文件,并挂載到FE。

apachedoris架構原理及特性(基于Doris的知乎)19

今天的分享就到這裡,謝謝大家。


分享嘉賓:侯容 知乎

編輯整理:李挺 上海琢學

出品平台:DataFunTalk


01/分享嘉賓

apachedoris架構原理及特性(基于Doris的知乎)20

侯容|知乎 用戶理解&數據賦能研發 Leader

畢業于北京化工大學,2018 年初入職知乎,在社區業務線完成多方向的業務流程建設和架構的搭建,2021 年開始負責知乎用戶理解&數據賦能方向的研發團隊管理,主要涵蓋用戶理解和實時數據的工程和業務研發。2021 年在知乎帶領團隊完成了實時數據系統從基建到業務層從 0 到 1 的建設及重寫升級用戶理解應用,形成「數據來源于業務,數據賦能于業務」的閉環,建設了相應的基建,提升了用戶理解和實時數據的業務叠代效率,最終賦能業務拿到了不錯的業務效果。


02/關于我們

DataFun:專注于大數據、人工智能技術應用的分享與交流。發起于2017年,在北京、上海、深圳、杭州等城市舉辦超過100 線下和100 線上沙龍、論壇及峰會,已邀請超過2000位專家和學者參與分享。其公衆号 DataFunTalk 累計生産原創文章800 ,百萬 閱讀,14萬 精準粉絲。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved