最近,在做某大型零售企業專案時,有客戶用到DolphinScheduler,並諮詢是否可以用Python指令碼編排工作流?該如何實現?相信有很多人會有這樣的疑問,那麼,本文將為我們簡單分享DolphinScheduler的優勢和實際使用。
為什麼企業資料開發要使用海豚排程?
當企業在做資料開發時,任務排程平臺會扮演自動執行預設任務的重要角色,是業務開展過程中不可或缺的一環。
隨著企業業務的快速發展,總是會需要定時執行各種型別的任務,這些任務之間還可能存在著各種依賴關係。而且在使用任務排程平臺往往會遇到一些問題,比如:
- 企業歷史累計的離線任務數量龐大,可能已達到1w+的規模,平臺的穩定效能否支援。
- 企業離線任務增量大,平臺是否擁有良好的擴充套件性和處理能力。
- 企業非專業開發人員對於配置排程的易用性要求嚴格,需要能支援SQL化操作及友好的配置介面,以達到'平民化'且易於使用的體驗。
這些場景在資料開發領域十分的常見,那麼怎麼才能很好的解決這些個問題呢?
可以說,DolphinScheduler就能很好地解決上述問題。本文的內容也比較簡單,下面我會先明海豚排程有什麼優勢,再分享使用Python來呼叫 API 介面的實操演示。
什麼是海豚排程?有什麼優勢?
Apache DolphinScheduler 是一個分散式易擴充套件的視覺化DAG工作流任務排程開源系統。 適用於企業級場景,提供了一個視覺化操作任務、工作流和全生命週期資料處理過程的解決方案。
Apache DolphinScheduler 在解決複雜的大資料任務依賴關係,併為應用程式提供資料和各種 OPS 編排中的關係。解決資料研發ETL依賴錯綜複雜,無法監控任務健康狀態的問題。DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式組裝任務,可以及時監控任務的執行狀態,支援重試、指定節點恢復失敗、暫停、恢復、終止任務等操作。
DolphinScheduler 的主要特性如下:
- 易於部署
提供四種部署方式,包括Standalone、Cluster、Docker和Kubernetes。 - 簡單易用
透過四種方式建立和管理工作流(Web UI、Python SDK、Yaml檔案和Open API),還有視覺化DAG和模組化操作。 - 高可靠性
多主多從的去中心化架構,原生支援橫向擴充套件。 - 效能強大
效能比其他編排平臺快N倍,每天可支援千萬級任務。 - 雲原生
DolphinScheduler支援編排多雲/資料中心工作流,支援自定義任務型別。 - 高擴充套件性
支援多租戶和線上資源管理。支援每天10萬個資料任務的穩定執行。
海豚排程使用Python編寫API介面有什麼好處?
經常使用ETL工具的同學應該都知道,呼叫API介面可以用裡面HTTP的外掛進行對接。然而在資料安全性要求越來越高的今天,API方通常都會在請求引數裡面新增自定義加密演算法加密後的引數,普通的HTTP外掛已經無法滿足介面安全性的需求。
面對複雜的加密演算法,使用一門程式語言來編寫無疑是不二之選,至於為什麼使用Python來編寫,有以下幾個理由:
- Python簡單易上手,生態豐富。
- 只需要一個py檔案就能在DolphinScheduler被直接呼叫,無需複雜的語言環境以及安裝部署。
- API介面通常都會有Python版的樣例程式碼,加密演算法甚至可以直接引用,更加便於開發者開發。
2.0.5 版本更新之後,Apache DolphinScheduler 新增了 Python API 功能,使用者可以透過 Python 指令碼編排工作流,最後實現工作流的建立、更新、排程等操作,這給 Python 使用者帶來了很多便利。
具體實操步驟
1、在建立工作流的時候拖出Python外掛,填寫節點名稱,以及寫入對應的Python指令碼(圖中資源欄的python檔案需要在第2點中上傳)。
2、資源中心的檔案管理可以上傳py檔案作為資源,供第1點建立工作流的時候使用(第1點中import的檔案就是檔案管理中的資源)。
如果企業有任務排程需求的場景,可以嘗試使用DolphinScheduler,豐富的任務型別可以滿足我們實際場景下複雜的邏輯。
以上的內容,我相信能夠解決大家日常工作遇到對於DolphinScheduler使用Python呼叫API介面的問題。如果您想要進一步瞭解DolphinScheduler,歡迎進入DolphinScheduler開源社群交流群。(V17743592110)
本文由 白鯨開源 提供釋出支援!