2022 年 4 月 22 日,Apache DolphinScheduler 正式宣布 3.0.0 alpha 版本发布!此次版本升级迎来了自发版以来的最大变化,众多全新功能和特性为用户带来新的体验和价值。
3.0.0-alpha 的关键字,总结起来是 “更快、更现代化、更强、更易维护”。
- 更快、更现代化:重构了 UI 界面,新 UI 不仅用户响应速度提高数十倍,开发者构建速度也提高数百倍,且页面布局、图标样式都更加现代化;
- 更强:带来了许多振奋人心的新功能,如数据质量评估、自定义时区、支持 AWS,并新增多个任务插件和多个告警插件;
- 更易维护:后端服务拆分更加符合容器化和微服务化的发展趋势,还能明确各个服务的职责,让维护更加简单。
1、全新 UI,前端代码更健壮,速度更快
3.0.0-alpha 最大的变化是引入了新的 UI,切换语言页面无需重新加载,并且新增了深色主题。新 UI 使用了 Vue3、TSX、Vite 相关技术栈。对比旧版 UI,新 UI 不仅更加现代化,操作也更加人性化,前端的鲁棒性也更强,使用户在编译时一旦发现代码中的问题,可以对接口参数进行校验,从而使前端代码更加健壮。
此外,新架构和新技术栈不仅能让用户在操作 Apache DolphinScheduler 时响应速度有数十倍的提升,同时开发者本地编译和启动 UI 的速度有了数百倍的提升,这将大大缩短开发者调试和打包代码所需的时间。
随着 Apache DolphinScheduler 用户群体越来越丰富,吸引了很多海外用户。但在海外业务场景下,用户在调研过程中发现有两个影响用户便捷体验 Apache DolphinScheduler 的点,一个是时区问题,另一个则是对海外云厂商,尤其是对 AWS 的支持不足。为此,我们决定对AWS 较为重要的组件进行支持,这也是此版本的最重大的变化之一。
- 针对 Amazon EMR,我们创建了一个新的任务类型,并提供了其 Run Job Flow 的功能,允许用户向 Amazon EMR 提交多个 steps 作业,并指定使用的资源数量。详情可见:
后续我们将用户的实际需求支持更多 AWS 任务,敬请期待。
全新的 UI 是 3.0.0-alpha 前端的最大变化,而后端最大的变化就是对服务进行拆分。考虑到容器和微服务的概念越来越火热,Apache DolphinScheduler 开发者做出了重大决定:对后端服务进行拆分。按照职能,我们将服务拆分成了以下几部分:
- bin: 快速启动脚本,主要是启动各个服务的脚本
- tools: 工具相关脚本,主要包含数据库创建,更新脚本
所有的服务都可以通过执行下面的命令进行启动或者停止。
此版本中,用户期待已久的数据质量校验应用功能上线,解决了从源头同步的数据条数准确性,单表或多表周均、月均波动超过阈值告警等数据质量问题。Apache DolphinScheduler 此前版本解决了将任务以特定顺序和时间运行的问题,但数据运行完之后对数据的质量一直没有较为通用的衡量标准,用户需要付出额外的开发成本。
现在,3.0.0-alpha 已经实现了数据质量原生支持,支持在工作流运行前进行数据质量校验过程,通过在数据质量功能模块中,由用户自定义数据质量的校验规则,实现了任务运行过程中对数据质量的严格控制和运行结果的监控。
任务组主要用于控制任务实例并发并明确组内优先级。用户在新建任务定义时,可配置当前任务对应的任务组,并配置任务在任务组内运行的优先级。当任务配置了任务组后,任务的执行除了要满足上游任务全部成功外,还需要满足当前任务组正在运行的任务小于资源池的大小。当大于或者等于资源池大小时,任务会进入等待状态等待下一次检查。当任务组中多个任务同时进到待运行队列中时,会先运行优先级高的任务。
在 3.0.0-alpha 之前版本,Apache DolphinScheduler 默认的时间是 UTC+8 时区,但随着用户群体扩大,海外用户和在海外开展跨时区业务的用户在使用中经常被时区所困扰。3.0.0-alpha 支持时区切换后,时区问题迎刃而解,满足了海外用户和出海业务伙伴的需求。例如,如当企业业务涉及的时区包含东八区和西五区,如果想要使用同一个 DolphinScheduler 集群,可以分别创建多个用户,每个用户使用自己当地的时区,对应 DolphinScheduler 对象显示的时间均会切换为对应时区的当地时间,更加符合当地开发者的使用习惯。
使用 Apache DolphinScheduler 3.0.0-alpha 此前版本,用户如果想要操作任务,需要先找到对应的工作流,并在工作流中定位到任务的位置之后才能编辑。然而,当工作流数量变多或单个工作流有较多的任务时,找到对应任务的过程将会变得非常痛苦,这不符合 Apache DolphinScheduler 所追求的 easy to use 理念。所以,我们在 3.0.0-alpha 中增加了任务定义页面,让用户可以通过任务名称快速定位到任务,并对任务进行操作,轻松实现批量任务变更。
除了上述功能外,3.0.0-alpha 版本还进行了很多细节功能增强,如重构任务插件、数据源插件模块,让扩展更简单;恢复了对 Spark SQL 的支持;E2E 测试已经完美兼容新 UI 等。
[#7896] 修复项目授权时生成一个重复授权项目的问题
[#8183] 修复消息显示找不到数据源插件“Spark”的问题
[#8756] 解决使用依赖组件的进程无法在测试和生产环境之间迁移
[#8760] 解决了资源文件删除条件的问题
[#8791] 修复编辑复制节点的表单时影响原始节点数据的问题
[#9243] 解决了某些类型的警报无法显示项目名称的问题
随着国内开源的迅猛崛起,Apache DolphinScheduler 社区迎来蓬勃发展,为了做更好用、易用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,让本土开源走向全球。
参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括:
贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。
社区汇总了以下适合新手的问题列表:
来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。
参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手微信(Leonard-ds) ,手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。
添加小助手微信时请说明想参与贡献。
来吧,开源社区非常期待您的参与。