一、如何编译
从https://github.com/alibaba/DataX将工程代码下载到本地,配置好java和maven环境,执行命令mvn -U clean package assembly:assembly -Dmaven.test.skip=true即可实现打包,执行完毕之后会在工程目录下面有一个target目录,包含有一个datax的文件夹和datax.tar.gz文件即是我们需要的文件
二、如何使用
进入datax/bin目录下,新建test.json文件,文件内容为:
{
"job": {
"setting": {
"speed": {
"channel": 1
}
},
"content": [
{
"reader": {
"name": "txtfilereader",
"parameter": {
"path": ["/XXX/src"],
"encoding": "UTF-8",
"column": [
{
"index": 0,
"type": "long"
},
{
"index": 1,
"type": "long"
}
],
"fieldDelimiter": ","
}
},
"writer": {
"name": "txtfilewriter",
"parameter": {
"path": "/XXX/dest",
"fileName": "dest",
"writeMode": "truncate"
}
}
}
]
}
}
在当前目录下执行python datax.py test.json命令,即可将datax运行起来
三、参数说明
1、datax使用json作为配置文件,文件可以是本地的也可以是远程http服务器上面
2、json配置文件最外层是一个job,job包含setting和content两部分,其中setting用于对整个job进行配置,content是数据的源和目的
3、setting:用于设置全局channel配置,脏数据配置,限速配置等,本例中只配置了channel个数1,也就是使用单线程执行数据传输
4、content:
1)reader:配置从哪里读数据
name:插件名称,需要和工程中的插件名保持一致
parameter:插件对应的输入参数
path:源数据文件的路径
encoding:数据编码
fieldDelimiter:数据分隔符
column:源数据按照分隔符分割之后的位置和数据类型
2)writer:配置将数据写到哪里去
name:插件名称,需要和工程中的插件名保持一致
parameter:插件对应的输入参数
path: 目标路径
fileName: 目标文件名前缀
writeMode: 写入目标目录的方式
5、具体插件参数含义可以查看datax官方文档
1)https://github.com/alibaba/DataX/blob/master/txtfilereader/doc/txtfilereader.md
2)https://github.com/alibaba/DataX/blob/master/txtfilewriter/doc/txtfilewriter.md
四、/XXX/src测试数据
文件a:
1,2
3,4
5,6