干貨 | 攜程酒店基于血緣元數據的數據流程優化實踐

作者簡介

九號,攜程數據技術專家,關注數據倉庫架構、數據湖、流式計算、數據治理。

一、背景

元數據MetaData狹義的解釋是用來描述數據的數據,廣義的來看,除了業務邏輯直接讀寫處理的那些業務數據,所有其它用來維持整個系統運轉所需的信息/數據都可以叫作元數據。比如數據表格的Schema信息,任務的血緣關系,用戶和腳本/任務的權限映射關系信息等等。

在數據倉庫的建設質量的評估中,一個必不可少的評價指標就是數據產出的及時性,特別是對于P0級別的流程,及時性指標的好壞一方面決定了下游應用方能否準時地獲取所需的業務指標,直接影響到業務的工作效率;另一方面也反映了相應指標的數據架構的合理程度。

數據及時性,顧名思義就是測試數據需要按時產出。及時性重點關注的三個要素是:定時調度時間、數據任務優先級以及數據產出deadline。其中任務的優先級決定了它獲取數據計算資源的多少,影響了任務執行時長。數據deadline則是數據最晚產出時間的統一標準,需要嚴格遵守。這三要素中,屬于業內統一認知且在質量保障階段需要重點關注的是:數據deadline,這也是我們優化數據流程產出的最終評判標準。

二、問題

上述部分已經闡述了數據及時性的重要性和評判標準,在通常情況下,為了提升數據及時性,需要投入人力對重點數據流程進行優化。

但針對數據倉庫業界來講,對于一個重要的數據結果,其上游可能存在幾十個層級,數百個不同的數據處理任務,從最初的數據到最終的結果,數據流轉過程極其復雜,傳統的通過人工逐個排查的方式去定位影響數據流程產出的問題節點,存在如下的三項缺點:

  1. 1)覆蓋的任務范圍有限;

  2. 2)效率低下,判斷標準不統一,判定準確率不高;

  3. 3)無法形成知識沉淀,依賴于個人能力;

如果數據流程未能充分優化,一方面會存在數據結果產出時間不穩定,影響數據的及時性;另一方面也會造成計算資源和存儲資源的浪費,并且也不易于后續維護。

三、方案

為了避免上述的問題,提升數據流程優化的效率和質量,我們采用了從血緣元數據出發的方案。在數倉任務的執行中,都會依賴于一個調度系統組件,目前業內通用的是以DAG為核心的工作流系統,數據流程中的每個任務都會設置定時執行或者配置上游依賴,這些設置的上游依賴就是我們方案中需要的調度血緣的元數據。

基于上述的血緣數據,我們的方案中需要實現以下兩個功能:

  • 基于任務之間的血緣關系生成所有上游任務的層級依賴數據

以調度系統本身的元數據作為出發點,調度系統自身的元數據就包含了一個任務的上游和下游依賴,基于這個數據,通過層級遞歸的掃描,就可以得到指定根節點任務的所有上游任務的層級依賴結果。

  • 設計合理的算法定位到有問題的任務

在上一步驟得到指定根節點任務的所有上游任務的層級依賴結果后,通過如下三種邏輯定位有問題的任務:

1)定位過度分層:JobA的下游只有JobA1在使用,且JobA是JobA1產出的關鍵路徑,也即JobA1的產出時間由JobA決定,那么此種情形下,我們可以把JobA的邏輯合并到JobA1,這樣一方面可以減少大數據任務的啟動消耗時間和獲取資源的時間;另一方面也可以減少依賴層級,方便后續維護。

2)定位重復依賴:在較復雜的數據流程中,會出現如下的情況:JobB2依賴JobB1和JobB,而JobB1也同時依賴JobB,簡化后的情況如下圖:

c710c1b571d618ea46cc6a48128c455a.jpeg

此時我們就可以檢查JobB2的邏輯,考慮任務內容中涉及到JobB的邏輯合并到JobB1,從而可以實現流程依賴和代碼邏輯的合并優化,降低維護成本,提升整體產出時間。

3)定位關鍵路徑:在完成上述兩個步驟后,整個流程從結構上已經基本沒問題,如果要進一步優化產出時間,需要針對特定任務進行調優,此時可以基于已有的上游層級依賴數據,計算得到每個層級的最晚產出的任務Id,這些任務Id串聯在一起就是影響整個流程產出的關鍵路徑,然后對關鍵路徑上的任務進行調優。

上述方案的整體設計圖如下:

065b50911ac61360518590709d0ef644.png

四、案例

在對酒店訂單明細寬表的優化過程中,基于前期的元數據建設,主要的工作內容分為以下三個步驟:

1)調度優化。調度優化的出發點是合理分配同步任務的優先級,將非核心任務的數據同步延后。從而降低0到2點,酒店訂單寬表核心流程執行期間的集群資源壓力。

