中電信翼康基於Apache Dolphinscheduler重構“星海·濟世醫療數據中台”實踐經驗分享

来源:https://www.cnblogs.com/DolphinScheduler/p/18422339
-Advertisement-
Play Games

文章作者:尚志忠 編輯整理:曾輝 行業背景 隨著大數據、雲計算、5G、人工智慧等技術的快速發展,以及醫療信息化建設的不斷深入,數據中台作為打通醫療數據融合壁壘、實現數據互通與共用、構建高效數據應用的關鍵信息平臺,正逐漸成為推動醫療行業數字化轉型和創新發展的重要力量。 星海·濟世醫療數據中台介紹 中國 ...


文章作者:尚志忠

編輯整理:曾輝

行業背景

隨著大數據、雲計算、5G、人工智慧等技術的快速發展,以及醫療信息化建設的不斷深入,數據中台作為打通醫療數據融合壁壘、實現數據互通與共用、構建高效數據應用的關鍵信息平臺,正逐漸成為推動醫療行業數字化轉型和創新發展的重要力量。

星海·濟世醫療數據中台介紹

中國電信依托多年行業積累,定製打造醫療行業數據中台,以夯實衛生健康信息化新基建能力為目標,賦能行業客戶,深化數據集成治理與開發應用能力,推進健康醫療大數據應用發展,充分釋放數據價值。

星海·濟世醫療數據中台以“湖倉一體、流批一體”技術為核心,圍繞健康醫療數據在集成、存儲、治理、建模、分析、挖掘、服務、應用、流通等各個環節的需求,構建數據全生命周期管理的能力平臺。

關於數據處理中任務調度的思考

在醫療行業的數據處理過程中,存在著以下常見的問題:

  • 複雜的數據處理邏輯與流程未能實現統一的管理和調度,數據處理流程長,依賴關係錯綜複雜,不易於維護和使用,同時影響工作效率,間接提高了使用數據的成本。

  • 傳統的調度工具支持的組件有限,不能滿足在醫療行業中多場景多種異構數據源的數據處理和使用,且各種數據處理邏輯和關係不能夠可視化管理,只依賴腳本和定時任務不足以支撐目前的業務發展,不能可視化的反應任務之間的依賴關係,增加了業務處理的複雜性。

  • 多系統之間的定時任務缺乏統一的調度機制,這些任務可能由不同系統的不同團隊開發和維護,導致資源浪費和運維成本上升。缺乏統一的調度平臺,使得運維人員需要手動監控和管理這些任務。

基於任務調度和管理相關的以上問題,我們認為一個平臺級的產品必要要有一款優秀的調度工具,不僅要具備基於時序的主動觸發能力和基於事件的被動觸發能力,同時要能夠支持豐富的組件方便數據處理任務的開發,還需要具備運行時監控能力和分散式的架構下資源調度及均衡能力。

產品架構圖

經過不斷的學習和探索使用發現Apache DolphinScheduler 調度器在處理以上問題的過程中,有明顯的優勢。

技術特點及優勢

技術特點

Apache DolphinScheduler 是一個分散式易擴展的帶有強大可視化 DAG 界面的新一代工作流調度平臺 ,立項之初即確立了使命 —— “解決大數據任務之間錯綜複雜的依賴關係,使整個數據處理過程直觀可見”,至此配置工作流程無需代碼即可完成!

作為強大的DAG可視化界面的分散式大數據工作流調度平臺,Apache Dolphin Scheduler 解決了複雜的任務依賴關係和簡化了數據任務編排的工作。

它以開箱即用的、易於擴展的方式將眾多大數據生態組件連接到可處理 100,000 級別的數據任務調度系統中來。

其整體特征如下:

(1)雲原生設計:支持多雲、多數據中心的跨端調度,同時也支持K8s Docker部署與擴展,性能上可以線性增長,在用戶測試情況下最高已經支持10萬的並行任務控制;

(2)高可用、高穩定性:去中心化的多Master/Worker的架構,可以自動任務平衡,自動高可用,確保任務在任何節點死機的情況下可以具有完整性完成整體調度;

(3)用戶界面友好:可視化的DAG圖,包括子任務,條件調度、腳本管理、多租戶等方便功能,並具有讓運行任務實例與任務模板分開,讓你的平臺維護人員和數據科學家都有一個方便易用的開發和管理平臺;

(4)支持多種數據場景:支持流數據處理,批數據處理,暫停、回覆、多租戶等,對於spark,hive,MR,flink,clickhouse等等平臺都可以方便直接調用;

