天天看点

DataX插件编写指南简介新建模块配置开发测试

datax 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 mysql、oracle、hdfs、hive、oceanbase、hbase、ots、odps 等各种异构数据源之间高效的数据同步功能。datax采用了框架

+ 插件 的模式,目前已开源,代码托管在github。

代码托管地址:

https://github.com/alibaba/datax

插件的开发可以参考:

https://github.com/alibaba/datax/wiki/datax%e6%8f%92%e4%bb%b6%e5%bc%80%e5%8f%91%e5%ae%9d%e5%85%b8

下面是参考《datax插件开发宝典》,进行插件开发的一个完整的流程。

首先从 https://github.com/alibaba/datax 克隆代码,然后执行如下命令:

这个命令会生成datax.tar.gz,我们可以将生成的文件部署到相应的环境,进行数据的导入导出。

后续,开发测试之后,可以使用上面的命令,将我们自己开发的插件集成到datax中。

然后将代码导入到eclispe(或者其它ide)中,然后在这个项目下新建一个maven模块。

接着做一些配置,配置之后就可以进行开发了

datax使用maven工具来管理项目,插件和框架使用多模块的方式组织在一起。使用maven-assembly-plugin将所有的模块打包在一起。

在开发的过程中,需要进行两方面的配置

插件模块本身的配置:目录和文件要满足约定

datax主模块的配置:需要配置2个文件:./pom.xml和./package.xml

建立一个插件模块之后,源代码的结果应该满足如下结构:

DataX插件编写指南简介新建模块配置开发测试

pom的配置:

这里要注意的是,

1 增加了对datax-common的依赖,这个依赖是datax的框架,

2 配置了maven-assembly-plugin,在这里应用了src/main/assembly/package.xml。package.xml定义了打包之后的目录结构,这个目录结果是datax约定好的。具体如下:

除了上面的两个xml文件,还需要两个json文件

plugin.json是对插件本省的描述,在框架根据这个文件来加载插件,例如:

plugin_job_template.json:插件的配置模块,用户在使用插件是,根据这个模版来进行配置。例如:

pom.xml 中添加本插件的模块名称

模块名称artifactid

package.xml 中添加本插件的打包内容,以让 datax 能够把该插件纳入整个插件体系。

主要参考《datax插件开发宝典》,这里面讲的比较详细。

下面是插件如何通过<code>recordsender</code>往<code>channel</code>写入数据的伪代码:

开发完成之后,可以通过执行命令:

来生成datax,然后进行测试。

因为每次执行这条命令,会把datax中所有的插件重新编译和打包,速度会比较慢。所以,可以修改datax中的pom.xml和package.xml,模块只保留common和正在开发中的插件。