搭建機器學習模型的數據管道架構方案

本篇文章Designing Data Pipeline Architectures for Machine Learning Models適合對數據管道架構感興趣的讀者,亮點在于詳細解析了傳統數據倉庫、云原生數據湖和現代湖倉這三種架構,幫助理解如何將原始數據轉化為可操作的預測。文中還強調了不同架構的優缺點,提供了清晰的比較。


文章目錄

  • 1 簡介
  • 2 傳統數據倉庫
    • 2.1 案例研究 — 股票價格預測
    • 2.2 添加暫存區
  • 3 云原生數據湖
    • 3.1 標準ELT方法
    • 3.2 推送ELT方法
    • 3.3 ETLT(提取、輕量轉換、加載和轉換)方法
    • 3.4 數據攝取模式
    • 3.5 Lambda架構
    • 3.6 Kappa架構
      • 3.6.1 案例研究 — 股票價格預測
  • 4 現代湖倉一體架構
    • 4.1 案例研究 — 股票價格預測
  • 5 結論


1 簡介

數據管道架構是指導將原始數據轉化為可操作預測的戰略藍圖。

但設計架構似乎很復雜,因為它涉及眾多組件,并且每個組件的具體選擇都取決于數據的特性和業務需求。

在本文中,我將結構化這些組件,并探討三種常見模式:

  • 傳統數據倉庫
  • 云原生數據湖
  • 現代湖倉一體架構

并以股票價格預測作為實際用例。

數據管道架構定義了數據從攝取到可用于分析和機器學習狀態的結構、組件和流向。

下圖展示了數據管道架構中的關鍵組件和主要選項:

關鍵組件包括:

  • 數據源(Data Source):數據的來源。
  • 攝取(Ingestion):收集數據并將其引入系統的方法。
  • 存儲(Storage):數據存放的位置。
  • 處理(Processing):數據的轉換和清洗。
  • 服務(Serving):使處理后的數據可供最終用戶和應用程序訪問。
  • 治理(Governance):確保數據質量、安全性、隱私和合規性。

處理部分涉及加載策略,如全量加載、增量加載和增量更新,以及數據轉換,如清洗、插補和預處理。

每個組件的選擇都由數據特性驅動,包括其多樣性(variety)、數據量(volume)和數據速度(velocity),以及具體的業務需求。

  • 多樣性(Variety):數據的多樣性(結構化、半結構化、非結構化)影響存儲選擇。
  • 數據量(Volume):數據的龐大數量決定了對可擴展、分布式技術(如Spark、Hadoop)和經濟高效的存儲解決方案(如云對象存儲)的需求。
  • 數據速度(Velocity):數據生成和處理的速度決定了它是應該采用用于高速數據的實時流式架構,還是用于低速數據的批處理架構。
  • 業務需求是最終的指導力量。

由于某些選項之間存在強關聯性,我將在下一節中介紹三種常見組合,并以股票價格預測為例。

2 傳統數據倉庫

第一種組合是使用 ETL(提取、轉換、加載) 方法的傳統數據倉庫架構

下圖展示了其標準架構,其中原始數據被提取并轉換為結構化數據,然后加載以適應數據倉庫中預定義的模式:

每個組件中選擇的典型選項是:

  • 數據源:結構化、批處理
  • 攝取:批處理
  • 存儲:數據倉庫
  • 處理:ETL(提取、轉換、加載)
  • 服務:BI、低頻報告和分析

ETL過程在加載之前嚴格清洗和轉換數據,這確保了:

  • 對穩定、定義明確的數據源的訪問,
  • 高水平的準確性和一致性,以及
  • 非常快的查詢性能。

缺點包括:

  • 數據類型:不適用于圖像、文本等非結構化或半結構化數據。
  • 成本:維護數據倉庫可能很昂貴。
  • 延遲:批處理過程意味著數據是按計劃更新的,例如每日或每周。不適用于實時推理。

2.1 案例研究 — 股票價格預測

該架構最適合基于季度或年度財務報告以及歷史日終股票價格的長期預測

在圖中,該架構首先用數十年的歷史數據填充數據倉庫。

然后,每日股票交易量通過計劃的批處理過程(例如,每日或每周)增量加載。

當財務記錄調整時,批處理過程還會執行增量更新以更新數據倉庫。

然后,結構化數據用于訓練模型,該模型為低頻決策提供預測服務。

這種結構不適合實時股票預測,因為計劃的批處理過程會在數據和預測之間產生延遲。

2.2 添加暫存區

一種高級方法是利用暫存區在通過SQL查詢轉換之前存儲提取的數據:

主要區別在于轉換過程的隔離和效率

如果沒有暫存區,轉換將直接在源系統或目標數據倉庫中完成。這可能效率低下且存在風險:

  • 源系統過載:復雜轉換會減慢系統速度,影響核心業務操作。
  • 數據倉庫瓶頸:減慢查詢和報告速度,消耗數據倉庫的計算資源。

