在當代數據驅動的商業環境中,企業面臨著如何高效處理即時資料流的挑戰。本文探討一種結合 Spark 結構化串流與 Databricks 平台的現代資料工程實踐,旨在構建穩健的串流處理管道。此架構的核心為 Delta Lake 的多層次設計,即「獎牌架構」。資料首先以原始格式持續注入青銅層,作為不可變的真實來源;接著透過排程的微批次作業,在白銀層进行清洗、去重與結構化;最終在黃金層聚合成高價值的商業洞察。這種結合持續攝取與排程轉換的混合模式,不僅平衡了資料即時性與運算成本,更確保數據品質與治理的嚴謹性,為下游分析應用奠定堅實基礎。
第十三章:構建串流管道:Spark與Scala的即時資料處理
編排玄貓的串流處理:Databricks Workflows應用
編排玄貓的串流處理
269
圖13.8 – Databricks工作流程中的白銀層和黃金層串流任務
回到工作流程主頁,創建另一個作業。這次,玄貓將為玄貓的StreamingSilver和StreamingGold物件創建兩個任務。每個任務都將設置為Spark Submit任務類型,並將使用自己的作業叢集。請參閱圖13.8中的範例。
- 與串流青銅管道類似,編輯**排程與觸發器(Schedule & Triggers)部分,但這次,選擇排程(Scheduled)**作為觸發器類型:
圖13.9 – Databricks白銀層到黃金層的觸發器
接下來,在排程(Schedule)中,選擇每15分鐘一次,從每小時的0分鐘開始。該作業將在每小時的0、15、30和45分鐘觸發。
最後,請確保將**觸發器狀態(Trigger Status)設置為活動(Active)**並保存觸發器。
玄貓的串流處理現在將持續從Kafka串流青銅數據,並每15分鐘將該數據從白銀層處理到黃金層!現在,讓玄貓總結本章以及玄貓所學到的一切。
構建串流管道:Spark與Scala應用程式
270
看圖說話:
此圖示提供了一個端到端串流管道的宏觀視角,展示了數據從原始來源到最終服務層的流動,以及Databricks Workflows如何編排整個過程。它突顯了持續攝取和排程轉換兩種不同的處理模式。
- 數據源:Azure Event Hubs (Kafka):
- 數據流的起點是
Azure Event Hubs,它作為Kafka服務,接收IoT設備產生的持續數據流。由於Kafka主題的數據保留時間有限(例如1小時),因此需要持續的數據攝取以避免數據丟失。
- 持續串流攝取作業 (Bronze):
Databricks Workflows中的持續串流攝取作業負責從Kafka源不間斷地讀取數據。這個作業使用Spark Structured Streaming,並配置為連續觸發器類型,確保它始終運行。- 它將讀取到的原始數據以追加(append)模式寫入
Delta Lake的青銅層。青銅層作為原始數據的不可變副本,是所有後續處理的基礎。
- 排程轉換作業 (Silver & Gold):
- 另一個在
Databricks Workflows中定義的排程轉換作業負責將數據從青銅層處理到白銀層,再從白銀層處理到黃金層。 - 這個作業被設置為排程觸發器類型,例如每15分鐘運行一次。這種微批次處理模式平衡了即時性需求和資源效率。
- 青銅層到白銀層:作業首先從青銅層讀取數據,進行JSON解析、扁平化、清洗和去重。處理後的數據以合併(merge)或覆蓋(overwrite)模式寫入
Delta Lake的白銀層。白銀層提供結構化、去重且可供臨時分析的數據。 - 白銀層到黃金層:接著,作業從白銀層讀取數據,執行聚合操作(例如,計算每日事件數)和最新狀態提取(例如,獲取最新設備狀態)。這些結果以覆蓋(overwrite)模式寫入
Delta Lake的黃金層。黃金層包含業務就緒、高度精煉的數據,專為報告和應用程式消費而設計。
這個編排架構確保了數據的持續流動、分階段的精煉和高效的更新機制,從而能夠可靠地支持即時分析和業務決策。
第十三章:構建串流管道:Spark與Scala的即時資料處理
第十三章:構建串流管道:Spark與Scala的即時資料處理
第十三章:構建串流管道:Spark與Scala的即時資料處理
第十三章:構建串流管道:Spark與Scala的即時資料處理
結論
縱觀現代企業對即時數據決策的高度依賴,本章所展示的串流架構不僅是一套技術實踐,更是一種策略性資產的構建藍圖。它巧妙地整合了持續串流(Bronze層)與微批次處理(Silver/Gold層),相較於單一的端到端即時處理模式,在數據治理、容錯性與成本效益間取得了更優越的平衡。其核心價值在於將原始數據的「持續捕獲」與商業邏輯的「分層精煉」徹底解耦。這種分離不僅降低了系統複雜度,更為數據品質的漸進式提升與未來多元應用的接入,預留了關鍵的彈性空間。然而,管理者也需意識到,其挑戰在於對工作流程調度的精密監控,以及在延遲性與運算資源之間的持續權衡。
展望未來,這種融合了串流處理、數據湖倉(Data Lakehouse)與自動化編排的模式,正迅速定義下一代數據平台的標準。它預示著數據工程將從單純的管道建設,演進為支持即時機器學習、動態商業智慧等高價值應用的敏捷數據服務中樞。
玄貓認為,對於任何致力於將數據轉化為核心競爭力的企業而言,掌握並實踐這種分層、可控的串流處理架構,已不再是選項,而是確保未來數據敏捷性與決策品質的策略基石。