簡體   English   中英

復雜數據管道遷移計划問題

[英]Complex Data Pipeline Migration Plan Question

我的計划:

  1. 將所有數據處理移至Spark(最好是PySpark),而最終輸出(面向消費者)的數據僅移至Redshift。 星火似乎連接到所有不同的來源以及(DB迪納摩,S3,紅移)。 根據客戶需求輸出到Redshift / S3等。 這避免了具有多個紅移集群,碎/過度使用內部不支持的ETL工具,跨集群,視圖和表等相同的數據(它是當前的設置)的副本。
  2. 使用Luigi構建Web UI,以每日監控管道並可視化依賴關系樹,並計划ETL。 電子郵件通知也應該是失敗的一種選擇。 一種替代方法是AWS數據管道,但是Luigi似乎對於涉及許多依賴項的情況具有更好的UI(某些樹的深度為5級,但也許可以通過使用更好的Spark代碼來避免這種情況)。

問題:

  1. Luigi是否與Spark集成(我以前只使用過PySpark,而沒有使用Luigi,所以這對我來說是一個學習曲線)。 該計划是計划“應用程序”,我相信Spark實際上也具有ETL,所以不確定Luigi如何在這里集成嗎?
  2. 如何解釋某些管道可能是“實時”的事實-例如,我是否需要每小時每小時啟動一次Spark / EMR作業?

我也樂於接受這樣做的想法/建議/更好的方法!

要直接回答您的問題,

1)是的,與其他任何庫一樣,Luigi在PySpark上的表現也不錯。 我們當然可以毫無問題地運行它-唯一的警告是,您必須對import稍加注意,並將它們包含在Luigi類的函數中,因為在后台,它正在旋轉新的Python實例。

2)有多種方法可以使Luigi吞入數據流,但這很難完成。 實際上,您將回到運行一個小時的cron周期來僅調用管道和流程以及新數據的過程。 這種情況反映了Spotify在Luigi上的用例,在該用例中,他們每天執行工作來計算頂級藝術家等。

正如@RonD所建議的那樣,如果我現在正在建立新的管道,我將跳過Luigi並直接進入AirFlow。 如果沒有其他問題,請查看發布歷史記錄。 很長一段時間以來,Luigi並沒有做過很多工作(因為它適用於主要開發人員)。 而Apache正在積極培育AirFlow。

代替Luigi,使用Apache Airflow進行工作流程編排(代碼用Python編寫)。 它內置了許多運算符和掛鈎,您可以在其中調用DAG(工作流)。 例如,創建任務以調用操作員來啟動EMR集群,另一個任務是運行位於集群s3中的PySpark腳本,另一個任務是監視運行狀態。 您也可以使用任務來設置依賴項等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM