开发一个Python作业
本章节介绍如何在数据开发模块上开发并执行Python作业示例。
环境准备
约束限制
- Python节点支持脚本参数和作业参数。
- 本示例以Python3为例。
建立主机数据连接
开发Python脚本前,我们需要建立一个到弹性云服务器ECS的连接。
- 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。
- 在DataArts Studio控制台首页,选择对应工作空间的“管理中心”模块,进入管理中心页面。
- 在管理中心页面,单击“数据连接”,进入数据连接页面并单击“创建数据连接”。
- 参见表1配置相关参数,创建主机连接名称为“ecs”的数据连接,如图1所示。
表1 主机连接 参数
是否必选
说明
数据连接类型
是
主机连接固定选择为主机连接。
数据连接名称
是
数据连接的名称,只能包含字母、数字、下划线和中划线,且长度不超过100个字符。
标签
否
标识数据连接的属性。设置标签后,便于统一管理。说明:标签的名称,只能包含中文、英文字母、数字和下划线,不能以下划线开头,且长度不能超过100个字符。
适用组件
是
选择此连接适用的组件。勾选组件后,才能在相应组件内使用本连接。
基础与网络连通配置
主机地址
是
Linux操作系统主机的IP地址。
请参考查看云服务器详细信息获取。
绑定Agent
是
选择CDM集群,CDM集群提供Agent。
说明:-
CDM集群作为管理中心数据连接Agent时,单集群的并发活动线程最大为200。即当多个数据连接共用同一Agent时,通过这些数据连接提交SQL脚本、Shell脚本、Python脚本等任务的同时运行上限为200,超出的任务将排队等待。建议您按照业务量情况规划多个Agent分担压力。
- 在调度Shell、Python脚本时,Agent会访问ECS主机,如果Shell、Python脚本的调度频率很高,ECS主机会将Agent的内网IP加入黑名单。为了保障作业的正常调度,强烈建议您使用ECS主机的root用户将绑定Agent(即CDM集群)的内网IP加到/etc/hosts.allow文件里面。
CDM集群的内网IP获取方式请参见查看并修改CDM集群配置。
端口
是
主机的SSH端口号。
Linux操作系统主机的默认登录端口为22,如有修改可通过主机路径“/etc/ssh/sshd_config”文件中的port字段确认端口号。
KMS密钥
是
通过KMS加解密数据源认证信息,选择KMS中的任一默认密钥或自定义密钥即可。说明:第一次通过DataArts Studio或KPS使用KMS加密时,会自动生成默认密钥dlf/default或kps/default。关于默认密钥的更多信息,请参见什么是默认密钥。
数据源认证及其他功能配置
用户名
是
主机的登录用户名。
登录方式
是
选择主机的登录方式:
- 密钥对
- 密码
密钥对
是
“登录方式”为“密钥对”时,显示该配置项。
主机的登录方式为密钥对时,您需要获取并上传其私钥文件至OBS,在此处选择对应的OBS路径。
说明:此处上传的私钥文件应和主机上配置的公钥是一个密钥对,详情请参见密钥对使用场景介绍。
密钥对密码
是
如果密钥对未设置密码,则不需要填写该配置项。
密码
是
“登录方式”为“密码”时,显示该配置项。
主机的登录方式为密码时,填写主机的登录密码。
主机连接描述
否
主机连接的描述信息。
关键参数说明:
- 主机地址:已开通ECS主机中开通的ECS主机的IP地址。
- 绑定Agent:已开通批量数据迁移增量包中开通的CDM集群。
-
- 单击“测试”,测试数据连接的连通性。如果无法连通,数据连接将无法创建。
- 测试通过后,单击“确定”,创建数据连接。
开发Python脚本
- 在“数据开发 > 脚本开发”模块中创建一个Python脚本,脚本名称为“python_test”。
图2 创建Python脚本
- 选择Python版本(以Python3为例),并选择主机连接,根据实际需要输入参数。
配置的参数是指执行Python脚本时,向脚本传递的参数,参数之间使用空格分隔,例如:Microsoft Oracle。此处的“参数”需要在Python脚本中引用,否则配置无效。
- 在编辑器中编辑Python语句。
本示例定义一个保存公司信息的字符串模板,然后应用该模板输出公司的信息。
import sys Company_Name1=sys.argv[1] Company_Name2=sys.argv[2] template='No.:{:0>9s} \t CompanyName: {:s} \t Website: https://www.{:s}.com' context1=template.format('1',Company_Name1,Company_Name1.lower()) context2=template.format('2',Company_Name2,Company_Name2.lower()) print(context1) print(context2)
- 单击“保存”,并提交版本。
- 单击“运行”执行Python语句。
- 查看脚本运行结果。
图4 查看脚本运行结果
在作业中引用Python脚本
- 创建一个作业。
- 选择Python节点,并配置节点属性。
选择已创建好的Python脚本,配置相关节点参数。在“参数”里面可以配置脚本参数,例如:
配置的参数是指执行Python语句时,向语句传递的参数,参数之间使用空格分隔,例如:Microsoft Oracle。此处的“参数”需要在Python语句中引用,否则配置无效。
图5 配置Python节点属性
- 单击“测试运行”,查看该作业的运行结果。
图6 查看作业运行结果
- 单击“保存”,作业配置信息创建完成。
- 单击“提交”,提交版本后对该作业进行调度。