datax是一个搬数据的框架,是阿里巴巴公司的开源的框架,主要就是用来搬数据,多数据源之间的数据的处理。
datax的使用:
datax主要通过json文件来配置job,json的格式如下:
{
"job": {
"content": [
{
"reader": {
"name": "streamreader",
"parameter": {
"column": [],
"sliceRecordCount": ""
}
},
"writer": {
"name": "streamwriter",
"parameter": {
"encoding": "",
"print": true
}
}
}
],
"setting": {
"speed": {
"channel": ""
}
}
}
}
上面就是一个简单的job文件,可以看出一个job包含reader和writer两个部分,初次接触datax的json文件时,感觉跟spring-batch很相似,都是分为一个一个的job,而且都包含reader和writer。但是datax与batch是不一样的,datax只是一个搬数据的数据同步工具,而batch是批量处理工具,batch可以对读到的数据进行处理,而datax没有这个功能,只能转移数据,读到的数据是什么,写出来就是什么。
datax是一个支持拓展插件的框架,也就是说datax是可以配置的,如果现有的插件满足不了需求,我们完全可以自己编辑插件。
datax的reader包括有:mysqlreader,txtfilereader,ftpreader,streamreader.....等,这些都是datax已经开发的插件,响应的writer有mysqlwriter,txtfilewriter,streamwriter....
具体不一一介绍,可以自己查询,json配置文件注释:
/*一个json就是一个job,一个job主要包含:
content,setting 两个属性*/
{
"job": {
/*content是job的核心,主要放reader和writer插件*/
"content": {
/*raader插件*/
"reader": {},
/*writer插件*/
"writer": {}
},
/*setting主要用来设置job的基本设置*/
"setting": {
/*speed流量控制*/
"speed": {
"channel": 1, /*同步时候的并发数*/
"byte": 1024 /*同步时候的字节大小,影响速度,可选*/
},
/*脏数据控制*/
"errorLimit": {
"record": 10,/*脏数据最大记录数阈值*/
"percentage": 0.05 /*脏数据占比阈值*/
}
}
}
}
json的reader和writer内容根据插件不同而变化,具体查询官网。
来源:https://www.cnblogs.com/Zs-book1/p/12255265.html