日本电影免费观看电影大全,波多野结衣+中文字幕,心情不好的说说,最近2019中文字幕大全视频10,日本丰满熟妇bbxbbxhd

快手推廣后臺如何推廣Hudi來解決某些場景問題?

發布時間:2023-06-13 22:15:19 作者:巨宣網絡 來源:gzxunniao.cn 瀏覽量(57)

數據內容的建設時遇到復雜場景,就緒晚、執行效率低,如何解決?

從領域模型(xing)建(jian)設的(de)(de)(de)角度(du),我(wo)們知道需要(yao)對業(ye)務場(chang)景進行(xing)合(he)理的(de)(de)(de)拆解(jie)、規劃、設計(ji),使得我(wo)們在(zai)進行(xing)數據內容的(de)(de)(de)建(jian)設時思路清晰(xi)、模型(xing)復(fu)用(yong)度(du)高。然而(er)在(zai)實際的(de)(de)(de)實施過程會(hui)遇(yu)到一(yi)些(xie)復(fu)雜場(chang)景,在(zai)我(wo)們極盡優化之(zhi)后仍然出現(xian)就緒晚、執(zhi)行(xing)效(xiao)率(lv)低的(de)(de)(de)情(qing)況。所以,如果當前的(de)(de)(de)技術手(shou)段不(bu)再能解(jie)決(jue)這些(xie)問(wen)(wen)題,我(wo)們會(hui)分(fen)出一(yi)些(xie)精力去(qu)探(tan)索新的(de)(de)(de)技術方案(an)來(lai)解(jie)決(jue)這些(xie)效(xiao)率(lv)問(wen)(wen)題。本(ben)文主要(yao)分(fen)享快手(shou)如何探(tan)索使用(yong)Hudi來(lai)提升某些(xie)場(chang)景的(de)(de)(de)效(xiao)率(lv)。全文分(fen)為(wei)三個部分(fen):痛點業(ye)務場(chang)景;為(wei)什么選擇Hudi來(lai)解(jie)決(jue)問(wen)(wen)題;如何使用(yong)Hudi解(jie)決(jue)業(ye)務問(wen)(wen)題。

一、痛點業務場景

1、數據調度

調(diao)度啟(qi)動(dong)晚(wan)。日常工(gong)作中(zhong)有些業務(wu)周(zhou)期不(bu)是自然周(zhou)期,比(bi)如,我們的(de)花費(fei)計算場(chang)景就是14點啟(qi)調(diao)。計算周(zhou)期長。業務(wu)上可以(yi)更新(xin)近(jin)3個月的(de)數(shu)據(ju)(ju)部分數(shu)據(ju)(ju),因(yin)此需要動(dong)態回刷3個月的(de)數(shu)據(ju)(ju)。“調(diao)度啟(qi)動(dong)晚(wan)+計算周(zhou)期長”造成(cheng)就緒比(bi)較晚(wan),會影(ying)響業務(wu)對數(shu)據(ju)(ju)的(de)使用訴求。

2、數據同步

過(guo)(guo)程(cheng)(cheng)數(shu)據(ju)(ju)量大。每天(tian)會同(tong)步大量的過(guo)(guo)程(cheng)(cheng)明細數(shu)據(ju)(ju)到數(shu)倉進行(xing)計算(suan)(suan),用于支持業務決策。合(he)并(bing)計算(suan)(suan)耗時(shi)長(chang)。我(wo)們有一份用戶關(guan)系數(shu)據(ju)(ju),只需要最新的關(guan)系對,需要將關(guan)注(zhu)過(guo)(guo)程(cheng)(cheng)做(zuo)合(he)并(bing)計算(suan)(suan)。“過(guo)(guo)程(cheng)(cheng)數(shu)據(ju)(ju)量大+合(he)并(bing)計算(suan)(suan)耗時(shi)長(chang)”造成完成晚,同(tong)時(shi)同(tong)步時(shi)“鏈路根節(jie)點(dian)”整條鏈路的SLA保障壓(ya)力大。

3、修復回刷

進行歷史數(shu)(shu)據(ju)(ju)(ju)回刷時(shi),其(qi)實僅需(xu)要更(geng)新(xin)小部分數(shu)(shu)據(ju)(ju)(ju)即可(ke)。然而(er)離(li)線(xian)數(shu)(shu)倉(cang)是全量(liang)批更(geng)新(xin)模(mo)式,因此需(xu)要耗費大量(liang)的資源(yuan)做全量(liang)回溯。因此回刷修復會(hui)耗費大量(liang)資源(yuan)、數(shu)(shu)據(ju)(ju)(ju)修復周期(qi)長(chang)。從(cong)業務(wu)痛點出發,不(bu)論從(cong)研發的角度(du)還是業務(wu)的角度(du)其(qi)訴(su)求(qiu)一致:數(shu)(shu)據(ju)(ju)(ju)能夠快(kuai)速(su)就緒(xu)、產出最新(xin)的數(shu)(shu)據(ju)(ju)(ju)。為(wei)什么(me)當前的離(li)線(xian)數(shu)(shu)據(ju)(ju)(ju)建(jian)設的技術方(fang)(fang)案不(bu)能滿足?從(cong)本質(zhi)來看采用仍是傳統的調度(du)+離(li)線(xian)計(ji)算的方(fang)(fang)式,只不(bu)過采用資源(yuan)換效率的方(fang)(fang)式,改變(bian)的僅僅是調度(du)的頻(pin)次(ci)。