(5)支持多種調度機制:任務調度機制,支持時間觸發,包括定時觸發、迴圈觸發、間隔觸發;事件觸發機制,支持前置觸發和後置觸發;

(6)支持數據分析、可視化的監控功能、完善的告警模塊

任務整體情況監控

Worker監控示例

告警實例

技術優勢

首先,‌Apache Dolphinscheduler調度系統的本質是滿足用戶使用其進行做調度的需求,‌其最大的優勢在於方便、‌簡易、‌美觀,‌這使得即使是不懂代碼的人也能使用它進行調度操作。‌

這一點使得Dolphinscheduler調度系統在眾多調度系統中脫穎而出,‌成為用戶優選的原因之一。‌

其次,‌海豚調度作為開源項目,‌其成功得益於全球頂尖人才的參與和貢獻。‌開源模式打破了公司和組織的邊界,‌甚至國家和國家的邊界,‌使得全球最頂尖的架構師、‌開發者等能夠組織到一起,‌共同為項目貢獻力量。‌這種模式凝聚了全球最頂尖的人才的想法,‌使得項目能夠持續多年,‌並且幫助更多的人,‌而不僅僅是為了某一家公司的盈利或發展。‌

再次,我們將Apache DolphinScheduler和原本採用的系統調度器Azkaban進行了對比,發現Azkaban中的缺點不可忽視,如無可視化界面、任務調度多時易卡死、部署複雜、無法暫停任務、集群擴展差等。

對比如下:

DolphinScheduler與Azkaban對比

用海豚做什麼:

  1. 用海豚實現對指標計算程式的定時調度:編寫java程式實現指標計算功能,採用海豚可以靈活的傳遞主程式參數,滿足計算程式多維度數據處理,操作可視化。

  2. 對複雜關聯查詢的關聯腳本進行定時調度:海豚支持流式方式組裝任務,滿足了多表多條件複雜查詢串聯執行,可以及時監控任務的執行狀態,支持重試、指定節點恢復失敗、暫停、恢復、終止任務等操作。

綜上所述,‌選擇Apache Dolphinscheduler調度的原因不僅在於其用戶友好、‌易於使用的特點,‌還在於其作為一個開源項目所具有的全球頂尖人才的參與和貢獻,‌這些因素共同使得Dolphinscheduler調度成為一個值得選擇的調度系統。‌

生產實踐

二次開發

我們在使用Apache DolphinScheduler時,經過各種場景的試用和測試,升級了用戶體系,重構了項目級參數功能,優化了用戶體驗,修改了調度Java任務的異常問題。

1、項目級別變數

動態擴展項目中項目級別參數的使用,併在列表中對對應的參數的實際值進行展示等,同時可以根據項目參數的名稱對引用了該參數的工作流進行查詢跳轉。

定義不同的項目級參數,展示實際值

添加引用流程按鈕

根據圖二中選中的參數查詢展示工作流

2、Java類任務

該類任務,支持使用單文件和JAR包作為程式入口。

點擊項目管理 -> 項目名稱 -> 工作流定義,點擊“創建工作流”,進入DAG編輯頁面;

拖動工具欄的JAVA任務節點到畫板中。

添加java任務流程

Java類任務中相關參數配置

主程式參數:作為普通JAVA程式main方法入口參數;

虛擬機參數:配置啟動虛擬機參數;

腳本:若使用JAVA運行類型則需要編寫JAVA代碼,代碼中必須存在Public類,不用寫Package語句;

資源:可以是外部JAR包,也可以是其他資源文件,他們會被加入到類路徑或模塊路徑中。

3、個性化界面

按照用戶操作習慣,我們重新定製了操作相關的按鈕,以及按鈕較多時收起、展開;

在項目管理界面,可以動態選擇需要的項目包,在無需返回到項目管理首頁重新選擇項目。

新按鈕樣式

收起展開較多按鈕

項目選擇

項目實踐

使用Apache DolphinScheduler 之後,我們根據實際業務需要進行二次開發之後,很好的解決了一些需求,下列簡述其中幾個場景:

1、將原有Azkaban中的調度任務平行遷移到DolphinScheduler中

Azkaban中流程示例:

Azkaban流程定義

Azkaban流程中各個節點執行情況

平行遷移到Apache DolphinScheduler中示例:

DolphinScheduler中流程

2、對於數據源模塊,動態擴展了從第三方倒入數據源,增加了數據源的可用性

資產導入數據源

數據源詳情

解決了指標計算程式定時調度問題,使用海豚調度可以靈活傳遞計算程式需要的參數併在調度過程列印相應日誌方便跟蹤排查問題。

