<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>

          Hudi 實踐 | 基于 Apache Hudi + Flink 的億級數(shù)據(jù)入湖實踐

          共 2118字,需瀏覽 5分鐘

           ·

          2021-12-27 17:05



          本次分享分為5個部分介紹Apache Hudi的應(yīng)用與實踐

          ?實時數(shù)據(jù)落地需求演進(jìn)?基于Spark+Hudi的實時數(shù)據(jù)落地應(yīng)用實踐?基于Flink自定義實時數(shù)據(jù)落地實踐?基于Flink+Hudi的應(yīng)用實踐?后續(xù)應(yīng)用規(guī)劃及展望

          1. 實時數(shù)據(jù)落地需求演進(jìn)

          實時平臺上線后,主要需求是開發(fā)實時報表,即抽取各類數(shù)據(jù)源做實時etl后,吐出實時指標(biāo)到oracle庫中供展示查詢。

          隨著實時平臺的穩(wěn)定及推廣開放,各種使用人員有了更廣發(fā)的需求:

          ?對實時開發(fā)來說,需要將實時sql數(shù)據(jù)落地做一些etl調(diào)試,數(shù)據(jù)取樣等過程檢查;?數(shù)據(jù)分析、業(yè)務(wù)等希望能結(jié)合數(shù)倉已有數(shù)據(jù)體系,對實時數(shù)據(jù)進(jìn)行分析和洞察,比如用戶行為實時埋點(diǎn)數(shù)據(jù)結(jié)合數(shù)倉已有一些模型進(jìn)行分析,而不是僅僅看一些高度聚合化的報表;?業(yè)務(wù)希望將實時數(shù)據(jù)作為業(yè)務(wù)過程的一環(huán)進(jìn)行業(yè)務(wù)驅(qū)動,實現(xiàn)業(yè)務(wù)閉環(huán);?針對部分需求,需要將實時數(shù)據(jù)落地后,結(jié)合其他數(shù)倉數(shù)據(jù),T - 1離線跑批出報表;

          除了上述列舉的主要的需求,還有一些零碎的需求。

          總的來說,實時平臺輸出高度聚合后的數(shù)據(jù)給用戶,已經(jīng)滿足不了需求,用戶渴求更細(xì)致,更原始,更自主,更多可能的數(shù)據(jù)

          而這需要平臺能將實時數(shù)據(jù)落地至離線數(shù)倉體系中,因此,基于這些需求演進(jìn),實時平臺開始了實時數(shù)據(jù)落地的探索實踐

          2. 基于Spark+Hudi的實時數(shù)據(jù)落地應(yīng)用實踐

          最早開始選型的是比較流行的Spark + Hudi體系,整體落地架構(gòu)如下:


          這套主要基于以下考慮:

          ?數(shù)倉開發(fā)不需寫Scala/Java打Jar包做任務(wù)開發(fā)?ETL邏輯能夠嵌入落數(shù)據(jù)任務(wù)中?開發(fā)入口統(tǒng)一

          我們當(dāng)時做了通用的落數(shù)據(jù)通道,通道由Spark任務(wù)Jar包和Shell腳本組成,數(shù)倉開發(fā)入口為統(tǒng)一調(diào)度平臺,將落數(shù)據(jù)的需求轉(zhuǎn)化為對應(yīng)的Shell參數(shù),啟動腳本后完成數(shù)據(jù)的落地。

          3. 基于Flink自定義實時數(shù)據(jù)落地實踐

          由于我們當(dāng)時實時平臺是基于Flink,同時Spark+Hudi對于大流量任務(wù)的支持有一些問題,比如落埋點(diǎn)數(shù)據(jù)時,延遲升高,任務(wù)經(jīng)常OOM等,因此決定探索Flink落數(shù)據(jù)的路徑。

          當(dāng)時Flink+Hudi社區(qū)還沒有實現(xiàn),我們參考Flink+ORC的落數(shù)據(jù)的過程,做了實時數(shù)據(jù)落地的實現(xiàn),主要是做了落數(shù)據(jù)Schema的參數(shù)化定義,使數(shù)據(jù)開發(fā)同事能shell化實現(xiàn)數(shù)據(jù)落地。

          4. 基于Flink + Hudi的落地數(shù)據(jù)實踐

          Hudi整合Flink版本出來后,實時平臺就著手準(zhǔn)備做兼容,把Hudi納入了實時平臺開發(fā)內(nèi)容。

          先看下接入后整體架構(gòu)

          實時平臺對各類數(shù)據(jù)源及Sink端都以各類插件接入,我們參考了HudiFlinkTable的Sink流程,將Hudi接入了我們的實時開發(fā)平臺。

          為了提高可用性,我們主要做了以下輔助功能;

          ?Hive表元數(shù)據(jù)自動同步、更新;?Hudi schema自動拼接;?任務(wù)監(jiān)控、Metrics數(shù)據(jù)接入等

          實際使用過程如下

          整套體系上線后,各業(yè)務(wù)線報表開發(fā),實時在線分析等方面都有使用,比較好的賦能了業(yè)務(wù),上線鏈路共26條,單日數(shù)據(jù)落入約3億條左右

          5. 后續(xù)應(yīng)用規(guī)劃及展望

          后續(xù)主要圍繞如下幾個方面做探索

          5.1 取代離線報表,提高報表實時性及穩(wěn)定性

          離線報表特點(diǎn)是 T - 1,凌晨跑數(shù),以及報表整體依賴鏈路長。兩個特點(diǎn)導(dǎo)致時效性不高是一個方面,另一個方面是,數(shù)據(jù)依賴鏈路長的情況下,中間數(shù)據(jù)出問題容易導(dǎo)致后續(xù)整體依賴延時,而很多異常需要等到報表任務(wù)實際跑的時候,才能暴露出來。并且跑批問題凌晨暴露,解決的時效與資源協(xié)調(diào)都是要降低一個等級的,這對穩(wěn)定性準(zhǔn)時性要求的報表是不可接受的,特別是金融公司來說,通過把報表遷移至實時平臺,不僅僅是提升了報表的時效性,由于抽數(shù)及報表etl是一直再實時跑的,報表數(shù)據(jù)給出的穩(wěn)定性能有一個較大的提升。這是我們Hudi實時落數(shù)據(jù)要應(yīng)用的規(guī)劃之一

          5.2 完善監(jiān)控體系,提升落數(shù)據(jù)任務(wù)穩(wěn)定性

          目前僅僅做到落數(shù)據(jù)任務(wù)的監(jiān)控,即任務(wù)是否正常運(yùn)行,有沒有拋異常等等。但實際使用者更關(guān)心數(shù)據(jù)由上游到Hive整條鏈路的監(jiān)控情況。比如數(shù)據(jù)是否有延遲,是否有背壓,數(shù)據(jù)源消費(fèi)情況,落數(shù)據(jù)是否有丟失,各個task是否有瓶頸等情況,總的來說,用戶希望能更全面細(xì)致的了解到任務(wù)的運(yùn)行情況,這也是后面的監(jiān)控需要完善的目標(biāo)

          5.3 落數(shù)據(jù)中間過程可視化探索

          這個是和上面的監(jiān)控有類似的地方,用戶希望確定,一條數(shù)據(jù)從數(shù)據(jù)源接進(jìn)來,經(jīng)過各個算子的處理,它的一些詳細(xì)情況。比如這個數(shù)據(jù)是否應(yīng)該被過濾,處于哪個窗口,各個算子的處理時間等等,否則對于用戶,整個數(shù)據(jù)SQL處理流程是一個黑盒。

          推薦閱讀

          基于Apache Hudi構(gòu)建智能湖倉實踐(附亞馬遜工程師代碼)

          OnZoom基于Apache Hudi的流批一體架構(gòu)實踐

          移動云基于Apache Hudi湖倉一體的探索與實踐

          Apache Hudi 0.10.0版本重磅發(fā)布!

          Apache Hudi與Hive集成手冊


          瀏覽 38
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  黄片在线免费视频 | 亚洲操B在线看 | 亚洲高清网站 | 少妇网址| 久久性 |