datax:如何使用datax
一、如何编译
从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

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
“龙井”开箱评测 |Alibaba Dragonwell 新手上路指南
作者|阿里云智能事业群 高级技术专家 陆传胜阿里巴巴有着最丰富的 Java 应用场景,覆盖电商,金融,物流等众多领域,是世界上最大的 Java 用户之一。2019 年 3 月 21 日,阿里巴巴在北京阿里云峰会上正式宣布开源了 Alibaba Dragonwell 8 产品,并建立了 Alibaba Dragonwell 社区来为全球 Java 用户,特别是中文社区的 Java 用户提供长期支持的 JDK 产品。自宣布开源以来,Alibaba Dragonwell 8 受到了国内外 Java 开发者的关注,今天这篇文章就来详解 Alibaba Dragonwell8 的快速安装和使用,同时列出了参与社区建设的几种方式,期望为那些即将安装及使用 Alibaba Dragonwell 8 的开发者提供参考。 Alibaba Drago
-
下一篇
python 多重类继承__init__
目的 项目中遇到多重类继承的问题,想调用父类构造函数中的内容,调试了一两个小时,遇到两个问题。 说不存在某个父类的函数; 报MRO列表错误; 查询了相关的文档,大致是讲解父类的继承,没有涉及到多重继承,以及多重继承构造函数的问题,这里总结一下。 调用父类方法 想在子类中调用父类的某个已经被覆盖的方法: 解决方案 为了调用父类(超类)的一个方法,可以使用 super() 函数,比如 class A: def spam(self): print('A.spam') class B(A): def spam(self): print('B.spam') super().spam() # Call parent spam() super() 函数的一个常见用法是在 __init__() 方法中确保父类被正确的初始化了: class A: def __init__(self): self.x = 0 class B(A): def __init__(self): super().__init__() self.y = 1 super() 的另外一个常见用法出现在覆盖Python特殊方法的代码中,...
相关文章
文章评论
共有0条评论来说两句吧...