日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

阿里文娱测试开发专家谈《算法基石:实时数据质量如何保障?》

發(fā)布時(shí)間:2024/2/28 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里文娱测试开发专家谈《算法基石:实时数据质量如何保障?》 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

優(yōu)酷視頻搜索是文娛分發(fā)場最核心的入口之一,數(shù)據(jù)源多、業(yè)務(wù)邏輯復(fù)雜,尤其實(shí)時(shí)系統(tǒng)的質(zhì)量保障是一個(gè)巨大挑戰(zhàn)。如何保障數(shù)據(jù)質(zhì)量,如何衡量數(shù)據(jù)變化對(duì)業(yè)務(wù)的影響?本文會(huì)做詳細(xì)解答。

一、現(xiàn)狀分析

搜索數(shù)據(jù)流程如下圖所示,從內(nèi)容生產(chǎn)到生成索引經(jīng)歷了復(fù)雜的數(shù)據(jù)處理流程,中間表多達(dá)千余張,實(shí)時(shí)數(shù)據(jù)消費(fèi)即消失,難以追蹤和復(fù)現(xiàn)。

從上圖可以看出,整個(gè)系統(tǒng)以實(shí)時(shí)流模式為數(shù)據(jù)流通主體,業(yè)務(wù)層面按實(shí)體類型打平,入口統(tǒng)一分層解耦,極大的增加了業(yè)務(wù)的實(shí)時(shí)性和穩(wěn)定性。但是另一方面,這種龐大的流式計(jì)算和數(shù)據(jù)業(yè)務(wù)系統(tǒng)給質(zhì)量保障帶來了巨大的挑戰(zhàn)。如何從 0 開始,建設(shè)實(shí)時(shí)數(shù)據(jù)的質(zhì)量保障體系,同時(shí)保證數(shù)據(jù)對(duì)搜索引擎業(yè)務(wù)的平滑過渡?這是我們面臨的挑戰(zhàn)。

二、實(shí)時(shí)數(shù)據(jù)質(zhì)量保障體系方案

