在DataWorks中,自定义节点的开发主要涉及到Python编程。你需要使用Python编写任务的前置脚本、后置脚本和计算脚本。
以下是一些基本的步骤:
前置脚本:前置脚本会在任务开始执行前被调用,你可以在这里进行一些初始化操作,例如读取配置文件、连接数据库等。
计算脚本:计算脚本是自定义节点的核心,你需要在这里实现你的业务逻辑。你可以使用Python的内置库,也可以使用DataWorks提供的API。
后置脚本:后置脚本会在任务执行完毕后被调用,你可以在这里进行一些清理操作,例如关闭连接、写入日志等。
要在DataWorks中创建一个自定义节点并在运行时进行开发任务的接口,您需要编写一个JavaScript文件,并使用Node.js语法进行开发。以下是主要的步骤:
在您的项目中创建一个新的JavaScript文件,例如myNode.js。
在此文件中,导入并继承NodeBase类,这是一个抽象类,定义了一些必须的方法和一些可选的方法。
const NodeBase = require('@alicloud/dataworksmeta').NodeBase;
class MyNode extends NodeBase {
// ...
}
例如,如果您想创建一个带有两个参数的自定义节点,那么可以在构造函数中声明这两个参数:
constructor(options) {
super(options);
this.addInputPort({name: 'input1'});
this.addInputPort({name: 'input2'});
}
async run(context, inputs) {
const input1 = inputs['input1'];
const input2 = inputs['input2'];
console.log(`The value of input1 is: ${input1}`);
console.log(`The value of input2 is: ${input2}`);
return { result: 'OK' };
}
module.exports = MyNode;
编译并上传您的JavaScript文件到服务器。
在DataWorks中,创建一个新的自定义节点,选择之前编译的JavaScript文件,并定义好输入参数。
将自定义节点放入工作流中,并为其提供必要的输入参数。
DataWorks的自定义节点运行时,插件开发使用过程中涉及以下2个接口。submitJob(String codeFilePath, List args):提交插件任务的接口。包含以下入参。codeFilePath:为页面开发的代码存储绝对路径。List args:为页面配置的调度参数,格式为{"key"="value","key2"="value2"...}。返回参数如下。0:表示任务运行成功。2:表示告知调度系统重新运行任务。1、4、或3:表示任务被终止。其他数值:表示任务运行失败。killJob():此接口主要用于监听任务终止(kill)信号,然后会触发该接口调用。此接口没有入参和返回参数。说明 若业务层面在9秒内未处理完毕,整个插件进程会被强制终止,整个任务运行失败。
https://help.aliyun.com/document_detail/198585.html,此回答整理自钉群“DataWorks交流群(答疑@机器人)”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。