根據(ju)(ju)(ju)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)特點 +“ 產(chan)出快(kuai)、狀(zhuang)態新”的(de)(de)(de)訴求(qiu),也(ye)單獨做過(guo)一(yi)些(xie)嘗試:調度場景(jing),因為(wei)只有千(qian)萬(wan)級(ji)的(de)(de)(de)3個月(yue)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju),可以全(quan)部保(bao)存在Flink的(de)(de)(de)內存中,以天為(wei)窗口Sink一(yi)次(ci),這(zhe)樣(yang)可以實(shi)時(shi)(shi)獲(huo)取最新數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)。但是(shi)(shi),隨著業務的(de)(de)(de)增長占(zhan)用的(de)(de)(de)資源、穩(wen)定性(xing)保(bao)障(zhang)都(dou)有較大挑戰。同(tong)步場景(jing),將(jiang)每小(xiao)時(shi)(shi)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)進行同(tong)步,同(tong)時(shi)(shi)完成小(xiao)時(shi)(shi)內過(guo)程數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)的(de)(de)(de)合并;再同(tong)前一(yi)個小(xiao)時(shi)(shi)的(de)(de)(de)全(quan)量(liang)歷史數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)合并生(sheng)(sheng)成小(xiao)時(shi)(shi)級(ji)別的(de)(de)(de)全(quan)量(liang)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju);這(zhe)樣(yang)時(shi)(shi)效性(xing)是(shi)(shi)有所(suo)提升(sheng),不過(guo)存儲和計算的(de)(de)(de)成本(ben)是(shi)(shi)天合并的(de)(de)(de)數(shu)(shu)(shu)(shu)倍。那么將(jiang)幾個場景(jing)合并一(yi)起(qi),是(shi)(shi)希望(wang)能在生(sheng)(sheng)產(chan)時(shi)(shi)像業務系統那樣(yang),實(shi)時(shi)(shi)完成業務數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)處理;分析擁有離線(xian)大數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)的(de)(de)(de)強大計算能力。因此,希望(wang)可以對離線(xian)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)模型(xing)進行增刪改(gai)查的(de)(de)(de)功能,拆解后就(jiu)是(shi)(shi)實(shi)時(shi)(shi)化計算+離線(xian)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)模型(xing)的(de)(de)(de)CRUD。

快手信息流廣告營銷

二、快手推廣為什么選擇Hudi來解決問題

為(wei)了實現【實時化(hua)計算】+【離線數(shu)(shu)據(ju)(ju)(ju)模型】的(de)(de)(de)(de)(de)(de)CRUD的(de)(de)(de)(de)(de)(de)訴求(qiu),業界的(de)(de)(de)(de)(de)(de)解(jie)決(jue)(jue)方(fang)案(an)不止一種,那為(wei)什么我(wo)們(men)選擇Hudi呢?我(wo)們(men)可以從以下5個角度(du)思考。功(gong)(gong)能豐(feng)富度(du):更(geng)多的(de)(de)(de)(de)(de)(de)功(gong)(gong)能才(cai)能支(zhi)持(chi)更(geng)多的(de)(de)(de)(de)(de)(de)場景,從而(er)(er)能解(jie)決(jue)(jue)更(geng)多的(de)(de)(de)(de)(de)(de)業務(wu)(wu)痛點問(wen)(wen)題。公(gong)(gong)(gong)司(si)融合度(du):數(shu)(shu)據(ju)(ju)(ju)內容(rong)(rong)建(jian)(jian)設依托公(gong)(gong)(gong)司(si)的(de)(de)(de)(de)(de)(de)體系(xi)(xi)架(jia)構,與公(gong)(gong)(gong)司(si)的(de)(de)(de)(de)(de)(de)體系(xi)(xi)架(jia)構匹(pi)配,才(cai)能隨著公(gong)(gong)(gong)司(si)體系(xi)(xi)架(jia)構建(jian)(jian)設,讓數(shu)(shu)據(ju)(ju)(ju)內容(rong)(rong)建(jian)(jian)設的(de)(de)(de)(de)(de)(de)效(xiao)(xiao)(xiao)率更(geng)高(gao)、保障更(geng)好。自(zi)動化(hua)程度(du):數(shu)(shu)據(ju)(ju)(ju)內容(rong)(rong)建(jian)(jian)設的(de)(de)(de)(de)(de)(de)核心(xin)目標是高(gao)效(xiao)(xiao)(xiao)的(de)(de)(de)(de)(de)(de)解(jie)決(jue)(jue)業務(wu)(wu)問(wen)(wen)題,因此方(fang)案(an)的(de)(de)(de)(de)(de)(de)自(zi)動化(hua)程度(du)越(yue)高(gao),我(wo)們(men)就可以抽更(geng)多的(de)(de)(de)(de)(de)(de)時間聚焦于(yu)業務(wu)(wu)問(wen)(wen)題的(de)(de)(de)(de)(de)(de)解(jie)決(jue)(jue),而(er)(er)不是技(ji)術細節本身。Flink集成度(du):快手的(de)(de)(de)(de)(de)(de)【實時化(hua)計算】的(de)(de)(de)(de)(de)(de)解(jie)決(jue)(jue)方(fang)案(an)以Flink為(wei)主。社(she)區(qu)(qu)活躍度(du):整體來說數(shu)(shu)據(ju)(ju)(ju)湖(hu)的(de)(de)(de)(de)(de)(de)應用還(huan)處(chu)于(yu)比較初期(qi),因此遇到問(wen)(wen)題可以在社(she)區(qu)(qu)討論,集合社(she)區(qu)(qu)優(you)秀同學智慧,獲取建(jian)(jian)議(yi)、經(jing)驗從而(er)(er)高(gao)效(xiao)(xiao)(xiao)的(de)(de)(de)(de)(de)(de)有效(xiao)(xiao)(xiao)的(de)(de)(de)(de)(de)(de)解(jie)決(jue)(jue)問(wen)(wen)題。