暫存區可以通過將原始數據加載到臨時存儲空間(如專用的S3存儲桶)來將繁重的轉換過程從數據倉庫或源系統卸載

然后,一個單獨的處理引擎(如Apache Spark)運行轉換,而不會影響源系統或數據倉庫。

盡管這增加了操作復雜性,但其他優點包括:

  • 錯誤處理:即使轉換失敗,數據倉庫中的原始數據也不會受到影響。只需在暫存區中重新運行轉換即可。
  • 數據質量控制:通過在暫存區中向轉換添加多步驟(如清洗、特征工程和預處理),確保只有高質量的數據加載到數據倉庫中。

3 云原生數據湖

第二種組合是云原生數據湖架構。

這種架構靈活且經濟高效,非常適合處理大量多樣化數據,包括非結構化數據。

主要有三種方法:

  • 標準ELT(提取、加載、轉換)
  • 推送ELT
  • EtLT(提取、輕量轉換、加載和轉換)

3.1 標準ELT方法

標準方法利用ELT處理:

首先,原始數據被提取到數據湖中,然后加載并轉換以存儲在數據倉庫中。

3.2 推送ELT方法

數據攝取到數據湖的另一種方法是推送(Push)方法,其中外部源直接將數據提取到數據湖:

這種方法可能導致對數據提取的控制有限,在數據丟失或損壞的情況下,需要與負責數據源的團隊進行協調。

3.3 ETLT(提取、輕量轉換、加載和轉換)方法

從源中提取的數據可能包含不應被未經授權的個人訪問的機密數據。

EtLT方法包括一個額外的“輕量”轉換步驟,其中敏感信息在加載數據到數據湖之前被屏蔽或加密:

在每種方法中,數據湖和數據倉庫的組合適合對存儲在數據湖中的原始數據應用不同的分析技術。

每個組件中選擇的典型選項是:

  • 數據源:數據結構通用流式
  • 攝取:適用于流式,但批處理也可以是一種選擇。
  • 存儲:數據湖 + 數據倉庫
  • 處理:ELT 或 EtLT

盡管每種方法都增加了管理多個工具的復雜性,但其他優點包括:

  • 可擴展性:攝取和轉換過程的分離增強了可擴展性和靈活性。
  • 可管理性:易于存儲、跟蹤和審查SQL查詢(轉換)。

3.4 數據攝取模式

所有方法都可以用于批處理和流式管道。

然而,由于ELT和EtLT先加載后轉換的特性,它們非常適合流式數據的實時需求

但像LambdaKappa這樣的混合架構旨在無縫結合批處理和流式攝取,以提供全面的數據處理。

讓我們來看看。

3.5 Lambda架構

Lambda架構采用雙路徑方法,其中批處理層遵循ETL過程來轉換大型歷史數據集,而速度層處理適用于ELT或EtLT方法的實時數據。

該架構可以根據業務需求提供實時和批處理訪問預測。

在前面架構中相同的股票價格預測案例中,Lambda架構可以擴展為通過速度層提供實時預測,而批處理層則提供長期預測。

來自兩層的預測被組合并提供給用戶,從而提供穩定、長期的展望和波動、實時的預測。

3.6 Kappa架構

Kappa架構通過使用單一、統一的流處理管道來處理實時和歷史數據,從而簡化了Lambda架構。

Kappa架構利用ELT模型,其中來自不同源的所有數據都作為流加載,然后由單一處理引擎進行轉換。

3.6.1 案例研究 — 股票價格預測

在股票價格預測的相同用例中,當公司優先考慮降低開發復雜性和運營開銷,同時提供實時預測和長期預測時,Kappa是最佳選擇。

4 現代湖倉一體架構

最后一種組合是湖倉一體架構

湖倉一體架構旨在結合數據倉庫和數據湖的最佳特性,創建一個統一的平臺,可以處理結構化和非結構化數據:

組件選項包括:

  • 數據源:通用(適用于結構和數據流)
  • 攝取:批處理、流式
  • 存儲:湖倉一體
  • 處理:ELT(提取、加載、轉換)

在湖倉一體架構中,**青銅層(Bronze Layer)**作為數據湖,用于攝取來自外部源的原始數據。

然后,**白銀層(Silver Layer)**通過清洗和結構化原始數據來處理數據轉換。

**黃金層(Gold Layer)**為特定項目構建精選表,執行特征工程以生成未來預測所需的特征。

這種組合在一個簡化系統中提供了數據湖的靈活性以及數據倉庫的可靠性和性能。

