为了满足丰富的Python应用场景,Dataphin支持创建可以使用Python语法的PYTHON计算任务。本文为您介绍如何基于Dataphin新建PYTHON计算任务。
使用限制
Python 3.7无法向下兼容Python 2.7,无法直接升级历史的Python 2任务。
2.9.3版本后,Dataphin默认支持研发Python 3.7计算任务。系统仅支持草稿状态的Python任务修改版本。
背景信息
Python 3.7能满足更多样化的大数据处理的诉求,例如list.clear()
。Python 2.7和Python 3.7的更多信息,请参见Python。
任务执行说明
在Dataphin中完成Python任务的编辑后,运行时,将会由Dataphin调度集群进行执行。Dataphin调度集群执行Python任务时,将会克隆Dataphin内置的模板镜像用于执行Python任务,模板镜像内包含了Python的常用资源包。您可以使用已经内置资源包,进行Pyhton任务的开发。更多信息,请参见附录:Python预置资源包。
内置的资源包不满足需求时,您可以通过管理中心的Python三方包安装所需的资源包。已经安装的资源包可以通过引用的方式进行使用,运行时,系统会自动将引用的资源包置于运行环境,用于任务的执行。由于 Dataphin每次运行时,都会通过克隆Dataphin内置模板镜像的方式运行,如果您通过
pip install
命令方式使用资源包,任务每次运行时,都将重新运行一次pip install
命令。建议通过Python三方包进行使用,使用说明,请参见使用三方库进行Python计算任务开发案例。
操作步骤
在Dataphin首页,单击顶部菜单栏研发。默认进入数据开发页面。
按照以下操作指引,进入新建PYTHON任务对话框。
选择项目(Dev-Prod模式需要选择环境)->单击计算任务->单击新建图标->单击PYTHON。
在新建PYTHON任务对话框,配置参数。
参数
描述
任务名称
填写代码任务的名称。最长允许256个字符,不支持特殊字符:
|\/:?<>*"
。调度类型
选择任务的调度类型。调度类型包括:
周期任务:自动参与系统的周期性调度。
手动任务:需要手动触发任务的运行。
选择目录
选择代码任务的目录。
使用模板
引用代码模板以实现高效研发,模板任务代码为只读不可编辑,您只需配置模板参数即可完成代码研发。
Python三方包
若需要使用Python三方包,请选择需要引入的Python三方包。更多信息,请参见安装及管理Python三方包。
描述
填写任务的简单描述,1000个字符以内。
单击确定。
在Python任务代码编写页面,选择需要创建的Python任务版本后,编写Python代码。
说明开发Python计算任务时,通常需要根据业务场景安装所需资源包。Dataphin已经预置通用资源包至系统内,您在开发代码过程中,只需要在代码开始部分添加
import 资源包名
语句即可,例如import configparser
。更多信息,请参见附录:Python预置资源包。在开发Python计算任务时,建议您在Python文件前两行对编码进行主动注释,防止执行代码时使用系统编码,导致执行结果报错。
若您需要在Python中引入上传的资源文件。请参见上传资源及引用。
单击页面右上角的运行,可运行代码。
单击页面侧边栏属性,配置任务属性。属性包括任务的基本信息、参数配置、调度属性(周期任务)、调度依赖(周期任务)、运行配置。
基本信息
用于定义调度任务的名称、对应责任人、描述等基本信息。详情请参见配置任务基本信息。
参数配置
若您的任务中调用了参数变量,您可在属性中对参数进行赋值,从而支持节点调度时,参数变量可以自动被替换为相应的变量值。配置说明,请参见参数配置及使用节点参数。
调度属性(周期任务)
如果离线计算任务的调度类型为周期任务,除属性基本信息外,还需配置任务的调度属性。配置说明,请参见配置调度属性。
调度依赖(周期任务)
如果离线计算任务的调度类型为周期任务,除了属性基本信息外,还需要配置任务的调度依赖。配置说明,请参见配置调度依赖。
运行配置
您可以根据业务场景为离线计算任务配置任务级的运行超时时间和任务运行失败时的重跑策略。未配置则默认继承租户级设置的默认值。配置说明,请参见计算任务运行配置。
在代码编写页面,保存并提交PYTHON任务。
单击页面上的图标,保存代码。
单击页面右上方的图标,提交代码。
在提交备注页面,填写备注信息。
单击确定并提交。
说明为确保数据安全,若您开发的Python任务中代码包含
from dataphin import hivec
或import dataphin
, 则提交后将触发代码审核,并自动为您生成代码审核申请工单,审核通过后才正常提交。代码审核人为当前项目的项目管理员(多个项目管理员时,任意一个审批通过即可正常提交)。