快(kuai)手(shou)競價(jia)廣告從(cong)實時(shi)數(shu)據(ju)(ju)源Binlog&Kafka采(cai)集數(shu)據(ju)(ju)通(tong)過(guo)Flink&Spark Streaming進行(xing)數(shu)據(ju)(ju)處理,滿(man)足實時(shi)化計(ji)算(suan)的訴(su)求(qiu)。計(ji)算(suan)過(guo)程中可(ke)以(yi)實現對(dui)離線(xian)表進行(xing)增刪改生成(cheng)Row Tables;同時(shi)可(ke)以(yi)被離線(xian)數(shu)倉識別(bie)和應用,滿(man)足離線(xian)數(shu)據(ju)(ju)模型CRUD的訴(su)求(qiu)。因此從(cong)架構來說Hudi是能解(jie)決(jue)我們的痛點(dian)場(chang)景的。從(cong)一(yi)條數(shu)據(ju)(ju)的Hudi之旅我們看(kan)下數(shu)據(ju)(ju)的計(ji)算(suan)過(guo)程。從(cong)實時(shi)源采(cai)集數(shu)據(ju)(ju)到系統后,首先做(zuo)數(shu)據(ju)(ju)的打散平均重分布,從(cong)而避免因為業(ye)務(wu)熱點(dian)或者(zhe)分區(qu)數(shu)據(ju)(ju)不均勻造(zao)成(cheng)的數(shu)據(ju)(ju)傾(qing)斜(xie)或者(zhe)長(chang)尾(wei)問題(ti)。經過(guo)重分布之后在每個(ge)節點(dian)上就可(ke)以(yi)拿到均勻的分區(qu)對(dui)應的數(shu)據(ju)(ju)。

經(jing)過Shuffle之(zhi)后(hou)可以將(jiang)相同(tong)分(fen)(fen)(fen)區(qu)的(de)(de)(de)(de)數(shu)據(ju)分(fen)(fen)(fen)發到相同(tong)的(de)(de)(de)(de)節(jie)點,此過程(cheng)和(he)hudi的(de)(de)(de)(de)設計(ji)有關(guan),hudi是一(yi)個分(fen)(fen)(fen)布式(shi)集群(qun)計(ji)算,它(ta)最終(zhong)在(zai)(zai)數(shu)據(ju)刷盤的(de)(de)(de)(de)時候(hou)是按照分(fen)(fen)(fen)區(qu)進(jin)行(xing)pipeline計(ji)算的(de)(de)(de)(de),這時候(hou)如(ru)果多個物理(li)節(jie)點存在(zai)(zai)相同(tong)分(fen)(fen)(fen)區(qu)就(jiu)(jiu)會造成寫鎖的(de)(de)(de)(de)搶占影響(xiang)效率(lv)。在(zai)(zai)此過程(cheng)中我們(men)可以對(dui)數(shu)據(ju)做合(he)并(bing)策略優化,相同(tong)key的(de)(de)(de)(de)數(shu)據(ju)進(jin)行(xing)合(he)并(bing),只保留策略訴求的(de)(de)(de)(de)數(shu),從而(er)減少(shao)hudi的(de)(de)(de)(de)計(ji)算量。拿(na)到了需要更(geng)新的(de)(de)(de)(de)數(shu)據(ju),我們(men)要知(zhi)道哪(na)條(tiao)記(ji)錄更(geng)新到哪(na)個文(wen)件(jian)中就(jiu)(jiu)需要用到索引檢索服務,合(he)理(li)的(de)(de)(de)(de)選擇索引可以提升(sheng)數(shu)據(ju)與(yu)文(wen)件(jian)的(de)(de)(de)(de)匹配速度。最終(zhong)將(jiang)記(ji)錄寫入(ru)文(wen)件(jian)的(de)(de)(de)(de)時候(hou)還可以添加丟棄策略,比如(ru)文(wen)件(jian)中已經(jing)有更(geng)新版本的(de)(de)(de)(de)數(shu)據(ju)了,就(jiu)(jiu)可以丟棄本次記(ji)錄,從而(er)進(jin)一(yi)步提升(sheng)寫效率(lv)。經(jing)過一(yi)系列的(de)(de)(de)(de)操(cao)作(zuo)和(he)優化之(zhi)后(hou),我們(men)就(jiu)(jiu)可以將(jiang)數(shu)據(ju)寫入(ru)到集群(qun),之(zhi)后(hou)可以通(tong)過Hive的(de)(de)(de)(de)元數(shu)據(ju)掛載成普通(tong)表進(jin)行(xing)使(shi)用。