主要優點包括:

  • 統一存儲:湖倉一體架構可以在一個平臺上存儲所有類型的數據——結構化、非結構化和半結構化。
  • 成本效益:利用S3等低成本、基于云的對象存儲。
  • 開放性:通過使用Apache Spark、Delta Lake等開源技術和Parquet等開放文件格式,避免供應商鎖定。

這種架構涉及實現和數據治理的復雜性。

4.1 案例研究 — 股票價格預測

該架構在一個平臺上處理歷史數據和實時流。

帶有青銅層、白銀層和黃金層的獎章結構逐步將原始數據細化為高質量特征。

假設我們有來自三個數據源的原始數據:

  • API — 非結構化股票價格
  • RSS源 — 非結構化新聞
  • 內部數據庫 — 結構化財務記錄

青銅層:

青銅層作為數據湖,用于存儲來自多個數據源的原始數據。

白銀層:

然后,白銀層清洗和結構化原始數據:

  • 運行查詢以將所有股票價格與相應的財務記錄連接起來,
  • 清洗新聞源中雜亂的文本數據,以及
  • 提取給定日期范圍的新聞文章。

黃金層:

最后,黃金層運行特征工程,例如計算30天移動平均線、波動性指標和從清洗后的新聞數據中獲取的市場情緒得分。

這個最終的、高度精煉的數據集用于訓練模型。

5 結論

數據管道架構在將原始數據轉化為有意義的預測方面發揮著關鍵作用。

在本文中,我們了解到三種常見架構——傳統數據倉庫、云原生數據湖和現代湖倉一體架構——各有優缺點。

最佳架構不是一刀切的解決方案,而是根據對數據特性和業務目標的仔細評估而做出的戰略選擇。

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

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

相關文章

GitHub 熱榜項目 - 日榜(2025-09-06)

GitHub 熱榜項目 - 日榜(2025-09-06) 生成于:2025-09-06 統計摘要 共發現熱門項目:15 個 榜單類型:日榜 本期熱點趨勢總結 本期GitHub熱榜顯示AI自動化與安全運維為核心趨勢。Bytebot、EvolutionAPI等AI代理項目凸顯自然語言交互和容器化…

Homebrew執行brew install出現錯誤(homebrew-bottles)

問題描述 在使用homebrew安裝軟件時,出現如下報錯: Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/bottles-portable-ruby/portable ruby-3.4.5.arm64_big_sur.bottle.tar.gz curl: (22) The requested URL returned error: 404 …

23種設計模式——工廠方法模式(Factory Method Pattern)詳解

?作者簡介:大家好,我是 Meteors., 向往著更加簡潔高效的代碼寫法與編程方式,持續分享Java技術內容。 🍎個人主頁:Meteors.的博客 💞當前專欄:設計模式 ?特色專欄:知識分享 &#x…

NPU邊緣推理識物系統