2)模型優化。在這一步驟中,我主要是從兩個方向出發:

  • 減少跨層級重復依賴,避免相似邏輯代碼的出現,提升數據結果的復用能力。

  • 避免濫用分層,對冗余的分層、中間表進行合并,減少任務調度鏈路的層級,減少Job數量,節省Job的啟動時間。

3)任務優化。通過調整參數設置、SQL邏輯優化的方式對具體任務進行優化需要優化的任務。這一步驟的工作也就是傳統認知中的任務優化。

其中第二步和第三步就是基于本文中的方案快速定位到問題任務,整體優化后的效果如下:

  • 酒店訂單明細寬表的7日平均產出時間由2:51提前到1:36,提升45%

  • 全流程任務總數量從211個降到145個,減少32%

  • 可控上游依賴任務(非外BU任務)總數量由180降到117,減少35%

  • 關鍵鏈路調度層級由11層減少到6層,且其中兩層是外部BU任務

五、展望

基于元數據和血緣建設,本方案后續有如下三點可以深入優化:

  • 跨多層判斷重復依賴。由于上述實際案例中的酒店訂單流程相對不復雜,在僅進行一層的重復依賴判斷后,就已經達到了比較滿意的優化效果,所以為繼續進行多層重復依賴的判斷,但從血緣結構上是可以支持多層判斷的。

  • 定位多Job中重復/相似邏輯。多個任務依賴同一個上游任務,可以人工進行判斷是否存在可合并的重復/相似邏輯;這一點如果要提升效率,需要再結合表的血緣關系一起判斷。

  • 多數據流程的優化。在數倉的工作中,一個主題域產出的結果表,通常會存在多張,在進行整個主題域流程的優化或者重構中,也可以利用本案的思想,結構化進行優化工作,提升效率。

【推薦閱讀】

  • 貝葉斯結構模型在全量營銷效果評估的應用

  • 節約60%開發工時,離在線一體化數倉系統在攜程旅游的落地實踐

  • 提速10倍+,StarRocks 指標平臺在攜程火車票的實踐

  • 攜程火車票基于因果推斷的業務實踐

    7f5ad5980879959df41cb138981a1199.jpeg

    ?“攜程技術”公眾號

    ? 分享,交流,成長

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166267.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166267.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166267.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kafka詳細講解與安裝

Kafka是一種分布式流處理平臺,具有高吞吐量、可擴展性和容錯性。它最初由LinkedIn開發,現已成為Apache軟件基金會的頂級項目。Kafka廣泛應用于實時數據流處理、日志收集、消息隊列等場景。 以下是關于Kafka的簡要講解和安裝步驟: 一、Kafka…

ubuntu22.04 arrch64版操作系統編譯zlmediakit

腳本 系統沒有cmake,需要通過apt先進行下載,下面的腳本已經包含了 # 安裝依賴 gcc-c.x86_64 這個不加的話會有問題 sudo yum -y install gcc gcc-c libssl-dev libsdl-dev libavcodec-dev libavutil-dev ffmpeg git openssl-devel gcc-c.x86_64 ca…

csrf漏洞修復

漏洞說明:通過篡改請求頭中的Referer值依舊能夠訪問到接口。 通過http請求頭里面的Referer隨意訪問接口 通過下面兩個代碼類程序來實現你的程序不會被攻擊,里面有兩個實體,如果你感覺這個程序對你有用,聯系我,我私發…

CentOS 7 安裝 Weblogic 14 版本

安裝JDK程序 注意:安裝weblogic前,先安裝JDK!(要求jdk(1.7以上)): 一、創建用戶組weblogic及用戶weblogic groupadd weblogic useradd -g weblogic weblogic二、將下載好的jdk及weblogic上傳至/home/webl…

2分鐘快速實現非邏輯卷磁盤擴容

在虛擬機環境中,您可以擴展虛擬硬盤的大小而不影響數據。以下是擴展 /dev/sdb 磁盤從200G到500G并擴展 /dev/sdb1 分區到新大小的步驟: 關閉相關服務:確保沒有服務正在訪問 /app 分區。 關閉虛擬機:關閉您要更改磁盤大小的虛擬機…

「首屆廣州百家新銳企業」名單出爐!數說故事遴選入圍

11月20日,由中共廣州市委統戰部、市工商聯、市工信局、市國資委、市科技局聯合主辦的首屆廣州百家新銳企業融通創新交流會在廣州成功舉辦。 為推動廣州市中小民營企業的創新發展,踐行新發展理念,厚植廣州產業根基,現場發布首屆廣…

qt實現播放視屏的時候,加載外掛字幕(.srt文件解析)

之前用qt寫了一個在windows下播放視頻的軟件,具體介紹參見qt編寫的視頻播放器,windows下使用,精致小巧_GreenHandBruce的博客-CSDN博客 后來發現有些視頻沒有內嵌字幕,需要外掛字幕,這時候,我就想著把加載…

SELinux零知識學習二十六、SELinux策略語言之類型強制(11)