對于存儲結構(gou):Partition的(de)目(mu)錄結構(gou)就是(shi)我們(men)的(de)hive分(fen)區結構(gou);Base是(shi)我們(men)的(de)Hdfs存儲路(lu)徑。因此(ci)在了(le)解Hudi的(de)架構(gou)(骨架)、計(ji)(ji)算(suan)過程(大動(dong)脈)、存儲結構(gou)(細胞)之后,我們(men)會思考Hudi究竟是(shi)什么(me)呢?初(chu)衷是(shi)為了(le)解決離線模型更新的(de)問題,以存儲的(de)方式來(lai)實(shi)現,因此(ci)是(shi)一個數(shu)據(ju)存儲解決方案(an)。為了(le)實(shi)現數(shu)據(ju)更新需要用到計(ji)(ji)算(suan),然后Hudi借用了(le)當(dang)前成熟的(de)計(ji)(ji)算(suan)方案(an)來(lai)實(shi)現自己的(de)架構(gou),所以算(suan)是(shi)集成了(le)計(ji)(ji)算(suan)引擎。

三、快手廣告后臺如何使用Hudi解決業務問題

簡單(dan)做個痛點(dian)(dian)回顧(gu):計(ji)(ji)(ji)算數(shu)(shu)據(ju)(ju)量大(da) + 計(ji)(ji)(ji)算時間(jian)長 + 同步任(ren)務(wu)(wu)是(shi)鏈路(lu)根(gen)節點(dian)(dian) => SLA壓力大(da);回刷周期長 + 技術(shu)方案單(dan)一 => 資源(yuan)浪(lang)費(fei)嚴重、修復效(xiao)(xiao)(xiao)率(lv)(lv)低。我們的(de)(de)(de)(de)(de)訴求是(shi)使用Hudi來解(jie)決(jue)時效(xiao)(xiao)(xiao)性(xing)和(he)效(xiao)(xiao)(xiao)率(lv)(lv)問(wen)題,然而Hudi和(he)離(li)線(xian)的(de)(de)(de)(de)(de)模型設(she)(she)計(ji)(ji)(ji)是(shi)不一樣(yang)的(de)(de)(de)(de)(de),要避免(mian)思維的(de)(de)(de)(de)(de)慣(guan)性(xing)和(he)認知(zhi)的(de)(de)(de)(de)(de)偏差,例如(ru):數(shu)(shu)倉分(fen)(fen)(fen)區(qu)設(she)(she)計(ji)(ji)(ji):讓(rang)數(shu)(shu)據(ju)(ju)的(de)(de)(de)(de)(de)組織形式更加匹(pi)配業務(wu)(wu)形態,在(zai)使用的(de)(de)(de)(de)(de)時候更加易(yi)于理(li)解(jie),易(yi)于使用;在(zai)技術(shu)層面(mian),分(fen)(fen)(fen)區(qu)用來做數(shu)(shu)據(ju)(ju)裁剪,進而提升查詢(xun)效(xiao)(xiao)(xiao)率(lv)(lv);小文(wen)(wen)件(jian)(jian)(jian)(jian)(jian)合并優(you)化(hua):當前hdfs的(de)(de)(de)(de)(de)架構設(she)(she)計(ji)(ji)(ji)下,系統過多的(de)(de)(de)(de)(de)小文(wen)(wen)件(jian)(jian)(jian)(jian)(jian)會影響集(ji)(ji)群的(de)(de)(de)(de)(de)穩定(ding)性(xing);小文(wen)(wen)件(jian)(jian)(jian)(jian)(jian)太多會啟動過多的(de)(de)(de)(de)(de)任(ren)務(wu)(wu),從而降低集(ji)(ji)群的(de)(de)(de)(de)(de)任(ren)務(wu)(wu)并行度;數(shu)(shu)倉分(fen)(fen)(fen)區(qu)設(she)(she)計(ji)(ji)(ji);分(fen)(fen)(fen)區(qu)與Hudi寫(xie)數(shu)(shu)據(ju)(ju)的(de)(de)(de)(de)(de)并發(fa)有(you)關;分(fen)(fen)(fen)區(qu)是(shi)解(jie)決(jue)寫(xie)傾斜(xie)的(de)(de)(de)(de)(de)處(chu)理(li)手段之一;小文(wen)(wen)件(jian)(jian)(jian)(jian)(jian)合并優(you)化(hua);文(wen)(wen)件(jian)(jian)(jian)(jian)(jian)越小更新效(xiao)(xiao)(xiao)率(lv)(lv)越高(gao);早期Hudi更新單(dan)個數(shu)(shu)據(ju)(ju)文(wen)(wen)件(jian)(jian)(jian)(jian)(jian)的(de)(de)(de)(de)(de)時候是(shi)順序的(de)(de)(de)(de)(de),如(ru)果文(wen)(wen)件(jian)(jian)(jian)(jian)(jian)過多等待的(de)(de)(de)(de)(de)排(pai)隊時間(jian)會變長,要取舍排(pai)隊和(he)更新時間(jian)的(de)(de)(de)(de)(de)平(ping)衡。從我們的(de)(de)(de)(de)(de)痛點(dian)(dian)出發(fa),設(she)(she)計(ji)(ji)(ji)的(de)(de)(de)(de)(de)時候會更多的(de)(de)(de)(de)(de)考慮(lv)寫(xie)的(de)(de)(de)(de)(de)效(xiao)(xiao)(xiao)率(lv)(lv),因(yin)為寫(xie)數(shu)(shu)據(ju)(ju)要與磁盤交互,效(xiao)(xiao)(xiao)率(lv)(lv)比(bi)較低。所以設(she)(she)計(ji)(ji)(ji)思路(lu)有(you)兩點(dian)(dian):減少數(shu)(shu)據(ju)(ju)量;能有(you)極致的(de)(de)(de)(de)(de)寫(xie)效(xiao)(xiao)(xiao)率(lv)(lv)。