目錄 NPU邊緣推理識物系統 一、項目簡介 二、硬件介紹 三、軟件設計 1、底層NPU推理代碼 2、應用層QT顯示代碼 四、項目成果展示 NPU邊緣推理識物系統 一、項目簡介 物品分類是計算機視覺的重要技術,本項目的核心是:使用NPU(神經網絡…

C# WinForm分頁控件實現與使用詳解

C# WinForm分頁控件實現與使用詳解概述在WinForms應用程序開發中,數據分頁是常見的需求。本文將介紹如何實現一個功能完整的分頁控件,并在窗體中如何使用該控件進行數據分頁展示。分頁控件實現核心屬性與字段public partial class PageControl : UserCon…

高級 ACL 有多強?一個規則搞定 “IP + 端口 + 協議” 三重過濾

一、實驗拓撲及描述 二、實驗需求 1、完成拓撲中各設備的基礎配置,使得全網互通; 2、在上一個需求的基礎上,在路由器上部署高級ACL,使得Client1無法訪問Server的HTTP服務,但是PC1依然能夠訪問服務器及其他節點&#xf…

支持多材質密度設置的金屬重量計算使用指南

傳統手工計算各種型材(如鋼管、角鋼、鋼板等)的重量繁瑣且容易出錯。 它的體積小巧,不足100KB,運行不占內存,綠色免安裝,雙擊即開,使用便捷。 可計算鋼管、鋼板、型鋼、角鋼等常見型材的重量&a…

在Spring Boot中使用H2數據庫

好處 程序啟動時自動創建數據庫數據表。 使用步驟 引入依賴&#xff1a; <dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency><dependency><groupId&…

Day21_【機器學習—決策樹(2)—ID3樹 、C4.5樹、CART樹】

一、ID3 決策樹1. 核心思想使用信息增益&#xff08;Information Gain&#xff09;作為特征選擇的標準&#xff0c;遞歸地構建決策樹。2. 特征選擇標準信息增益&#xff08;IG&#xff09;&#xff1a;選擇使信息增益最大的特征進行劃分。3. 優點算法簡單&#xff0c;易于理解。…

2025計算機視覺新技術

CLIP / BLIP-3 類「視覺-語言大模型」 ? 是什么&#xff1a;讓網絡自己學會“看圖說話”&#xff0c;zero-shot 就能分類、檢測、檢索。 ? 能干什么&#xff1a;不寫訓練代碼&#xff0c;直接一句中文 prompt 就把商品圖分成 500 類。 ? 落地難度&#xff1a;★☆☆&#xf…

[光學原理與應用-431]:非線性光學 - 能生成或改變激光波長的物質或元件有哪些?

要生成或改變激光波長&#xff0c;可依賴增益介質、非線性光學元件、調諧元件及特殊激光器設計&#xff0c;以下是一些關鍵物質和元件及其作用機制&#xff1a;一、增益介質&#xff1a;波長的“決定者”增益介質是激光器的核心&#xff0c;其原子或分子的能級結構直接決定輸出…

接口權限驗證有哪些方式

接口權限驗證是保障 API 安全的核心機制&#xff0c;常見的方式有以下幾類&#xff0c;適用于不同場景和安全需求&#xff1a; 1. 基于令牌&#xff08;token&#xff09;的驗證 &#xff08;1&#xff09;JWT&#xff08;JSON Web Token&#xff09; 原理&#xff1a; 服務器驗…

Go開發的自行托管代理加速服務:支持Docker與GitHub加速

HubProxy&#xff1a;一站式解決Docker與GitHub訪問難題的輕量級代理服務作為開發者&#xff0c;我們經常遇到這些問題&#xff1a;Docker鏡像拉取速度慢得讓人抓狂&#xff0c;GitHub Release文件下載到一半斷開&#xff0c;或者某些境外容器倉庫完全無法訪問。最近發現的hubp…

用Python打造逼真的照片桌面:從拖拽到交互的完整實現

在這個數字化時代&#xff0c;我們經常需要處理大量的照片和圖片文件。今天我將帶你一步步實現一個功能豐富的照片桌面程序&#xff0c;讓你可以像在真實桌面上擺放照片一樣操作數字圖片。這個程序使用wxPython構建&#xff0c;支持拖拽、調整大小、刪除等交互功能。C:\pythonc…

《sklearn機器學習——模型的持久性》joblib 和 pickle 進行模型保存和加載

模型持久性在 Scikit-learn 中的應用詳解 模型持久性的基本概念 在機器學習領域&#xff0c;模型持久性是指將訓練好的模型保存到磁盤或數據庫中&#xff0c;以便在后續的預測任務中能夠直接使用&#xff0c;而無需重新訓練模型。這一過程不僅提高了模型的可重用性&#xff0c;…

前端-組件化開發

目錄 一.組件化 二.根組件 三.App.vue文件&#xff08;單文件組件&#xff09;的三個組成部分 四.普通組件的注冊和使用&#xff1a; 1.普通組件的創建 2.局部注冊 3.全局注冊 &#x1f9e0; 補充小技巧&#xff1a; &#x1f4a1; 關于組件名&#xff08;第一個參數&…

UNIX/macOS路由表查詢原理與實現

&#x1f310; UNIX/macOS路由表查詢原理與實現&#x1f4cc; 功能全景圖 #mermaid-svg-mz6rxrQ73xinNsqc {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-mz6rxrQ73xinNsqc .error-icon{fill:#552222;}#mermaid-svg…

Python爬蟲實戰:研究Style sheets模塊,構建電商平臺筆記本電腦銷售數據采集和分析系統

1. 引言 1.1 研究背景 在數字經濟時代,互聯網蘊含的海量數據已成為企業決策與學術研究的核心資源。網絡爬蟲技術通過自動化請求、解析網頁,能夠高效提取公開數據,為市場分析、競品研究等場景提供基礎支撐。Python 憑借其豐富的生態庫(如 Requests、BeautifulSoup、Pandas…

lesson55:CSS導航組件全攻略:從基礎導航條到動態三級菜單與伸縮菜單實現

目錄 一、CSS導航條&#xff1a;構建基礎導航系統 1.1 語義化HTML結構 1.2 現代Flexbox布局實現 1.3 核心技術解析 二、三級菜單&#xff1a;構建多層級導航體系 2.1 嵌套HTML結構 2.2 多級菜單CSS實現 2.3 關鍵技術解析 三、伸縮菜單&#xff1a;實現動態交互導航 3…

Linux基礎知識(二)

文件操作1. 怎么理解 I/O 重定向&#xff1f; 2. /dev/null 是什么&#xff0c;有什么用途&#xff1f; 3. 解釋下列命令的結果&#xff1a;&> /dev/null 、2>> file 4. 怎么理解管道&#xff1f;管道和重定向有什么區別&#xff1f; 5. 在什么情況下需要使用 tee…