首页 > 其他分享 >中电信翼康基于Apache Dolphinscheduler重构“星海·济世医疗数据中台”实践经验分享

中电信翼康基于Apache Dolphinscheduler重构“星海·济世医疗数据中台”实践经验分享

时间:2024-09-20 13:35:15浏览次数:8  
标签:翼康 DolphinScheduler Dolphinscheduler 调度 数据处理 任务 Apache 数据

文章作者:尚志忠

编辑整理:曾辉

行业背景

随着大数据、云计算、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 的未来必然能构建一个更加强大、灵活、易用和可靠的开源调度系统,以满足用户对数据处理和调度的复杂需求,推动数据处理技术的发展和进步,希望社区越来越好!

本文由 白鲸开源 提供发布支持!

标签:翼康,DolphinScheduler,Dolphinscheduler,调度,数据处理,任务,Apache,数据
From: https://www.cnblogs.com/DolphinScheduler/p/18422339

相关文章

  • 怎么办?用DolphinScheduler调度执行复杂的HiveSQL时无法正确识别符号
    在使用ApacheDolphinScheduler调度执行复杂的HiveSQL时,HQL包含多种海豚无法正确识别的符号,怎么办?本文提供了可行的思路和方法,供用户参考。一、目的在Hive中完成复杂JSON,既有对象还有数组而且数组中包含数组的解析后,原本以为没啥问题了,结果在DolphinScheduler中调度又出现了大问......
  • 怎么办?用DolphinScheduler调度执行复杂的HiveSQL时无法正确识别符号
    在使用ApacheDolphinScheduler调度执行复杂的HiveSQL时,HQL包含多种海豚无法正确识别的符号,怎么办?本文提供了可行的思路和方法,供用户参考。一、目的在Hive中完成复杂JSON,既有对象还有数组而且数组中包含数组的解析后,原本以为没啥问题了,结果在DolphinScheduler中调度又出现了大问......
  • 使用 Apache Spark 和 Deequ 分析大数据集
    在当今的数据驱动环境中,掌握使用ApacheSpark和Deequ对大型数据集进行分析对于任何处理数据分析、SEO优化或需要深入研究数字内容的类似领域的专业人士来说都至关重要。ApacheSpark 提供处理大量数据所需的计算能力,而Deequ提供质量保证层,为所谓的“数据单元测试”设定基准......
  • 开源多场景问答社区论坛Apache Answer本地部署并发布至公网使用
    ......
  • Java调用Apache commons-text求解字符串相似性
    前言    在之前的一篇漂亮国的全球的基地博客中,我们曾经对漂亮国的全球基地进行了一些梳理。博文中使用的数据来源,重点是参考以为博主分享的KML的数据,同时针对其国内的基地部署信息,我们从互联网百科的数据中搜寻到一些。其实拿到这两份数据的时候,是存在一些问题的,比如,KML的......
  • 深入解析 Apache Ranger
    一.概述1.什么是ApacheRanger?ApacheRanger是一个为大数据平台提供集中化安全管理的开源框架,专门用于确保Hadoop生态系统中的数据安全。Ranger通过提供细粒度的访问控制和监控,帮助组织实现对数据的全面安全管理,确保数据访问的透明性、可控性和合规性。2.背景与发......
  • DolphinScheduler基础讲解
    一、DolphinScheduler概述DolphinScheduler是一个分布式、轻量级的大数据任务调度平台,旨在帮助企业高效管理和调度复杂的工作流。它通过图形化界面,简化了任务定义、依赖设置以及调度执行的过程,极大降低了用户上手的门槛。作为Apache顶级项目,DolphinScheduler不仅支持......
  • Apache Spark MLlib分布式机器学习概论
    1.简介ApacheSparkMLlib是一个强大且高效的分布式机器学习库,专为大规模数据处理设计。随着大数据的普及,传统的机器学习算法在处理大规模数据集时效率较低,且难以扩展到分布式环境中。而MLlib作为Spark生态系统的一部分,利用Spark的分布式计算框架,能够轻松处理海量数据,并......
  • Tomcat、Nginx和Apache区别
    Tomcat、Nginx和Apache都是常用的Web服务器软件,它们之间的主要区别如下:一、功能特性1.Tomcat   主要用于运行JavaServlet和JavaServerPages(JSP)。它是一个轻量级的应用服务器,特别适合开发和部署JavaWeb应用程序。   对动态内容的处理能力较强,可以与各......
  • VPS Ubuntu22.04 安装WordPress 搭建网站 详细全流程(基于Apache+MySQL+PHP)(二)
    VPSUbuntu22.04安装WordPress搭建网站详细全流程(基于Apache+MySQL+PHP)(二)简介在网站处理和网络管理方面,WordPress是用户可以采取的最明智的选择。由于WordPress的巨大优势,它在网页设计师中广受欢迎。统计数据显示,访问量最大的1000个网站中约有35%是WordPress。......