快(kuai)手信息流廣告基于(yu)減流量(liang)(liang)、寫(xie)(xie)效率(lv)(lv)的(de)(de)(de)(de)(de)(de)(de)指導(dao)思想(xiang),我們基于(yu)Hudi的(de)(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)模型設計會考慮(lv):主(zhu)鍵(jian)&分(fen)區(qu)設計:主(zhu)鍵(jian)是確(que)定(ding)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)記錄(lu)和對其進行增刪改的(de)(de)(de)(de)(de)(de)(de)根本(ben)依據(ju)(ju)(ju);因(yin)此(ci)(ci)需(xu)(xu)要深刻(ke)的(de)(de)(de)(de)(de)(de)(de)理(li)解業務并(bing)以(yi)此(ci)(ci)為依據(ju)(ju)(ju)設計合理(li)的(de)(de)(de)(de)(de)(de)(de)穩定(ding)的(de)(de)(de)(de)(de)(de)(de)主(zhu)鍵(jian),否則(ze)當主(zhu)鍵(jian)改變時(shi),需(xu)(xu)要重(zhong)新構建(jian)(jian)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju),成(cheng)本(ben)還是比較高的(de)(de)(de)(de)(de)(de)(de)。主(zhu)鍵(jian)是索(suo)引(yin)的(de)(de)(de)(de)(de)(de)(de)生(sheng)成(cheng)依據(ju)(ju)(ju),當主(zhu)鍵(jian)改變時(shi),需(xu)(xu)要重(zhong)新構建(jian)(jian)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)。分(fen)區(qu)決定(ding)了數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)寫(xie)(xie)到哪個目錄(lu)&在哪個目錄(lu)內更新;如果分(fen)區(qu)的(de)(de)(de)(de)(de)(de)(de)設計發(fa)生(sheng)改變,相(xiang)同主(zhu)鍵(jian)的(de)(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)會被(bei)(bei)寫(xie)(xie)入(ru)到不同的(de)(de)(de)(de)(de)(de)(de)目錄(lu)中,造成(cheng)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)查詢時(shi)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)重(zhong)復(fu),當分(fen)區(qu)改變時(shi),需(xu)(xu)要重(zhong)新構建(jian)(jian)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)。Hudi的(de)(de)(de)(de)(de)(de)(de)分(fen)區(qu)數(shu)(shu)(shu)(shu)量(liang)(liang)可(ke)以(yi)用來控制pipeline的(de)(de)(de)(de)(de)(de)(de)并(bing)發(fa)量(liang)(liang)。合并(bing)&索(suo)引(yin)策(ce)(ce)略(lve)(lve):通過(guo)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)的(de)(de)(de)(de)(de)(de)(de)合并(bing)策(ce)(ce)略(lve)(lve)可(ke)以(yi)減少Hudi處(chu)理(li)的(de)(de)(de)(de)(de)(de)(de)量(liang)(liang),從而提升(sheng)處(chu)理(li)效率(lv)(lv)。索(suo)引(yin)策(ce)(ce)略(lve)(lve)是定(ding)位(wei)key與文(wen)件(jian)關系的(de)(de)(de)(de)(de)(de)(de)依據(ju)(ju)(ju),快(kuai)速(su)的(de)(de)(de)(de)(de)(de)(de)定(ding)位(wei)策(ce)(ce)略(lve)(lve)可(ke)以(yi)更快(kuai)的(de)(de)(de)(de)(de)(de)(de)完成(cheng)文(wen)件(jian)查找(zhao),提升(sheng)Hudi效率(lv)(lv)。并(bing)發(fa)&丟(diu)棄策(ce)(ce)略(lve)(lve):分(fen)區(qu)是提升(sheng)并(bing)發(fa)的(de)(de)(de)(de)(de)(de)(de)手段之一。在真正寫(xie)(xie)文(wen)件(jian)時(shi),Hudi會對比待處(chu)理(li)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)與已存(cun)在數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)的(de)(de)(de)(de)(de)(de)(de)的(de)(de)(de)(de)(de)(de)(de)狀(zhuang)態,這樣亂序(xu)、重(zhong)復(fu)數(shu)(shu)(shu)(shu)據(ju)(ju)(ju)直接被(bei)(bei)丟(diu)棄掉;減少寫(xie)(xie)的(de)(de)(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)量(liang)(liang),提升(sheng)寫(xie)(xie)的(de)(de)(de)(de)(de)(de)(de)效率(lv)(lv)。