解決了多個複雜的關聯查詢串聯執行時中途被阻斷導致的整個全流程失敗問題,海豚調度可以在失敗的節點重新跑流程,不需要再將成功的節點再重跑一次導致伺服器資源過度占用的問題,解決了Flink批流作業被動觸發的問題。

在公司項目的生產過程中目前已實現日均1000+的任務被調度處理,包含了4條產品線的20多個業務系統,離線開發的任務多半已遷移在Apache DolphinScheduler進行配置,極大的提升了數據開發人員的研發效率,方便數據開發人員維護工作。

後期發展計劃

在日常的運維工作還存在一些問題,主要包括任務失敗的及時告警、多項目任務的巡檢及對任務完成情況的準確把握等問題。

針對上述問題,計劃實施一系列的自動化運維措施,需實現自動化推送功能,每天定時的將生產調度的報告發送到企業微信群中,包括所有任務的執行情況,成功、失敗的具體情況;

對失敗的任務,增強告警機制,確保任務出現問題是能夠及時通知運維團隊,並作出迅速的響應和處理。

未來願景

我們團隊對於 Apache DolphinScheduler 的未來願景主要體現在以下幾個方面:

  1. 雲原生支持增強

期望Apache DolphinScheduler 進一步增強對雲原生環境的支持,在生產環境可使用worker 自動擴縮容特性。

  1. 異構數據源的Join 組件擴展

異構數據源之間的Join組件能極大的提升數據開發的能力和效率,能解決複雜數據任務之前同步數據的一致性問題。

Apache DolphinScheduler 的未來必然能構建一個更加強大、靈活、易用和可靠的開源調度系統,以滿足用戶對數據處理和調度的複雜需求,推動數據處理技術的發展和進步,希望社區越來越好!

本文由 白鯨開源 提供發佈支持!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 出乎意料的現象 我們有一張測試表 t1,表中有一些數據,當 session1 開啟一個事務,並執行了 select for update 操作後仍未提交事務,在併發事務(如 session2)開啟事務並行執行一些操作會有不同的鎖現象,表現在: select for update 會出現鎖等待 del ...
  • Linux平臺安裝Oracle 19c的時候遇到了下麵錯誤“[INS-35180] Unable to check for available memory”,如圖所示: 具體的錯誤信息如下所示: Additional Information:Exception details - PRVG-190 ...
  • SQL Server的Descending Indexes降序索引 背景索引是關係型資料庫中優化查詢性能的重要手段之一。對於需要處理大量數據的場景,合理的索引策略能夠顯著減少查詢時間。 特別是在涉及多欄位排序的複雜查詢中,選擇合適的索引類型(如降序索引)顯得尤為重要。本文將探討如何在SQL Serv ...
  • 背景 最近碰到一個 case,一個 Redis 實例的記憶體突增,used_memory最大時達到了 78.9G,而該實例的maxmemory配置卻只有 16G,最終導致實例中的數據被大量驅逐。 以下是問題發生時INFO MEMORY的部分輸出內容。 # Memoryused_memory:84716 ...
  • 目錄使用C語言連接庫的安裝C APImysql_initmysql_real_connectmysql_closemysql_querymysql_set_character_setmysql_store_result 使用C語言連接 mysql操作是線程安全的(事務) 以API路線認識mysql ...
  • 目錄用戶用戶管理查詢所有用戶查看當前用戶查看當前連接數創建用戶刪除用戶修改密碼規則查看規則/策略規則說明臨時設置持久設置修改密碼許可權資料庫提供的 許可權列表查看許可權給用戶授權回收用戶許可權 用戶 用戶管理 mysql用戶管理位於資料庫mysql中的user表中 mysql> show tables; + ...
  • 摘要 在學習MySQL語法之前,我們需要先解決在Ubuntu或CentOs環境下的“軟體安裝”的問題。本文梳理了安裝前後的各個步驟及有關的註意事項,主要涵蓋了安裝前的準備工作、如何安裝mysql,以及安裝之後如何啟動、如何正式使用這幾個方面。建議讀者先瀏覽一遍,留心相關的註意事項,或許能令自己稍後的 ...
  • 目錄MySQL卸載環境查看是否已安裝MySQL卸載mysql服務查看是否卸載乾凈MySQL安裝查看linux版本選擇MySQL版本獲取mysql官方yum源rpm安裝mysql官方yum源安裝mysql服務查看是否安裝成功配置MySQL簡單登錄mysql命令免密登錄配置my.cnf 其他配置項設置開 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...