<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          AliExpress基于Flink的廣告實時數(shù)倉建設

          共 3347字,需瀏覽 7分鐘

           ·

          2022-02-17 10:02

          點擊上方藍色字體,選擇“設為星標”
          回復"面試"獲取更多驚喜
          大數(shù)據(jù)面試提升私教訓練營上線
          Hi,我是王知無,一個大數(shù)據(jù)領域的原創(chuàng)作者。?
          放心關注我,獲取更多行業(yè)的一手消息。
          摘要:實時數(shù)倉以提供低延時數(shù)據(jù)指標為目的供業(yè)務實時決策,本文主要介紹基于Flink的廣告實時數(shù)倉建設,主要包括以下內(nèi)容:
          1. 建設背景
          2. 技術架構
          3. 數(shù)倉架構
          4.?實時OLAP
          5. 實時保障
          6. 未來規(guī)劃

          建設背景



          廣告是目前互聯(lián)網(wǎng)流量變現(xiàn)的一種重要手段,廣告投放的優(yōu)化很大程度上依賴于廣告效果數(shù)據(jù),依托于廣告曝光、點擊、消耗、訂單等指標調(diào)整廣告投放策略,以達到最優(yōu)投放效果。前期主要提供T+1效果數(shù)據(jù),投放策略往往需要第二天才能做出調(diào)整,不能及時做出投放優(yōu)化,特別在一些大促場景,實時優(yōu)化顯得尤為重要,需要及時調(diào)整例如人群、地域、出價等策略,以此為背景建設實時數(shù)據(jù)鏈路。


          目前實時數(shù)據(jù)的場景主要有以下幾種:

          實時大屏:提供給運營、產(chǎn)品使用,展示核心的業(yè)務指標:曝光、點擊、消耗等數(shù)據(jù)。

          實時特征:提供給算法使用,統(tǒng)計用戶維度的行為數(shù)據(jù)。

          商家看板:提供給商家使用,展示商家的在不同維度的曝光、點擊、消耗等數(shù)據(jù)。

          多維分析:提供給運營、分析師使用,實時分析廣告數(shù)據(jù)。



          技術架構



          依托新一代實時計算引擎Flink的興起,在超高性能、數(shù)據(jù)一致性保障、SQL化編程方式等特點下推動了實時數(shù)倉的發(fā)展。

          當前的整體技術架構圖如下:

          在數(shù)據(jù)源側一方面服務器日志數(shù)據(jù)與MySQL變更數(shù)據(jù)作為數(shù)倉的數(shù)據(jù)源,會被采集消息隊列Kafka中;另外一方面MySQL 中的數(shù)據(jù)會通過DataX離線方式同步到HBASE中,通常是在維度建設初始化使用;

          在數(shù)據(jù)加工側使用Flink作為計算引擎,HBASE作為維表存儲數(shù)據(jù)庫,F(xiàn)link任務在處理的過程中會做一些數(shù)據(jù)解析、規(guī)范化、打寬、聚合等操作;

          在數(shù)據(jù)服務側使用兩種不同的存儲引擎HBASE與Hologres,HBASE提供KV查詢,應用于實時大屏、商家看板等固化查詢場景,?Hologres用于在線分析,應用于多維分析等場景,提供多維分析能力。二者由統(tǒng)一數(shù)據(jù)接口服務封裝,對外提供查詢。




          數(shù)倉架構



          數(shù)倉的分層搭建需要從復用、成本、質(zhì)量、擴展性等方面去考慮,實時數(shù)倉的搭建,包括層次劃分、命名、主題域劃分、數(shù)據(jù)域劃分與離線相差不大,目前劃分層次如下:

          數(shù)據(jù)源層DB日志與服務器日志,DB日志數(shù)據(jù)主要是廣告商家、投放計劃等物料數(shù)據(jù);服務器日志是廣告引擎曝光日志、廣告點擊日志、用戶真實曝光日志;按照不同的業(yè)務屬于又可以分為搜索廣告日志、推薦廣告日志。
          中間層分為DIM層與DWD層,DIM層即維度層,其數(shù)據(jù)來源于DB日志,通過離線全量+實時增量方式完整同步操作;明細層DWD建設很重要的一個要求就是能夠被復用,因此將搜索、推薦廣告日志做了水平合并供下游多方使用,另外一個是維度擴充,提前做維表信息關聯(lián),避免下游多次join操作。

          應用層按照應用場景劃分為實時大屏、商家后臺實時指標、實時特征、實時多維分析,提供了不同維度的曝光、點擊、消耗等數(shù)據(jù)。

          從當前分層架構來說,可以說與離線分層上有兩個差異:
          • 層次更少:離線中會存在匯總層與集市層,但是對于實時來說層次越多延時就越大,另外問題排查的難度就越大;

          • 注重維度整合:離線中一般情況下大寬表出現(xiàn)在集市層,但是對于實時來說,在構建DWD層已經(jīng)完成了維度整合操作,避免下游join操作,也就是通過空間換時間的策略。



          實時OLAP



          當前使用OLAP主要解決兩方面的問題:
          • 運營對于廣告數(shù)據(jù)需求的多變性

          運營對數(shù)據(jù)的需求變化性常常是大于廣告商家看數(shù)的需求,如果都是使用Flink進行預計算完成的指標,那么其開發(fā)、運維成本是非常高的;
          • 對mysql中的數(shù)據(jù)需要某個時間點的分析結果指標

          mysql中的數(shù)據(jù)是可變的,經(jīng)常會執(zhí)行一些update操作,例如廣告預算數(shù)據(jù),預算是可實時變更的,需要知道每小時整的預算額。使用Flink去處理這類問題成本比較高、并且也不可復用。


          基于以上問題,提出了實時OLAP的架構。

          將明細數(shù)據(jù)通過Flink處理寫入OLAP中,基于OLAP一方面完成在線數(shù)據(jù)查詢,另外一方面通過離線調(diào)度處理OLAP中數(shù)據(jù),進行一個簡單的分層處理,最終提供給上層查詢服務使用。




          實時保障




          整個實時數(shù)據(jù)體系保障,可分為穩(wěn)定性保障、數(shù)據(jù)質(zhì)量保障兩個方面。


          穩(wěn)定性保障

          穩(wěn)定性保障目前主要從壓測、任務等級劃分、 監(jiān)控三方面實施:
          提前壓測,應對流量高峰期,特別是大促場景下,提前做好資源保障、任務優(yōu)化等措施。
          制定保障等級,從任務影響面大小、數(shù)據(jù)使用方來劃分,一般情況公司層面優(yōu)先于部門層面,外部使用優(yōu)先于內(nèi)部使用, ?高優(yōu)先級任務需要優(yōu)先/及時響應、必要情況下做雙鏈路保障機制;
          指標監(jiān)控,監(jiān)控任務failover情況、checkpoint指標、GC情況、作業(yè)反壓等,出現(xiàn)異常告警。


          數(shù)據(jù)質(zhì)量保障

          質(zhì)量保障主要是保障數(shù)據(jù)正確性與時效性。
          正確性
          實時計算端到端的一致性,對數(shù)據(jù)正確性的影響,常用手段就是通過輸出冪等方式保障,這種方式要求輸出使用存儲介質(zhì)支持重寫,對于不支持冪等的存儲,比較常用的就是DWD層的kafka, 可能會產(chǎn)生重復的數(shù)據(jù),那么在下游使用的時候可以使用row_number() 語法進行去重,保證相同的key不會被多次計算;
          離線與實時的一致性,需要保證使用數(shù)據(jù)源一致、加工業(yè)務邏輯一致。
          時效性
          保障實時指標的時效性,常用的手段就是提前壓測與監(jiān)控。
          提前壓測:提前發(fā)現(xiàn)可能會影響任務處理速度的瓶頸,常見的就是數(shù)據(jù)傾斜、大狀態(tài)的算子操作(join);
          監(jiān)控:監(jiān)控任務當前的消費進度,在數(shù)據(jù)源處通過使用數(shù)據(jù)時間與當前系統(tǒng)時間對比判斷其消費進度。




          未來規(guī)劃



          實時DWS層建設

          當前雖然做了統(tǒng)一DWD層的建設,但是在應用層商家看板、實時特征等的場景應用中,仍然存在重復建設的工作,例如小時維度的商品曝光指標被多個鏈路重復計算,這種存在數(shù)據(jù)一致性的風險,另外也會造成資源浪費,可以將公共的匯總指標抽象出來統(tǒng)一計算,建設DWS層。

          實時OLAP 的深度應用

          當前OLAP的應用場景主要是運營側使用,但是對于商家側看板數(shù)據(jù)也可以做進一步的應用。目前商家看板數(shù)據(jù)使用HBASE作為存儲,然而實際的看數(shù)需求是需要排序、分頁等操作,這個功能的實現(xiàn)大多數(shù)是通過將數(shù)據(jù)查詢出來,然后基于內(nèi)存去處理,這種方式開發(fā)成本高、不易維護,可通過OLAP天然支持排序、分頁去解決這些問題。

          基于Hologres的HASP架構簡化數(shù)倉架構

          Hologres 是阿里巴巴自主研發(fā)的一款交互式分析產(chǎn)品,其重要的理念就是HASP, hybrid serving/analytical processing,服務分析一體化,通過其行存結構提供高頻kv查詢,列存結構提供多維分析能力。可使用Hologres替換HBASE, 簡化整個技術架構鏈路。

          如果這個文章對你有幫助,不要忘記?「在看」?「點贊」?「收藏」?三連啊喂!



          2022年全網(wǎng)首發(fā)|大數(shù)據(jù)專家級技能模型與學習指南(勝天半子篇)

          互聯(lián)網(wǎng)最壞的時代可能真的來了

          我在B站讀大學,大數(shù)據(jù)專業(yè)

          我們在學習Flink的時候,到底在學習什么?

          193篇文章暴揍Flink,這個合集你需要關注一下

          Flink生產(chǎn)環(huán)境TOP難題與優(yōu)化,阿里巴巴藏經(jīng)閣YYDS

          Flink CDC我吃定了耶穌也留不住他!| Flink CDC線上問題小盤點

          我們在學習Spark的時候,到底在學習什么?

          在所有Spark模塊中,我愿稱SparkSQL為最強!

          硬剛Hive | 4萬字基礎調(diào)優(yōu)面試小總結

          數(shù)據(jù)治理方法論和實踐小百科全書

          標簽體系下的用戶畫像建設小指南

          4萬字長文 | ClickHouse基礎&實踐&調(diào)優(yōu)全視角解析

          【面試&個人成長】2021年過半,社招和校招的經(jīng)驗之談

          大數(shù)據(jù)方向另一個十年開啟 |《硬剛系列》第一版完結

          我寫過的關于成長/面試/職場進階的文章

          當我們在學習Hive的時候在學習什么?「硬剛Hive續(xù)集」

          瀏覽 79
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美操逼逼 | 中文字幕亚洲乱伦 | 日韩高清AV在线 | 一本道精品在线播放 | 天堂a |