首页 > 编程语言 >轻松编排工作流,浅谈DolphinScheduler如何使用Python调用API接口?

轻松编排工作流,浅谈DolphinScheduler如何使用Python调用API接口?

时间:2024-09-25 14:21:26浏览次数:9  
标签:浅谈 Python DolphinScheduler 接口 任务 API 使用

最近,在做某大型零售企业项目时,有客户用到DolphinScheduler,并咨询是否可以用Python脚本编排工作流?该如何实现?相信有很多人会有这样的疑问,那么,本文将为我们简单分享DolphinScheduler的优势和实际使用。

为什么企业数据开发要使用海豚调度?

当企业在做数据开发时,任务调度平台会扮演自动执行预设任务的重要角色,是业务开展过程中不可或缺的一环。

随着企业业务的快速发展,总是会需要定时执行各种类型的任务,这些任务之间还可能存在着各种依赖关系。而且在使用任务调度平台往往会遇到一些问题,比如:

  1. 企业历史累计的离线任务数量庞大,可能已达到1w+的规模,平台的稳定性能否支持。
  2. 企业离线任务增量大,平台是否拥有良好的扩展性和处理能力。
  3. 企业非专业开发人员对于配置调度的易用性要求严格,需要能支持SQL化操作及友好的配置界面,以达到'平民化'且易于使用的体验。

这些场景在数据开发领域十分的常见,那么怎么才能很好的解决这些个问题呢?

可以说,DolphinScheduler就能很好地解决上述问题。本文的内容也比较简单,下面我会先明海豚调度有什么优势,再分享使用Python来调用 API 接口的实操演示。

什么是海豚调度?有什么优势?

Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。 适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。

file

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版的样例代码,加密算法甚至可以直接引用,更加便于开发者开发。

file

2.0.5 版本更新之后,Apache DolphinScheduler 新增了 Python API 功能,用户可以通过 Python 脚本编排工作流,最后实现工作流的创建、更新、调度等操作,这给 Python 用户带来了很多便利。

具体实操步骤

1、在创建工作流的时候拖出Python插件,填写节点名称,以及写入对应的Python脚本(图中资源栏的python文件需要在第2点中上传)。

file

file

2、资源中心的文件管理可以上传py文件作为资源,供第1点创建工作流的时候使用(第1点中import的文件就是文件管理中的资源)。

file

如果企业有任务调度需求的场景,可以尝试使用DolphinScheduler,丰富的任务类型可以满足我们实际场景下复杂的逻辑。

以上的内容,我相信能够解决大家日常工作遇到对于DolphinScheduler使用Python调用API接口的问题。如果您想要进一步了解DolphinScheduler,欢迎进入DolphinScheduler开源社区交流群。(V17743592110)

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

标签:浅谈,Python,DolphinScheduler,接口,任务,API,使用
From: https://blog.51cto.com/u_15474939/12109219

相关文章

  • 基于python+flask框架的临海市社区居民户籍管理系统的设计与实现(开题+程序+论文) 计算
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加速,临海市作为一座快速发展的城市,其社区管理面临着前所未有的挑战。社区居民数量的激增、户籍信息的复杂化以及人口流动......
  • 基于python+flask框架的零食销售系统的设计与实现(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网的飞速发展,电子商务已成为现代商业活动的重要组成部分,深刻改变了人们的消费习惯。零食作为日常生活中不可或缺的一部分,其市场需......
  • 基于python+flask框架的流浪动物救助系统的设计与实现(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加快和生活方式的改变,流浪动物问题日益凸显,成为社会关注的焦点之一。城市中流浪猫狗数量的激增,不仅给城市环境带来压力,也......
  • python调用另一个.py文件中的类和函数或直接运行另一个.py文件
    同一文件夹下的调用1.调用函数A.py文件如下:defadd(x,y):print('和为:%d'%(x+y))在B.py文件中调用A.py的add函数如下:importAA.add(1,2)或fromAimportaddadd(1,2)2.调用类A.py文件如下:classA:def__init__(self,xx,yy):self.x=xxself.y=y......
  • python 2024-9
    第一课问题a,b求最大值?分类讨论ifa>b:print("最大值=",a)else:print("最大值=",b)a,b,c求最大值?条件语句if...elif...else列表最大值?与参照物循环比较a=[1.7,1.65,1.8,1.55,1.6]#身高列表mx=0#初始化最大值forxin......
  • python-成绩转换/药房管理/求正整数2~n之间的完全数
    一:成绩转换题目描述输入一个百分制的成绩 t ,将其转换成对应的等级,具体转换规则如下:90∼10090∼100 为A;80∼8980∼89为B;70∼7970∼79为C;60∼6960∼69为D;0∼590∼59为E。输入格式输入数据有多组,每组占一行,由一个整数组成。输出格式对于每组输入数据,输出一行。......
  • 基于python+flask框架的老人养老社区服务平台(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全球人口老龄化趋势的加剧,老年人口比例不断上升,如何为老年人提供全面、便捷、高效的养老服务成为社会各界关注的焦点。传统家庭养老模......
  • 基于python+flask框架的乐佳购物商城的设计与实现(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为现代商业活动不可或缺的一部分,极大地改变了人们的消费习惯。乐佳购物商城的设计与实现正是在这一......
  • 基于python+flask框架的乐乐商城商品进销存管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着电子商务的蓬勃发展,线上商城已成为消费者购物的重要渠道之一。乐乐商城作为新兴的电商平台,面临着日益增长的商品种类与交易量,如何高效......
  • 在Ubuntu 16.04上安装Anaconda Python发行版的方法
    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。简介Anaconda是一个开源的包管理器、环境管理器和Python和R编程语言的发行版。它通常用于大规模数据处理、科学计算和预测性分析,为数据科学家、开发人员、业务分析师......