更多技術交流、求職機會,歡迎關注位元組跳動資料平臺微信公眾號,並進入官方交流群
DataLeap 是火山引擎數智平臺 VeDI 旗下的巨量資料研發治理套件產品,幫助使用者快速完成資料整合、開發、運維、治理、資產、安全等全套資料中臺建設,降低工作成本和資料維護成本、挖掘資料價值、為企業決策提供資料支撐。
本篇文章主要圍繞火山引擎 DataLeap 一站式資料治理實踐展開分享,從資料治理思路、平臺建設以及能力升級三個步驟出發,帶你全面複製位元組跳動資料治理經驗。
資料治理存在落地困難的問題,體現在:
首先,治理效益與業務影響存在矛盾。資料治理需要對業務系統、生產流程改造,由此對業務造成影響。
第二,治理涉及的組織和管理難度大。資料治理涉及的角色多、範圍廣、鏈路長,且治理目標對齊、管理和跟進難度大。
第三,規範「人」的動作難度大。資料治理要依靠人來推進和執行,人員能力參差不齊,組織文化、目標也存在不對齊的情況。
第四,缺乏適配性強、全域性視角且靈活的資料治理工具。
下面結合位元組的特點,介紹資料治理工作的機遇和挑戰。
位元組文化
首先,位元組業務多、發展快、敏捷迭代,要求能快速響應業務需求;
第二,OKR 文化使得每個人都可以參與制定資料治理規劃和策略,並且主動尋找實現路徑;
第三,為追求高效治理,沒有設立統一的資料治理委員會,而是由各部門根據各自的業務情況進行治理。
業務第一
位元組業務規模大,且強調資料驅動,導致資料質量對業務的影響非常大。
綜上所述,資料治理在位元組是挑戰機遇與並存的工作。
針對上述問題,綜合考慮治理收益、業務影響、執行效率,火山引擎 DataLeap 提出了分散式資料自治的思路。
首先,在業務影響方面,為保證影響小,治理工作按照業務單元進行。一個業務單元可能是一個小團隊或者小專案。
第二,沉澱各業務線治理經驗,提升治理效率。
通過產品輔助業務自驅,實現規則化、策略化、自動化治理。
通過低門檻、演演算法推薦等平臺能力,降低治理門檻。
支援靈活的治理方式,如管理者視角,自上而下規劃性治理;如一線執行者視角,自下而上推動治理。
第三,適配性強,產品建設覆蓋治理全鏈路。
產品能力覆蓋穩定性、質量、安全、成本、報警等多場景。
各模組可以獨立使用、按需組合。
產品提供完整的開發能力,支援業務根據自身特點和發展階段自行接入。
與傳統集中式治理相比,分散式治理有很多優勢。
集中式治理:要求制客製化度,並進行大範圍組織推廣;要求劃分權責,定期抽查考核;建設週期長,適配能力弱,且組織投入多。
分散式自治:業務影響小;週期短,見效快;效率高,節省人力;便於算清業務收益,降低成本。
DataLeap 一站式資料解決方案,主要劃分為三層。
第一層 檢視層
從資產視角、管理者視角 、實施者視角縱覽資料治理的情況。
第二層 方案層
針對治理過程,提出了雙路徑。
路徑一【主動規劃】規劃式流程
主要解決的問題是確定目標後,如何推進執行的問題。主動規劃路徑還支援治理目標拆解成治理規則進行診斷,並根據診斷結果,執行治理。最後,通過收益統計、改進計劃等進行總結覆盤。
路徑二【系統發現】響應式流程
先由系統發現問題,再通過告警等形式通知資產責任人,並進行處理。最後通過根因分析等完成總結。
第三層 工具層
工具層主要為檢視層、方案層提供完備的治理工具,覆蓋質量、安全、成本、穩定性、報警與起夜等場景。工具層還通過打通基礎服務,賦能主動規劃和系統發現兩條治理路徑。
接下來為大家介紹規劃式路徑的具體建設過程。
特點:資產清晰,規則豐富,動線完整,收益準確。
思路:
制定目標,包括健康分目標,以及降低儲存、計算資源等。
根據目標制定治理方案,明確治理域、圈選治理規則。
制定方案後,由系統自動查詢儲存、計算等問題的明細,經過分析後,通過訊息催辦等方式,將問題下發到責任人,推動資料治理。
系統自動對治理效果進行採集,反饋目標達成情況,並對一段時間內的治理結果進行驗收和統計。
以上是規劃式流程的主線思路 。
下面介紹如何實現規劃式路徑的主要實現手段。
DataLeap 主要從治理全景和健康分兩個方面對資產進行描述。
第一,治理全景。從各個維度,通過明細、統計量,對團隊或個人資產的具體情況進行描述。如各個表佔了多少儲存空間,計算資源使用情況,任務報警率、起夜率,資料及時性和質量等。
第二,健康分。主要根據治理的垂直方向劃分為儲存健康分、計算健康分、質量健康分三個層級。在第一層的維度下,第二層細化問題大類,如儲存方面,包括:無效儲存、異常儲存等;質量方面,包括:及時性、報警、元資訊設定規範等。第三層則將具體問題通過標籤定義,如無效儲存涉及 TTL 不合理、熱度方面資訊(xx 天無查詢)等。
綜上,主要通過健康度和治理全景將資產清晰地表述出來,再通過後設資料倉庫進行底層資料建設。
目前平臺具備了完備的治理規則,涵蓋儲存、計算、質量、報警 4 大維度,50 多個規則。
其中包括全域性規則,如:生命週期永久、近 7 天產出為空、暴力掃描任務等;也包括一些自定義的規則,如生命週期 xxxt 天,近 xxx 天產出為空等。同時還兼具挖掘類規則,包括基於統計資訊進行聚合後形成的規則,以及基於資產(包括庫、表等)相似性發現問題的規則。
DataLeap 治理規則主要通過以下流程建設起來。
首先,通過底層與平臺基礎元件打通,完成資料收集,形成資料倉儲的基礎層;
其次,基於基礎層對資料資產進行畫像描述,進一步形成特徵域,做特徵挖掘和關聯分析;再將應用資料放到資料服務中,對外提供靈活的資料查詢能力。
最後,通過最上層的規則引擎,將資料和規則進行聯動,應用於規則建設。
明確出問題的資產後,如何儘快完成治理,減少和業務的衝突,對於提高效率至關重要。
基於治理平臺的能力,結合各個垂直場景,DataLeap 建設完善的治理動線。大致的思路如下:
任務治理方面,與任務開發、任務運維平臺打通,支援任務關閉、調整、調參,鏈路優化等;
庫表規範方面,和後設資料平臺聯動,實現表管理、庫管理、資產移交、屬性修改等;
生命週期方面,通過治理平臺將底層儲存(包括 hdfs、hive 等元件)打通,形成閉環式治理;
在資料質量方面,涉及 sla 及時性,離線、實時資料監控等,通過與質量規則平臺強聯動,互相登記資料,進行 sla 簽署以及強跳轉互動等。
完整的動線能使使用者在平臺中,以低操作成本完成一站式閉環治理。
完成治理後,如何判斷治理收益?
目前 DataLeap 建設了基於事件中心的底層框架。通過定義資料的消費模型,由訊息通道來定時收集各個平臺操作的訊息;同時,通過定義事件 SDK,相容 API 的方式,來靈活對接上游不同平臺。
通過訊息訂閱和消費的方式,資料治理平臺和研發平臺、後設資料平臺、質量平臺等完成對接,將治理事件接入事件中心,並將事件中心的離線資料 dump 到資料倉儲,進行離線加工,同時我們也會將最新事件,注入線上後設資料服務中,及時完成治理收益計算。
在技術架構層面,遵循以下原則:統一資料查詢、規則靈活組合、操作解耦、治理收益準確。
平臺後端負責分發和轉換治理邏輯,包括查數、設定目標、健康分展示與透出,治理操作等;
根據獲取的訊息後,後端平臺進行具體事件拆分。舉個例子,在看板類查數的部分,需求將統一傳送到查詢服務完成底層儲存做適配,通過點查、list、聚合類查詢,並在解析後選取不同的底層儲存。
規則引擎服務可與資料查詢服務聯動。通過資料查詢服務獲取資料,再通過規則定義成標籤,並抽象成服務。該服務可以對外提供對資產標籤描述,併成為通用能力。
資料治理具體實施被統一抽象成後臺模組,包括設定訊息、設定 ddl、進行刪除等。由該模組下發到元件層進行操作,再通過事件收集服務,並返回資料查詢服務,完成治理收益彙總。
特點:事後治理、問題總結、經驗沉澱。
思路:
首先,接到報警和訊息,包括 sla 破線、資料質量報警、計算任務報警等;
其次,系統將上述訊息彙總,並展示在治理平臺中。資料開發人員通過治理平臺進行訊息檢索、問題歸因,並完成根因打標,把問題具體定位到元件、平臺等顆粒度;
再次,通過公司組織方式找到元件側對接人,或通過組織會議將問題提交給相關責任方,推動對方完成保障;
最後,列出系統中的問題描述、改進計劃,定義問題並分析治理效果,並在問題解決後,推動方案分享、沉澱和複用。
響應式治理架構與規劃式治理大部分類似,最大區別在於訊息服務部分。作為基礎能力,訊息服務將巨量資料平臺相關產品中的訊息,接入統一服務中,成為所有報警訊息入口。並且訊息服務還可以做升級策略,如訊息聚合、訊息加急等。
業務有各自發展階段以及不同治理目標。例如,新興業務核心關注 sla 的能力;而成熟業務,則更重視規範性。如何避免一刀切,讓不同業務需求都能通過同一個治理平臺滿足?開放能力很重要。也就是說,要構建資料治理生態,讓業務可以自定義接入治理規則,並實施治理。
當前階段,我們將資料治理分為四個象限,橫座標為後設資料(三方後設資料、標準後設資料),縱座標為規則(表示式、演演算法包)。
第一象限 &第二象限:第一象限主要為定義標準後設資料和統一表示式,通過規則引擎直接適配。如果業務方存在第三方後設資料接入已定義規則,則如第二象限所示,接入的第三方後設資料需要遵循接入標準,並通過規則引擎完成適配。
第三象限 &第四象限:如果規則部分要進行相似度計算,且不是表示式可以描述的規則,則被定義為演演算法包或邏輯單元。如第三象限 &第四象限所示,要求定義輸入、輸出標準,通過呼叫包或外掛方式,執行邏輯。
整體而言,將平臺能力開放,讓業務接入自身的規則和資料,基礎是治理平臺有完善的後設資料格式和接入標準。 業務方只需負責加工自身接入部分,完成設定和資料對映,通過表示式或演演算法包計算後,完成統一輸出。
目前,上圖的開放接入能力正在開發當中,未來將對外提供服務。
接下來介紹智慧化能力,該能力可以進一步降低治理成本,提高治理效率。代表性落地場景如下:
問題:在 SLA 簽署中,任務上下游可能存在上千個節點,如何估計產出時間?
解決思路:目前主要通過血緣關係找到節點的關鍵路徑,基於執行時間進行權重分配,確保節點有相對合理的 SLA buffer。在推薦簽署環節,DataLeap 目前已經申請專利,並在生產中產生一定效果。第二期將基於執行失敗概率分佈情況來調整上游 buffer 壓縮,下游 buffer 寬鬆的問題。
問題:資料量正常分佈,但短期異常化的情況。如流量紀錄檔在假期或活動日,出現正常突增或突降的情況。
解決思路:常規的資料質量監控通常限定絕對值閾值,如歷史 7 天波動率等,容易造成假期或活動日誤報警,給值班人員造成不必要的打擾。DataLeap 提出了動態閾值的思路:基於資料歷史情況,歸納出不同分佈情況,並提供不同的預測方法。例如,動態閾值預測整個表在某一天的量級情況,然後基於資料量級設定上下閾值,超出閾值再進行報警或訊息通知。
資料分佈:資料量單調不減,大部分為快照表或全量表;假期或活動日可能出現資料量突增或突降,往往
紀錄檔類表時;資料量比較穩定,維度發生變化時,能反應出一定問題,往往是維度表。
預測方法:移動平均法、指數平滑法、自迴歸法、同期檢測法。
問題:由於業務龐大、開發人員多、任務量大,在開發過程中,存在不知道線上是否存在類似任務的問題,在跨團隊情況下更明顯,因此任務檢測非常必要。
解決思路:DataLeap 的基本思路是將目標原始碼和待檢測原始碼 sql 的 ast 序列化和向量化,對特徵向量做餘弦相似度計算,通過產品進行計算結果透出,再由業務完成標註,經過人工確認分析,對任務進行合併或下線。
以上是 DataLeap 在智慧化方面的一些探索。
最後總結一下,平臺總體架構分為三層。
產品層,從管理者視角和執行者視角做出區分。在具體治理過程中,遵循雙路徑方式:
規劃式治理:目標制定、規則圈選、治理實施、收益統計、經驗總結
響應式治理:訂閱訊息、發現問題、實施治理、登記問題、覆盤總結
服務層,也稱為整體服務邏輯層,拆分了資料服務、任務執行、訊息服務、事件中心等不同模組,特別是接入服務模組,能夠提供開放能力。
資料元件層,作為基礎建設層,包括後設資料倉庫建設、巨量資料元件適配等。
未來展望主要包括三個部分。
體驗打磨
在平臺建設階段,DataLeap 已經建立比較完善的能力,並在內部有效應用。接下來,我們會繼續貫徹雙路徑的建設方式。在規劃式路徑上,使資產更清晰、規則更豐富,進一步打磨動線,提高收益準確性。在響應式路徑上,除了問題登記、歸因外,後續將主要針對總結歸納、經驗沉澱進行建設,使位元組內部治理經驗更好地複用到其他業務方。
開放能力
分散式自治的理念,保證業務可以自定義目標,並對齊 SLA。後續,我們將從三個方面持續開放能力:
自定義指標,比如自定義健康分、自定義組織,使不同業務可以自身情況定義健康分的組織形式和描述。
自定義方案,進一步打磨自定義規則的接入流程,並將規則能力開放,支援業務呼叫,並完成自身資產分析。
打通業務,以業務視角看待問題,針對業務問題和需求,完善平臺建設。
增強型資料治理
目前 DataLeap 大部分都是統計類規則,正在建設挖掘類規則。後續會在智慧化模型建設方面,做更多預測分析。以上介紹的一站式資料治理能力和實踐,目前大部分已通過火山引擎 DataLeap 對外提供服務。
點選跳轉 巨量資料研發治理套件 DataLeap 瞭解更多