《愛奇藝廣告數據湖實踐.pdf》由會員分享,可在線閱讀,更多相關《愛奇藝廣告數據湖實踐.pdf(20頁珍藏版)》請在三個皮匠報告上搜索。
1、DataFunSummitDataFunSummit#20242024愛奇藝廣告數據湖實踐愛奇藝廣告數據湖實踐董麗婷-愛奇藝-高級研發工程師愛奇藝廣告愛奇藝廣告廣告數據架構如何廣告數據架構如何數據湖如何對癥下藥數據湖如何對癥下藥踩坑踩坑目錄目錄 CONTENTCONTENTDataFunSummitDataFunSummit#202420240101愛奇藝廣告愛奇藝廣告愛奇藝廣告愛奇藝合約&效果廣告平臺,資源利用效率最大化合約廣告 目標:品牌形象宣傳 客戶:大型廣告主 效果廣告目標:快速投資回報客戶:受眾目標明確的中小企業投放效果:方便衡量數據要求:時效性準確性要求高綜合預定完成率預定完成率、
2、單價單價、轉化轉化、質量度質量度 等綜合排序,篩選廣告廣告數據規模任務量任務量數據量數據量離線:2000+實時:300+資源:上萬vcoresS級任務50%存儲:幾十PBkafka QPS 10w+單表大?。?PB單表列數:1000+DataFunSummitDataFunSummit#202420240202廣告數據架構如何廣告數據架構如何廣告數據平臺整體架構統一查詢服務(Data MixerCode Gen)數據分析與挖掘AD HOC查詢Marketing API廣告算法異常檢測與歸因分析自定義可視化報表系統任務調度系統數據質量檢測進度服務基礎信息采集數據問答特征數據實時報表業務數據(B端
3、)計費日志(C端)用戶行為(C端)服務器日志(Debug)公司或外部數據數據采集數據服務離線數倉計算數據資產及治理實時計算數據接入與清洗(反作弊)數據倉庫分層規范與模型生命周期血緣關系數據熱度移動端數據出口數據處理廣告數倉架構Flink SQL離線通路時效性差實時通路容量低維護兩套邏輯,成本高容易出現數據不一致DataFunSummitDataFunSummit#202420240303數據湖如何對癥下藥數據湖如何對癥下藥廣告數據湖選型廣告數倉架構2.0logKafkaFlink實時計算實時計算HDFSSpark離線計算離線計算存儲層存儲層統一查詢系統DataMixer查詢層查詢層實時查詢AP
4、I任務管理系統監控應用層應用層數據可視化及報表Ad Hoc查詢異常檢測Redash算法引擎業務系統icebergtrinotidbclickhouseprojection數據湖實踐Merge更新通用報表是基于用戶行為時間,即日志時間聚合而成,廣告客戶有查詢計費轉化數據的需求(基于計費時間)。小時明細表D0D1變更表(基于計費時間)D0change D-7change D-6change D0D1change D-7change D0change D1D7change D0change D6change D7D0天級聚合表(基于行為時間)統一視圖change D0change D0change
5、D0D0廣告查詢接口D0數據湖表trino 單表查詢每天merge一次多表union-單表查詢7日轉化-全量數據湖實踐廣告推薦模型工程效果廣告推薦場景中,隨著用戶、內容等變動頻繁,需要實現更加精準的個性化廣告推薦,依賴實時樣本生成FlinkHbaseFlink匹配規則雙流關聯重試隊列廣告前端用戶行為日志用戶特征廣告特征廣告引擎用戶行為數據流廣告/用戶特征數據流deltadatasession流HDFS在線訓練離線訓練線上特征庫預估模型機器學習Parse邏輯Parse邏輯iceberg離線數倉反作弊后數據計算存儲流讀批讀數據湖實踐業務數據實時化虛擬虛擬slaveslave節點節點采集采集加工加工
6、insertinsertupdateupdatedeletedelete加載加載tb1tb2tb1tb2多db多表數據源增全量自動切換datalakedatalake全量增量實時一致性快照無鎖算法并發讀取斷點續傳tb1tb2tb1tb2hivedb1_tb1_1h db1_tb2_1h db2_tb1_1hdb2_tb2_1hfilter/joinads_tb_1h 跨庫多表join 時效性:小時級-秒級 統一實時離線維表 資源:資源節省50%+支持多種異構數據源tb1tb2tb1tb2redisspark 定時10min離線實時多表join,無法跨庫定時(1h)單表同步key:value報表
7、關聯業務維表,定時全量同步延遲大,不穩定,使用cdc 定時增量同步及數據湖tag功能,統一實時離線邏輯http接口數據湖流批一體實現logKafka實時計算實時計算HDFS離線計算離線計算存儲層存儲層icebergFlink cdc 維表統一UDF 口徑統一CODE邏輯統一計算流批一體存儲流批一體KafkaKafkaHDFSHDFSODSODSDWDDWDDWSDWSDataFunSummitDataFunSummit#202420240404踩坑踩坑數據湖小文件問題每次提交文件數=分鐘分區數*flink 任務并行度每次提交文件數=分鐘分區數*bucket分桶建議控制bucket下分區,一次c
8、ommit量在100MB報表查詢時間長,實時入湖小文件暴漲,獲取元數據信息耗時較長數據湖支持數據進度1、用戶指定一個時間戳字段作為write.watermark2、Writer算子中,獲取max(write.watermark)到下一個算子3、Committer算子中,選擇第二步中的最小值;如果當前最小的ts大于上次保留的ts,將當前的ts值作為快照中的watermark值;否則,將上次保留的ts值作為快照中的watermark值重要鏈路提供雙集群來保證ha,為防止數據跳變,支持數據進度,查詢系統自動路由當前可用進度較快的集群PilotSDKPilotSDK進進度度服服務務DC1DC1DC2DC2表狀態管理表狀態管理即時可控災備核心邏輯即時可控災備核心邏輯表級別路由表級別路由使用方獲取數據產出最快的集群trackingflinktrackingflinkDataFunSummitDataFunSummit#20242024微信公眾號感謝觀看感謝觀看謝謝觀看