接前一篇文章:SELinux零知識學習二十五、SELinux策略語言之類型強制(10) 二、SELinux策略語言之類型強制 3. 訪問向量規則 AV規則就是按照對客體類別的訪問許可指定具體含義的規則,SELinux策略語言目前支持四類AV規則: allow:表示允許主體對客體執行允許的操作。nevera…

docker compose啟動多個服務,如何查看多個服務的日志

使用docker-compose的--scale啟動多個服務,如何查看多個服務的日志 docker-compose -f yml路徑 logs -f --tail 100第一個-f指定yml路徑,不然會報錯誤no configuration file provided: not found 第二個-f是ogs的參數,表示實時刷新&#xff…

YOLOv5結合華為諾亞VanillaNet Block模塊

???YOLOv5實戰寶典--星級指南:從入門到精通,您不可錯過的技巧 ??-- 聚焦于YOLO的 最新版本, 對頸部網絡改進、添加局部注意力、增加檢測頭部,實測漲點 ?? 深入淺出YOLOv5:我的專業筆記與技術總結 ??-- YOLOv5輕松上手, 適用技術小白,文章代碼齊全,僅需 …

力扣labuladong一刷day19天花式遍歷

力扣labuladong一刷day19天花式遍歷 文章目錄 力扣labuladong一刷day19天花式遍歷一、48. 旋轉圖像二、54. 螺旋矩陣三、59. 螺旋矩陣 II 一、48. 旋轉圖像 題目鏈接:https://leetcode.cn/problems/rotate-image/ 思路:把矩陣向右旋轉90度,要…

完美解決AttributeError: ‘NoneType‘ object has no attribute ‘append‘

文章目錄 一、原始代碼二、修改后的代碼--最后一行代碼append進行了修改總結 一、原始代碼 logits_list [] # 創建一個空列表來存儲每個logitslabels_list []for i, batch in enumerate(test_tasks):with torch.no_grad():logits, labels, loss, acc self.fast_adapt(batc…

斯坦福大學引入FlashFFTConv來優化機器學習中長序列的FFT卷積

斯坦福大學的FlashFFTConv優化了擴展序列的快速傅里葉變換(FFT)卷積。該方法引入Monarch分解,在FLOP和I/O成本之間取得平衡,提高模型質量和效率。并且優于PyTorch和FlashAttention-v2。它可以處理更長的序列,并在人工智能應用程序中打開新的可…

【Python百寶箱】Python中的音視頻處理: 探索多樣化的庫和工具

Python中的音視頻處理: 探索多樣化的庫和工具 前言 在數字化時代,音視頻處理不僅僅是娛樂產業的需求,還滲透到了教育、醫療、安防等多個領域。Python作為一門強大而靈活的編程語言,為開發人員提供了豐富的資源來處理和分析音視頻數據。本文…

SQL Server Profiler基礎使用

文章目錄 SQL Server Profiler基礎使用簡介如何打開直接打開Microsoft SQL Server Management Studio工具欄打開 配置跟蹤新建跟蹤跟蹤屬性配置常規配置事件選擇 啟動跟蹤跟蹤時執行腳本跟蹤記錄 暫停跟蹤停止跟蹤 SQL Server Profiler基礎使用 簡介 一個圖形界面工具&#x…

逆矩陣相關性質與例題

1.方陣的行列式:就是將方陣中的每一個元素轉換至行列式中。 1.性質一:轉置方陣的行列式等于轉置前的行列式。(對標性質:行列式與它的轉置行列式相等) 2.性質二:|ka||a|*k的n次方,n為方陣階數。 …

芯片設計—低功耗isolation cell

(一)低功耗isolation cell的目的 低功耗架構設計需要前后端拉通規劃,前端設計有PMU功耗管理單元,比如A模塊電壓常開,B模塊電壓可關斷,那么請思考,當B模塊關斷電壓后,B模塊輸出到A模…

PDF控件Spire.PDF for .NET【轉換】演示:將在 C#/VB.NET 中將 PDF 轉換為 PCL

本文我們將演示如何通過調用 Spire.PDF 提供的方法 PdfDocument.SaveToStream() 將 PDF 頁面轉換為 HTML、Word、SVG、XPS、PDF 并將它們保存到流中。并且從Spire.PDF版本4.3開始,它新支持轉換定義范圍的PDF頁面并將其保存到流中。 Spire.Doc 是一款專門對 Word 文…

精益制造中的周轉箱和工具柜優勢

制造業(Manufacturing industry)是指機械工業時代利用某種資源(物料、能源、設備、工具、資金、技術、信息和人力等),按照市場要求,通過制造過程,轉化為可供人們使用和利用的大型工具、工業品與…

大語言模型概述(二):基于亞馬遜云科技的研究分析與實踐

上期介紹了大語言模型的定義和發展歷史,本期將分析基于亞馬遜云科技的大語言模型相關研究方向,以及大語言模型的訓練和構建優化。 大語言模型研究方向分析 Amazon Titan 2023 年 4 月,亞馬遜云科技宣布推出 Amazon Titan 大語言模型。根據…