當模型(xing)已(yi)在穩(wen)定的(de)運行,它是(shi)如何最終演化到這樣(yang)的(de),中間經歷(li)哪些挑(tiao)戰?快手(shou)推(tui)廣(guang)會在節假(jia)日(ri)做活(huo)動,這時候關系數(shu)據(ju)(ju)(ju)就會成倍于日(ri)常的(de)增(zeng)長;預熱期間數(shu)據(ju)(ju)(ju)開始爬坡式(shi)增(zeng)長,活(huo)動期數(shu)據(ju)(ju)(ju)增(zeng)長速(su)度(du)達到頂峰,活(huo)動結(jie)尾數(shu)據(ju)(ju)(ju)增(zeng)長變(bian)(bian)(bian)緩。基于三段(duan)式(shi)的(de)增(zeng)長趨勢(shi),在實現上我們也面(mian)臨(lin)了三個階段(duan)的(de)挑(tiao)戰:數(shu)據(ju)(ju)(ju)開始增(zeng)長,程(cheng)序處(chu)理(li)壓力變(bian)(bian)(bian)大,收到預警;隨著預熱進行數(shu)據(ju)(ju)(ju)持(chi)續(xu)變(bian)(bian)(bian)大,程(cheng)序的(de)處(chu)理(li)能力出現瓶頸,任務開始失(shi)敗(bai);數(shu)據(ju)(ju)(ju)持(chi)續(xu)變(bian)(bian)(bian)大積壓,同時失(shi)敗(bai)原(yuan)因(yin)是(shi)處(chu)理(li)失(shi)敗(bai),所以即使重啟也不能完成數(shu)據(ju)(ju)(ju)處(chu)理(li),造(zao)成需(xu)求(qiu)支持(chi)失(shi)敗(bai)。

針對以(yi)上三(san)個(ge)階(jie)段的(de)問題做了以(yi)下應對。

1.減(jian)少Hudi數據處理量(liang)

通過業(ye)務數據(ju)分析發現(xian),在活(huo)動期(qi)間有(you)用(yong)戶(hu)參加(jia)活(huo)動后(hou)取消關系的(de)(de)操(cao)作(zuo),設置合并策略可(ke)以(yi)減少Hudi的(de)(de)數據(ju)處理量。通過設置丟(diu)棄(qi)策略可(ke)以(yi)減少亂序、重復數據(ju)的(de)(de)處理,提高Hudi的(de)(de)寫(xie)文件效率。

2.提升索引的(de)效率&穩定性

選用(yong)分區(qu)(qu)布(bu)(bu)隆索(suo)(suo)引(yin)(yin),key與文(wen)件(jian)的(de)映射關系存儲(chu)在(zai)文(wen)件(jian)中(zhong),系統重啟、任務發(fa)布(bu)(bu)時可(ke)(ke)保證數(shu)據(ju)正確性。可(ke)(ke)以通過分區(qu)(qu)個數(shu)控(kong)制(zhi)單分區(qu)(qu)的(de)數(shu)據(ju)量,因為單分區(qu)(qu)的(de)索(suo)(suo)引(yin)(yin)大(da)小可(ke)(ke)控(kong),索(suo)(suo)引(yin)(yin)加載效率可(ke)(ke)控(kong)。索(suo)(suo)引(yin)(yin)大(da)小可(ke)(ke)控(kong),索(suo)(suo)引(yin)(yin)在(zai)內存中(zhong)占用(yong)的(de)比例可(ke)(ke)控(kong),可(ke)(ke)提升執行程(cheng)序(xu)的(de)穩定性。

3.提升寫效率

第一階段(duan)為(wei)解(jie)決并發(fa)(fa)(fa)問題(ti), 采用user_id做mod來控制并發(fa)(fa)(fa)度,讓程(cheng)序在平峰時可(ke)以(yi)穩(wen)定運行。第二階段(duan)發(fa)(fa)(fa)現個別分(fen)(fen)區有明顯長(chang)(chang)尾效(xiao)(xiao)應,發(fa)(fa)(fa)現是(shi)大V分(fen)(fen)區數據傾斜,所以(yi)采用user_id + follow_id做mod來控制并發(fa)(fa)(fa),解(jie)決傾斜長(chang)(chang)尾問題(ti)。早期為(wei)提升(sheng)寫文件(jian)效(xiao)(xiao)率設(she)置(zhi)單個小(xiao)文件(jian)大小(xiao)為(wei)128M,后來發(fa)(fa)(fa)現長(chang)(chang)尾效(xiao)(xiao)應后發(fa)(fa)(fa)現Hudi在執行數據更(geng)新時在一個分(fen)(fen)區內是(shi)一個個文件(jian)排隊(dui)更(geng)新的(de),這時候如果小(xiao)文件(jian)過多會出現排隊(dui)時間較長(chang)(chang)的(de)情況。(新版本已經可(ke)以(yi)設(she)置(zhi)單分(fen)(fen)區的(de)寫文件(jian)并發(fa)(fa)(fa)量)。

