1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        網(wǎng)易嚴(yán)選數(shù)據(jù)質(zhì)量實踐

        共 3395字,需瀏覽 7分鐘

         ·

        2022-04-12 00:08

        點擊上方藍(lán)色字體,選擇“設(shè)為星標(biāo)”
        回復(fù)"面試"獲取更多驚喜
        八股文教給我,你們專心刷題和面試
        Hi,我是王知無,一個大數(shù)據(jù)領(lǐng)域的原創(chuàng)作者。?
        放心關(guān)注我,獲取更多行業(yè)的一手消息。

        這篇文章將從三個方面給大家介紹:

        第一部分,數(shù)據(jù)質(zhì)量問題的危害和發(fā)生原因;

        第二部分,如何保障數(shù)據(jù)質(zhì)量;

        第三部分,網(wǎng)易嚴(yán)選數(shù)據(jù)質(zhì)量實踐。


        1

        數(shù)據(jù)質(zhì)量問題的危害和發(fā)生原因


        1. 數(shù)據(jù)質(zhì)量問題的危害

        數(shù)據(jù)質(zhì)量問題的危害通常體現(xiàn)在四個方面:數(shù)據(jù)的完整性、數(shù)據(jù)延遲、數(shù)據(jù)準(zhǔn)確性、數(shù)據(jù)一致性。


        數(shù)據(jù)完整性??猶記得2018年杭研和考拉一起共建數(shù)據(jù)中臺,為了更好的了解業(yè)務(wù),我駐扎到考拉現(xiàn)場。剛?cè)滋欤?dāng)時考拉的業(yè)務(wù)投訴數(shù)倉、說流量數(shù)據(jù)不正確,排查了半天,發(fā)現(xiàn)是流量數(shù)據(jù)丟失,原因是幾臺機器數(shù)據(jù)沒有收集,最終定為P2事故。


        數(shù)據(jù)延遲??在考拉呆了幾個星期,有一天分析師和業(yè)務(wù)在群里吼,怎么數(shù)據(jù)還沒有產(chǎn)出?都十點多了。原因是一個關(guān)鍵任務(wù)失敗,報警電話給對應(yīng)人沒有叫起來,導(dǎo)致了整個數(shù)據(jù)延遲4小時+,定級P3事故。


        數(shù)據(jù)準(zhǔn)確性??2020年下半年嚴(yán)選由于一個任務(wù)節(jié)點依賴有問題,沒有依賴到數(shù)據(jù),導(dǎo)致了用戶標(biāo)簽一堆老客當(dāng)成了新客,造成了30w+的資損P1事故。


        數(shù)據(jù)一致性??2020年 嚴(yán)選新客運營同學(xué)提出用戶當(dāng)前紅包數(shù)據(jù)不準(zhǔn)確,用戶紅包用掉了,怎么APP上還有浮層提醒,定位發(fā)現(xiàn)flink任務(wù)里面的一個task寫ES的時候假死,其他task正常。

        ?

        數(shù)據(jù)質(zhì)量會導(dǎo)致資損、業(yè)務(wù)分析滯后、錯誤、算法模型不準(zhǔn)確、數(shù)據(jù)質(zhì)疑 等等問題,我們可以分析下具體的發(fā)生原因。


        2. 數(shù)據(jù)質(zhì)量問題發(fā)生的原因

        原因可以總結(jié)為兩個方面:統(tǒng)不穩(wěn)定、程序BUG


        系統(tǒng)不穩(wěn)定

        • 埋點服務(wù)器配置更新或掛掉導(dǎo)致日志收集問題;

        • ?日志和數(shù)據(jù)庫數(shù)據(jù)同步問題;

        • ?離線計算平臺任務(wù)突然變慢卡死或失敗問題;

        • ?實時計算平臺任務(wù)Task卡死;

        • ?KAFKA壓力大數(shù)據(jù)延遲。


        程序bug

        • 后端程序有Bug原始數(shù)據(jù)有問題;

        • 數(shù)據(jù)開發(fā)程序有Bug;

        • 實時任務(wù)和離線任務(wù)邏輯不一致;

        • 上游數(shù)據(jù)變更未通知下游。


        知道了發(fā)生數(shù)據(jù)質(zhì)量問題原因,接下來我們怎么防范呢?


        2

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


        1. 采用規(guī)范的開發(fā)模式(解決后端和數(shù)據(jù)開發(fā)的Bug)

        利用網(wǎng)易有數(shù)的中臺產(chǎn)品:數(shù)據(jù)測試中心,做到開發(fā)->測試->上線監(jiān)控流程


        第一次開發(fā)的時候,探查數(shù)據(jù)形態(tài)(如枚舉數(shù)量),進(jìn)行唯一性檢測,和業(yè)務(wù)確認(rèn)數(shù)據(jù)量;

        后期修改任務(wù)(業(yè)務(wù)改造),通過主鍵,進(jìn)行改造前后數(shù)據(jù)對比;

        針對核心資產(chǎn)任務(wù),進(jìn)行code view機制,審批后提交上線;

        上線后增加唯一性監(jiān)控、行數(shù)監(jiān)控、枚舉值監(jiān)控、指標(biāo)值監(jiān)控等相應(yīng)監(jiān)控。


        2. 通過基線的機制保障數(shù)據(jù)及時性

        利用網(wǎng)易有數(shù)的中臺產(chǎn)品:任務(wù)運維中心,設(shè)置2點半基線->4點半基線->7點半基線,保證核心維表和dwd表、核心dws相關(guān)dwd表、核心dm層表及時產(chǎn)出


        采用預(yù)警的方式提前白天處理,減少夜晚報警(如流量當(dāng)天數(shù)據(jù)監(jiān)控);

        采用值班機制、多次呼叫并升級,防止電話打不醒、任務(wù)延遲事故問題。


        3. 數(shù)據(jù)質(zhì)量監(jiān)控

        利用網(wǎng)易有數(shù)中臺產(chǎn)品:數(shù)據(jù)質(zhì)量中心,進(jìn)行完整性、準(zhǔn)確性、一致性監(jiān)控


        【完整性】針對當(dāng)天日志的IP地址數(shù)目進(jìn)行監(jiān)控,如果發(fā)現(xiàn)IP減少進(jìn)行白天報警規(guī)則,(避免第二天T+1任務(wù)出問題);

        【準(zhǔn)確性】核心dwd和dim表進(jìn)行行數(shù)、波動性、主鍵、枚舉值監(jiān)控保證準(zhǔn)確性;

        【準(zhǔn)確性】核心dws指標(biāo)、枚舉 進(jìn)行監(jiān)控;

        【一致性】針對實時和離線數(shù)據(jù)進(jìn)行對比監(jiān)控(Lambda架構(gòu))? 針對不同存儲引擎數(shù)據(jù)對比監(jiān)控(如Mysql、ES、Kudu)。


        保障數(shù)據(jù)質(zhì)量的輔助產(chǎn)品已經(jīng)到位了,我們是怎么實踐的呢?


        3

        數(shù)據(jù)質(zhì)量實踐


        1. 開發(fā)篇-超會改造

        背景:

        由于之前后端表設(shè)計不合理、導(dǎo)致新業(yè)務(wù)不能支持、業(yè)務(wù)后端需要改造。


        改造過程:

        業(yè)務(wù)10+表進(jìn)行變更、甚至有一張表拆分成4+表的場景、業(yè)務(wù)含義、枚舉大規(guī)模變更;

        我們進(jìn)行了20+數(shù)據(jù)模型對比,如果有問題反饋給業(yè)務(wù)后端改造


        改造結(jié)果:

        幫助主站后端找到8+問題,讓其進(jìn)行修復(fù);保證了改造前后數(shù)倉數(shù)據(jù)一致性,最終成功上線切換。


        2. 保障及時性

        我們進(jìn)行了輪班值班機制。每人3天,一個主值班人員、一個被值班人員。主要設(shè)立3條基線 2點半、4點半、7點半。


        在基線我們有兩種報警:一種預(yù)警、一種破線。


        掛在基線里面的任務(wù)或者鏈路里面的任務(wù)失敗,直接電話報警;

        通過近14天排除掉最長運行時間和最短的運行時間進(jìn)行鏈路計算時間,如果有可能破線,會進(jìn)行基線破線電話報警。


        通過預(yù)警我們不會進(jìn)行電話報警,會采用短信、pop、郵件報警,如2點半基線在兩點的時候沒完成(緩沖半個小時),這樣白天我們進(jìn)行任務(wù)優(yōu)化。如果不長期優(yōu)化,就會惡性循環(huán),在破線的邊緣徘徊。


        如果值班人電話打不通沒處理,會給被值班人員進(jìn)行呼叫。


        PS: 值班很痛苦、需要大家共同保障。


        3. 保障完整性、準(zhǔn)確性、一致性

        日志監(jiān)控

        對于正常日志丟失,我們進(jìn)行了IP數(shù)量的校驗。


        針對當(dāng)天流量日志進(jìn)行IP數(shù)量的監(jiān)控,如大于多少臺,以及波動性監(jiān)控;當(dāng)機器數(shù)量減少的時候觸發(fā)報警。這里的報警要注意的點 是當(dāng)天的流量數(shù)據(jù),非T+1(如果半夜叫起處理的話基本也延遲了),也不存在阻斷下游的概念。


        如果有的日志有對應(yīng)DB數(shù)據(jù),此時還可以加上日志和db數(shù)據(jù)的對比較監(jiān)控。


        業(yè)務(wù)上游變更

        業(yè)務(wù)上游變更可能會涉及到字段名稱、類型,這種我們主要采用審批和變更提醒的方式進(jìn)行防護(hù),還有一種是業(yè)務(wù)的邏輯的變更。

        case?when?a.topic?=?"getCartCoupon"?then?1when?a.topic?=??"getCoupon"?and?a.sub_welfare_type?not?in?(6)?then?2?when?a.topic?=?"pushSms"?then?3when?a.topic?=?"getCoupon"?and?a.sub_welfare_type?in?(6)?then?6when?a.topic?=?"openCard"?then?6else 0 end as welfare_type,


        數(shù)倉針對業(yè)務(wù)進(jìn)行定義了枚舉,當(dāng)業(yè)務(wù)有新的類型產(chǎn)出的時候,我們可能識別不出來,那怎么能快速發(fā)現(xiàn)呢?答案如下:


        重要資損模型

        有時候數(shù)倉團隊會出dm模型用來進(jìn)行發(fā)放福利,這個如果稍有差錯,就可能帶來大的資損事故(錢的多少決定了事故的等級),在這塊我們會進(jìn)行基礎(chǔ)的監(jiān)控和發(fā)放錢的監(jiān)控。


        如果當(dāng)天需要發(fā)放超過10w就會阻斷。


        標(biāo)簽相關(guān)監(jiān)控

        在用戶標(biāo)簽這塊我們會有實時+離線的dm層明細(xì)數(shù)據(jù)、匯總數(shù)據(jù),為了保障標(biāo)簽不帶來資損,這塊我們也進(jìn)行了全方位的質(zhì)量監(jiān)控(這塊類似于dwd 和dws 的數(shù)據(jù)監(jiān)控)。


        比如在明細(xì)數(shù)據(jù)這塊我們主要進(jìn)行了唯一性和行數(shù)以及波動性的檢測。


        匯總數(shù)據(jù)這塊我們除了基礎(chǔ)唯一性、行數(shù)、波動性的檢測外加了指標(biāo)監(jiān)控。


        在實時和離線這塊我們進(jìn)行了對比監(jiān)控。


        對于標(biāo)簽,除了存儲hive kudu外還會存儲到ES和Hbase里面,所以我們還加了數(shù)據(jù)對比監(jiān)控。


        事實證明,只有完善的監(jiān)控才能保證標(biāo)簽的整體質(zhì)量。


        4

        總結(jié)


        最后總結(jié)下在數(shù)據(jù)質(zhì)量實踐過程中沉淀的方法。第一沉淀了實時標(biāo)簽開發(fā)流程規(guī)范:


        第二個是沉淀了質(zhì)量監(jiān)控的方法:


        以上是我今天介紹的內(nèi)容,希望能給大家?guī)硪恍┙梃b,謝謝。


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



        2022年全網(wǎng)首發(fā)|大數(shù)據(jù)專家級技能模型與學(xué)習(xí)指南(勝天半子篇)
        互聯(lián)網(wǎng)最壞的時代可能真的來了
        我在B站讀大學(xué),大數(shù)據(jù)專業(yè)
        我們在學(xué)習(xí)Flink的時候,到底在學(xué)習(xí)什么?
        193篇文章暴揍Flink,這個合集你需要關(guān)注一下
        Flink生產(chǎn)環(huán)境TOP難題與優(yōu)化,阿里巴巴藏經(jīng)閣YYDS
        Flink CDC我吃定了耶穌也留不住他!| Flink CDC線上問題小盤點
        我們在學(xué)習(xí)Spark的時候,到底在學(xué)習(xí)什么?
        在所有Spark模塊中,我愿稱SparkSQL為最強!
        硬剛Hive | 4萬字基礎(chǔ)調(diào)優(yōu)面試小總結(jié)
        數(shù)據(jù)治理方法論和實踐小百科全書
        標(biāo)簽體系下的用戶畫像建設(shè)小指南
        4萬字長文 | ClickHouse基礎(chǔ)&實踐&調(diào)優(yōu)全視角解析
        【面試&個人成長】2021年過半,社招和校招的經(jīng)驗之談
        大數(shù)據(jù)方向另一個十年開啟 |《硬剛系列》第一版完結(jié)
        我寫過的關(guān)于成長/面試/職場進(jìn)階的文章
        當(dāng)我們在學(xué)習(xí)Hive的時候在學(xué)習(xí)什么?「硬剛Hive續(xù)集」

        瀏覽 102
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

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

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            A片在线免费观看视频 | 97色情一区二区三区 | 白嫩少妇不戴套出白浆 | 小骚逼直播| 日日摸日日操 | 91嫩草国产丨精品入口麻豆 | 香蕉久久国产亚洲-V666AV | 中文字幕-区二区三区四区视频 | 欧美日韩成人在线视频 | 蒙古一级婬片A片免费 |