質(zhì)量保障需要透過現(xiàn)象看本質(zhì)。通過對(duì)架構(gòu)和業(yè)務(wù)的分析,可以發(fā)現(xiàn)整個(gè)流式計(jì)算的業(yè)務(wù)系統(tǒng)有幾個(gè)關(guān)鍵點(diǎn):流式計(jì)算、數(shù)據(jù)服務(wù)、全鏈路、數(shù)據(jù)業(yè)務(wù)(包括搜索引擎的索引和摘要)。整體的質(zhì)量訴求可以歸類為:

  • 基礎(chǔ)數(shù)據(jù)內(nèi)容質(zhì)量的保障

  • 流式鏈路的數(shù)據(jù)正確性和及時(shí)性保障

  • 數(shù)據(jù)變化對(duì)業(yè)務(wù)效果的非負(fù)向的保障

  • 結(jié)合線上、線下、全鏈路閉環(huán)的理論體系去設(shè)計(jì)我們的整體質(zhì)量保障方案,如下圖所示:

    三、線下質(zhì)量

    1.實(shí)時(shí) dump

    數(shù)據(jù)測試包含鏈路節(jié)點(diǎn)比對(duì)、時(shí)效性、正確性、一致性、可用性等方面,依托于阿里技術(shù)資源設(shè)計(jì)實(shí)時(shí) dump 的方案如圖:

    2.數(shù)據(jù)一致性

    一致性主要是指每個(gè)鏈路節(jié)點(diǎn)消費(fèi)的一致性,重點(diǎn)在于整體鏈路的各個(gè)節(jié)點(diǎn)的數(shù)據(jù)處理消費(fèi)情況保持一致,通過對(duì)數(shù)據(jù)消費(fèi)的分時(shí)分頻率的比對(duì)完成一致性驗(yàn)證。方案如下圖:

    我們采取不同的數(shù)據(jù)流頻率輸送給實(shí)時(shí)鏈路進(jìn)行消費(fèi),利用各層的 dump 機(jī)制進(jìn)行數(shù)據(jù) dump,然后取不同的抽樣間隔對(duì) dump 數(shù)據(jù)計(jì)算分析,分為三種不同的數(shù)據(jù)頻率模式:

    • natural-flow:自然消費(fèi)的數(shù)據(jù)流,是源于線上真實(shí)的數(shù)據(jù)消息通道,即自然頻率的數(shù)據(jù)消費(fèi),以該模式進(jìn)行測試更貼合實(shí)際業(yè)務(wù)情景;

    • high-frequency:高頻數(shù)據(jù)流,采用超出真實(shí)峰值或者其他設(shè)定值的數(shù)據(jù)頻次輸送給實(shí)時(shí)消費(fèi)鏈路,在壓測或者檢測鏈路穩(wěn)定性中是一個(gè)常用的測試策略;

    • low-frequency:低頻數(shù)據(jù)流,采用明顯低于真實(shí)值或者特定的低頻次數(shù)據(jù)輸送給實(shí)時(shí)消費(fèi)鏈路。如果數(shù)據(jù)鏈路中有基于數(shù)據(jù)量的批量處理策略會(huì)暴露的比較明顯,比如批量處理的閾值是 100,那么在業(yè)務(wù)低峰時(shí)很有可能達(dá)不到策略閾值,這批數(shù)據(jù)就會(huì)遲遲不更新,這個(gè)批量處理策略可能不是合理。同時(shí)低頻次的消費(fèi)對(duì)于實(shí)時(shí)鏈路處理的一些資源、鏈接的最低可用度這些層面的檢查也是有意義的。

      3.數(shù)據(jù)正確性

    數(shù)據(jù)正確性是對(duì)于數(shù)據(jù)內(nèi)容的具體值的檢查,總體原則是:

    • 首先,高優(yōu)保障影響用戶體驗(yàn)的數(shù)據(jù);

    • 其次,保障業(yè)務(wù)層直接使用的核心業(yè)務(wù)相關(guān)的數(shù)據(jù)內(nèi)容;

    • 再次,中間層的核心業(yè)務(wù)相關(guān)數(shù)據(jù)由于不對(duì)外露出,會(huì)轉(zhuǎn)換成業(yè)務(wù)引擎需要的最終層的業(yè)務(wù)數(shù)據(jù)。所以中間層我們采用通用的規(guī)則和業(yè)務(wù)規(guī)則來做基礎(chǔ)數(shù)據(jù)質(zhì)量保障,同時(shí)對(duì)上下游數(shù)據(jù)內(nèi)容變化進(jìn)行 diff 對(duì)比,保障整個(gè)流程處理的準(zhǔn)確性。

      4.數(shù)據(jù)可用性

    數(shù)據(jù)可用性指的是數(shù)據(jù)鏈路生產(chǎn)的最終數(shù)據(jù)是能夠安全合理使用的,包括存儲(chǔ)、查詢的讀寫效率、數(shù)據(jù)安全讀寫、對(duì)不同的使用方提供的數(shù)據(jù)使用保持一致性等。

    可用性保障主要關(guān)注數(shù)據(jù)的存儲(chǔ)、查詢、數(shù)據(jù)協(xié)議(數(shù)據(jù)結(jié)構(gòu))三個(gè)大的維度,衡量的標(biāo)準(zhǔn)重點(diǎn)關(guān)注三個(gè)方面:

    • 易讀寫:數(shù)據(jù)的結(jié)構(gòu)化存儲(chǔ)和寫入必須是高效合理的;

    • 服務(wù)一致:數(shù)據(jù)在結(jié)構(gòu)化存儲(chǔ)后,對(duì)外提供的服務(wù)有很多種,比如 PB 協(xié)議、API、SDK 等,需要根據(jù)業(yè)務(wù)去考量。比如 SDK、PB 等對(duì)外提供使用的方式會(huì)涉及協(xié)議版本,不同的版本可能數(shù)據(jù)結(jié)構(gòu)不一致導(dǎo)致對(duì)外使用的數(shù)據(jù)不一致性;

    • 安全可靠:重點(diǎn)關(guān)注存儲(chǔ)穩(wěn)定、可靠、高效,兼顧效率和穩(wěn)定性,同時(shí)更要關(guān)注安全性,防范隨意改寫數(shù)據(jù)、惡意 dump 等嚴(yán)重影響線上數(shù)據(jù)使用安全的風(fēng)險(xiǎn)。

      5.時(shí)效性

    由于實(shí)時(shí)鏈路的流式特性和多實(shí)體多次更新的特性,在測試時(shí)效性時(shí)核心問題有兩點(diǎn):

    • 如何去跟蹤確定一條唯一的消息在整個(gè)鏈路的消費(fèi)情況;

    • 如何低成本獲取每個(gè)節(jié)點(diǎn)過程的數(shù)據(jù)鏈路時(shí)間。

    我們抽象出一個(gè) trace+wraper 的流式 trace 模型如下圖:

    獲取鏈路過程的每個(gè)節(jié)點(diǎn)的時(shí)間,包括傳輸時(shí)間和處理時(shí)間。對(duì)于 track-wraper 需要約定統(tǒng)一的 track 規(guī)范和格式,并且保證這部分的信息對(duì)業(yè)務(wù)數(shù)據(jù)沒有影響,沒有增加大的性能開銷。如下圖,我們最終的信息中經(jīng)過 trace&track-wraper 帶出來的 trak-info,采用 json 格式方便 track-info 的擴(kuò)展性。

    這樣就很容易獲取到任意信息,計(jì)算每個(gè)節(jié)點(diǎn)的時(shí)間:

    我們也可以通過抽樣計(jì)算一些統(tǒng)計(jì)指標(biāo)衡量時(shí)效:

    對(duì)于時(shí)效性有明顯異常的數(shù)據(jù)可以篩選出來,進(jìn)行持續(xù)優(yōu)化。

    6.性能測試

    實(shí)時(shí)數(shù)據(jù)鏈路本質(zhì)是一套全鏈路數(shù)據(jù)計(jì)算服務(wù),所以我們也需要測試它的性能情況。

    第一步,我們先具體化全鏈路的待測系統(tǒng)服務(wù)

    包括兩部分的性能,Bigku 的反查服務(wù),即 HSF 服務(wù),再就是 blink 的計(jì)算鏈路節(jié)點(diǎn)。

    第二步,準(zhǔn)備數(shù)據(jù)和工具

    壓測需要的業(yè)務(wù)數(shù)據(jù)就是消息。數(shù)據(jù)準(zhǔn)備有兩種方式,一種是盡可能模擬真實(shí)的消息數(shù)據(jù),我們只要獲取消息內(nèi)容進(jìn)行程序自動(dòng)模擬即可;另外一種會(huì)采用更真實(shí)的業(yè)務(wù)數(shù)據(jù) dump 引流,進(jìn)行流量回放。

    由于數(shù)據(jù)鏈路的特性,對(duì)壓測鏈路施壓就是轉(zhuǎn)成發(fā)送消息數(shù)據(jù),那么如何控制數(shù)據(jù)發(fā)送呢?有兩種方式:第一種我們開發(fā)一個(gè)發(fā)送消息的服務(wù)接口,轉(zhuǎn)變成常規(guī)的接口服務(wù)壓測,然后可以采用阿里的任何壓測工具,整個(gè)測試就變成常規(guī)的性能測試;第二種我們可以利用 blink 消息回追的機(jī)制,重復(fù)消費(fèi)歷史消息進(jìn)行壓測,不過這種方法有弊端,無法控制消息的頻率。

    7.壓測和指標(biāo)收集

    根據(jù)業(yè)務(wù)情況來收集指標(biāo),指標(biāo)包括服務(wù)本身的指標(biāo)和資源指標(biāo),可以參考我們的部分性能測試報(bào)告示例(數(shù)據(jù)有截?cái)?#xff09;:

    四、線上質(zhì)量

    1.服務(wù)穩(wěn)定性保障

    穩(wěn)定性包括兩個(gè)層面,一是實(shí)時(shí)計(jì)算任務(wù)鏈路的每個(gè)節(jié)點(diǎn)的穩(wěn)定性,二是內(nèi)置服務(wù)的穩(wěn)定性。

    2.實(shí)時(shí)計(jì)算

    由于實(shí)時(shí)計(jì)算采用全 blink 的計(jì)算方式,我們可以利用 blink 系統(tǒng)本身的特性來做任務(wù)的監(jiān)控。每個(gè)節(jié)點(diǎn)的任務(wù)都需要配置穩(wěn)定性指標(biāo)的監(jiān)控,包括 rps、delay、failover 等。效果示例如下:

    3.實(shí)體服務(wù)

    實(shí)體服務(wù)是 HSF 服務(wù),采用阿里統(tǒng)一的監(jiān)控平臺(tái)來完成整體服務(wù)能力的監(jiān)控,示例如圖:

    整體指標(biāo)包含以下內(nèi)容:

    4.數(shù)據(jù)消費(fèi)保障

    在數(shù)據(jù)消費(fèi)層面,重點(diǎn)關(guān)注每個(gè)鏈路層級(jí)的消費(fèi)能力和異常情況。基于積累的 track-report 能力進(jìn)行數(shù)據(jù)統(tǒng)計(jì),結(jié)合平臺(tái)完備的基礎(chǔ)能力來完成消費(fèi)保障。分為兩層:

    核心層:消息出口的實(shí)體消息統(tǒng)計(jì)監(jiān)控,包括整體數(shù)量和消息內(nèi)容分類統(tǒng)計(jì)監(jiān)控。如圖示例:

    中間層:包括每個(gè)實(shí)體消息處理的 accept,處理邏輯層的 success、fail、skip 指標(biāo),便于我們實(shí)時(shí)知曉每個(gè)鏈路層收到的消息、成功處理、錯(cuò)誤和合理異常等消費(fèi)能力情況。如圖示例:

    5.數(shù)據(jù)內(nèi)容保障

    數(shù)據(jù)內(nèi)容層,建設(shè)綜合數(shù)據(jù)更新、數(shù)據(jù)內(nèi)容檢查、業(yè)務(wù)效果三位一體的精準(zhǔn)數(shù)據(jù)檢查,達(dá)到數(shù)據(jù)生產(chǎn)、消費(fèi)、可用性的閉環(huán)檢測,如圖所示:

    從圖中可以看出,我們數(shù)據(jù)內(nèi)容保障分為三部分:

    1)sampler:抽樣器,通過 blink 實(shí)時(shí)消費(fèi)消息在鏈路中抽取待測數(shù)據(jù),通常是只抽取數(shù)據(jù) ID;抽樣策略分間隔和隨機(jī)兩種。間隔策略就是取固定時(shí)間間隔的特定數(shù)據(jù)進(jìn)行檢查;隨機(jī)則根據(jù)一定的隨機(jī)算法策略來抽樣數(shù)據(jù)進(jìn)行檢查。

    2)data-monitor:是做數(shù)據(jù)內(nèi)容檢查,包括更新時(shí)效性和數(shù)據(jù)特征屬性檢查。

    3)effect-monitor:數(shù)據(jù)正常更新之后,對(duì)在線業(yè)務(wù)實(shí)時(shí)產(chǎn)生的效果影響進(jìn)行檢查,檢查的核心點(diǎn)包括搜索的兩大基本效果——召回和排序,以及用戶體驗(yàn)相關(guān)的數(shù)據(jù)屬性的檢查。

    部分?jǐn)?shù)據(jù)實(shí)時(shí)效果示例圖:

    6.實(shí)時(shí)干預(yù)與自動(dòng)修復(fù)

    實(shí)時(shí)干預(yù)通道,如下圖:

    實(shí)時(shí)干預(yù)系統(tǒng)會(huì)根據(jù)不同的干預(yù)需求,對(duì)消息內(nèi)容和干預(yù)機(jī)制進(jìn)行消息組裝和通道分發(fā)。

    1)當(dāng)主通道業(yè)務(wù)鏈路正常時(shí),若需要強(qiáng)制更新一個(gè) ID 維度的數(shù)據(jù),只需要輸入 ID 走正常主鏈路更新即可。

    2)當(dāng)需要強(qiáng)制干預(yù)某些具體的數(shù)據(jù)內(nèi)容到指定的消息通道時(shí),則可進(jìn)行數(shù)據(jù)內(nèi)容級(jí)別的更詳細(xì)的精準(zhǔn)干預(yù)。

    3)緊急強(qiáng)制干預(yù),是指當(dāng)主鏈路中間層處理有較大延遲或者完全阻塞時(shí),會(huì)造成下游業(yè)務(wù)層數(shù)據(jù)無法正常獲取輸入。通過主邏輯全 copy 的機(jī)制建立了一個(gè) VIP 的消息通道,通過 VIP 通道去直接干預(yù)出口消息,保證業(yè)務(wù)數(shù)據(jù)正常能進(jìn)行優(yōu)先更新。

    五、質(zhì)量效能

    效能層面主要指:研發(fā)能快速自測上線,線上問題能高效排查定位這兩個(gè)維度,以期達(dá)到保證快速迭代、節(jié)省人力投入的目標(biāo)。所以我們提供了實(shí)時(shí) debug 和實(shí)時(shí)全鏈路 trace 透視兩大提效體系。

    1.實(shí)時(shí) debug

    實(shí)時(shí) debug 是基于實(shí)時(shí)消息通道能力和 debug 機(jī)制建立的一套服務(wù),在研發(fā)自測、問題復(fù)現(xiàn)等場景有很大用途,可以通過 debug 模式詳細(xì)了解鏈路的業(yè)務(wù)層處理細(xì)節(jié),業(yè)務(wù)層只需要按數(shù)據(jù)需求自主定制 debug 內(nèi)容,無需其他接入成本,具備很強(qiáng)的通用性和擴(kuò)展性。

    平臺(tái)效果圖:

    填入節(jié)目 ID,發(fā)送消息就會(huì)自動(dòng)進(jìn)入實(shí)時(shí) debug 模式。

    同時(shí)還配備了指定消息內(nèi)容的專家模式,方便研發(fā)進(jìn)行單獨(dú)的消息內(nèi)容制定化測試和干預(yù)。

    2.全鏈路 trace

    我們提煉了一個(gè)全鏈路實(shí)時(shí) trace 的通用模型,同時(shí)做更精細(xì)定制化的 trace 機(jī)制。結(jié)合實(shí)時(shí)業(yè)務(wù)鏈路邏輯視圖,來看下 trace 的系統(tǒng)實(shí)現(xiàn):

    鏈路層視角,目前整體分為 4 個(gè)業(yè)務(wù)塊,數(shù)據(jù)流按順序進(jìn)行展示:

    1)bigku_service ?展示了當(dāng)時(shí)消息的鏡像數(shù)據(jù)

    2) mid_show_f 為算法層面的基礎(chǔ)特征,即一級(jí)特征,包含了業(yè)務(wù)信息和系統(tǒng)信息(工程關(guān)注的指標(biāo)數(shù)據(jù),主要用來指導(dǎo)優(yōu)化)。

    3)sum_video_f 和 ogc 屬于搜索鏈路上的數(shù)據(jù),一般在節(jié)目里面會(huì)有一些較為復(fù)雜的截?cái)噙壿?#xff0c;通過字典表的形式提供數(shù)據(jù)層的透視視角,可以看到鏈路的全部信息。

    六、產(chǎn)品體驗(yàn)實(shí)時(shí)自動(dòng)化保障

    我們?cè)趯?shí)時(shí)數(shù)據(jù)內(nèi)容質(zhì)量方面做了融合效果監(jiān)控的質(zhì)量方案,建立了實(shí)時(shí)發(fā)現(xiàn)問題、實(shí)時(shí)定位、實(shí)時(shí)修復(fù)的閉環(huán)鏈路效果保障體系,起到了很好的效果。體系方案如下圖:

    總結(jié)

    以上是生活随笔為你收集整理的阿里文娱测试开发专家谈《算法基石:实时数据质量如何保障?》的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。