重(zhong)要(yao)說明:分區的(de)(de)改變需要(yao)重(zhong)新構建(jian)數據(ju),所(suo)以一定要(yao)在(zai)模(mo)型設計時(shi)深刻的(de)(de)理解(jie)(jie)(jie)業務做好規劃,盡量不要(yao)出現邊(bian)(bian)開飛機邊(bian)(bian)換發(fa)動機的(de)(de)情(qing)況(kuang)。已(yi)經(jing)解(jie)(jie)(jie)決了大基礎數據(ju)大數據(ju)量更新的(de)(de)復(fu)雜場景,所(suo)以希望(wang)在(zai)解(jie)(jie)(jie)決數據(ju)回刷局部更新問(wen)題時(shi),能解(jie)(jie)(jie)決研發(fa)效率(lv)問(wen)題,形成(cheng)一套標(biao)準化的(de)(de)可(ke)以復(fu)用的(de)(de)解(jie)(jie)(jie)決方案。訴求(qiu)是有一份(fen)業務數據(ju),包含日期(qi)分區、主鍵(jian)設備ID、渠(qu)道(dao)屬(shu)性;在(zai)01~03號的(de)(de)時(shi)候渠(qu)道(dao)為SEM,在(zai)04號的(de)(de)時(shi)候希望(wang)將數據(ju)更新為PinPai。

經過探索后,我(wo)們最終(zhong)形成(cheng)(cheng)了離線(xian)(xian) + 實時(shi) + Hudi的(de)(de)通用解決(jue)方案,并通過回刷補數(shu)(shu)(shu)(shu)的(de)(de)案例(li)(li)(li)來說明。回刷補數(shu)(shu)(shu)(shu),因為是(shi)(shi)補數(shu)(shu)(shu)(shu)場景所以(yi)(yi)(yi)暫時(shi)不需要(yao)所有的(de)(de)例(li)(li)(li)行都(dou)是(shi)(shi)用實時(shi)的(de)(de)方式生(sheng)成(cheng)(cheng)Hudi可識別(bie)的(de)(de)數(shu)(shu)(shu)(shu)據(ju)結構(gou),因此日常生(sheng)產可以(yi)(yi)(yi)通過離線(xian)(xian)批處理(li)的(de)(de)方式生(sheng)成(cheng)(cheng)Hudi可識別(bie)的(de)(de)存(cun)儲結構(gou)就可以(yi)(yi)(yi)。當需要(yao)進(jin)行數(shu)(shu)(shu)(shu)據(ju)修復的(de)(de)時(shi)候生(sheng)成(cheng)(cheng)需要(yao)更新(xin)的(de)(de)記錄即可(Hudi目前是(shi)(shi)按行整體更新(xin)的(de)(de)),比(bi)如(ru)右上(shang)圖(tu)的(de)(de)修復記錄。將(jiang)修復數(shu)(shu)(shu)(shu)據(ju)傳遞(di)給實時(shi)的(de)(de)Hudi處理(li)程序,對結果數(shu)(shu)(shu)(shu)據(ju)直(zhi)接更新(xin)即可。修復數(shu)(shu)(shu)(shu)據(ju)是(shi)(shi)通過更高(gao)的(de)(de)版本來覆(fu)蓋例(li)(li)(li)行版本,比(bi)如(ru)例(li)(li)(li)行版本號為0,修復版本號為20210503,其(qi)原理(li)是(shi)(shi)合(he)并&丟棄策略。對于對時(shi)效要(yao)求高(gao)的(de)(de)需求,可以(yi)(yi)(yi)直(zhi)接從實時(shi)數(shu)(shu)(shu)(shu)據(ju)源采集數(shu)(shu)(shu)(shu)據(ju),通過Hudi實時(shi)處理(li),生(sheng)成(cheng)(cheng)下游(you)可用的(de)(de)結果表。通過以(yi)(yi)(yi)上(shang)的(de)(de)架構(gou)我(wo)們可以(yi)(yi)(yi)實現對高(gao)時(shi)效、補數(shu)(shu)(shu)(shu)回刷的(de)(de)場景的(de)(de)覆(fu)蓋;同時(shi)也沉淀了一套通用的(de)(de)模板,進(jin)而提(ti)升(sheng)整體的(de)(de)研發效率。

快手廣告投(tou)放通(tong)過數(shu)據(ju)(ju)同步、補數(shu)回刷(shua)場景的(de)實踐,Hudi已經解決了我(wo)們的(de)業(ye)務痛點,也(ye)可(ke)以(yi)(yi)提(ti)升我(wo)們的(de)研發(fa)效(xiao)率(lv)。時(shi)(shi)效(xiao)性:將(jiang)整個數(shu)據(ju)(ju)流(liu)程分成6個階(jie)段(duan)(duan)(duan)5個流(liu)轉過程,當收到監控預警(jing)時(shi)(shi)可(ke)以(yi)(yi)根(gen)據(ju)(ju)預警(jing)的(de)流(liu)轉階(jie)段(duan)(duan)(duan)第一(yi)(yi)時(shi)(shi)間識(shi)別(bie)哪個階(jie)段(duan)(duan)(duan)哪個流(liu)轉出了問題(ti),從(cong)而能第一(yi)(yi)時(shi)(shi)間定位問題(ti)發(fa)生在(zai)哪里,第一(yi)(yi)時(shi)(shi)間進(jin)(jin)行(xing)問題(ti)排查(cha)。準確(que)性:通(tong)過探(tan)針每隔10分鐘從(cong)【業(ye)務數(shu)據(ju)(ju)】抽取10條數(shu)據(ju)(ju)與【Row Tables】做(zuo)(zuo)對比,如果95%一(yi)(yi)致(zhi)則(ze)通(tong)過、90%以(yi)(yi)上介入驗(yan)證、90%以(yi)(yi)下則(ze)進(jin)(jin)行(xing)業(ye)務阻斷,人工(gong)確(que)認問題(ti)或修復(fu)問題(ti)后再恢(hui)復(fu)任務。流(liu)程&設(she)計:Hudi的(de)模(mo)型(xing)設(she)計和數(shu)倉的(de)模(mo)型(xing)設(she)計有一(yi)(yi)些差異,會對模(mo)型(xing)設(she)計進(jin)(jin)行(xing)嚴格(ge)評審、對開(kai)發(fa)、測試、上線、監控配置流(liu)程做(zuo)(zuo)嚴格(ge)的(de)審查(cha)。


如何將快(kuai)(kuai)手(shou)(shou)廣告(gao)精準投放給目標用戶?廣告(gao)主(zhu)(zhu)想要在快(kuai)(kuai)手(shou)(shou)投放廣告(gao)應該如何操作(zuo)賬戶?哪些行業(ye)(ye)在快(kuai)(kuai)手(shou)(shou)平(ping)臺投放有(you)優(you)勢?快(kuai)(kuai)手(shou)(shou)信息流投放廣告(gao)的(de)展現(xian)形(xing)式(shi)有(you)哪些?有(you)沒有(you)專(zhuan)業(ye)(ye)的(de)快(kuai)(kuai)手(shou)(shou)廣告(gao)代理商?廣告(gao)主(zhu)(zhu)可以咨(zi)詢(xun)巨宣網絡,多年(nian)專(zhuan)業(ye)(ye)從事快(kuai)(kuai)手(shou)(shou)廣告(gao)推廣服務,有(you)需要的(de)快(kuai)(kuai)來咨(zi)詢(xun)我們吧(ba)!

公司優勢

提供80+媒體資源

我司提供互聯網廣告營銷服務超(chao)10年,擁有專業的人(ren)才儲備

行業頭部客戶運營經驗

擁有單賬戶日消耗百萬運營經驗,廣告(gao)賬戶總量超1萬!

專業建站/美工/拍攝團隊

賬戶開(kai)通(tong)后,提供專業的(de)建站(zhan)運(yun)營服(fu)(fu)務,百(bai)名運(yun)營服(fu)(fu)務!

較高政策優惠

如無需我(wo)司進行代運營,可(ke)提供較高返(fan)點政策,靠(kao)譜!

注意事項

首次開通賬戶注意哪些?
不論您是想投放那個媒體,都需要提前確定開戶資質,避免因為資質不全無法上線,資質齊全才能上線廣告,不論任何廣告平臺,資質齊全是廣告上線最重要的第一步!
開通廣告賬戶需要多少錢?
每個廣告賬戶開戶價格都有所差距,業內基礎開戶價格基本為5000元起充值,如低于該費用,需再三核實對方信息,避免上當受騙!
一般開通廣告賬戶需要多長時間?
如果您的資質齊全,開戶時間基本當天就可以下戶,如行業較為特殊,開戶時間基本不超過3個工作日。
開戶后你們能做哪些服務?
開通廣告賬戶后,我司可以協助廣告主搭建落地頁、上傳廣告素材、制作廣告素材、效果優化等服務,我司擁有運營人員上百人!
可以幫助我們拍攝視頻嗎?
我司不提供免費視頻拍攝,因目前各平臺對于素材審核較為嚴格,視頻素材如需我司提供需與我司客服溝通拍攝要求,視頻拍攝價格從300元-3000元不等,根據廣告主需求確定價格。

巨宣網絡

專注(zhu)信息流(liu)廣(guang)(guang)告(gao)/直播廣(guang)(guang)告(gao)/搜(sou)索(suo)廣(guang)(guang)告(gao)/短(duan)視頻廣(guang)(guang)告(gao)開(kai)戶(hu)服務!