1.基本用法
生成job.json的示例文件
cd {YOUR_DATAX_HOME}/bin
python datax.py -r mysqlreader -w postgresqlwriter
2.DataX执行的json文件解析
{
job: //最外侧,任务
setting:{ //设置
speed:{ //速度
channel:3 //指定用几个子线程去跑这个任务,线程越多,速度越快
content:{ //内容
reader:{ //读数据部分
name:"hdfsreader" //指明什么类型的reader,hdfsreader读HDFS
parameter:{ //参数
path:"/user/xxx/dt=${dt}/dn=${dn}/*" //要读取的HDFS上的数据库的路径
defaultFS:"" //HDFS地址,HA是hdfs://mycluster
hadoopConfig:{ //Hadoop的一些配置
"dfs.nameservices":"mycluster" //HDFS集群名
"dfs.ha.namenode.mycluster":"nn1,nn2,nn3" //HA的多个namenode
"dfs.namenode.rpc-address.mycluster.nn1":hadoop201:8020 //HDFSnamenode1的地址
"dfs.namenode.xxx.nn2" //第二个namenode的地址
"dfs.namenode.xxx.nn3" //第三个namenode的地址
"dfs.client.failover.proxy.provider.nameservice1": "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider" //HDFS的namenode的失败重试机制
column:[{index:0, type:String}, {value:${dn}, type:string}] //每个列封装成一个json对象,读列通过下标索引读取数据块中的列;type是数据库中列对应的数据类型;外部传入的参数使用固定值value接收。
fileType:"text" //数据块文件类型,行式存储
encoding:"UTF-8" //数据块文件编码格式
fieldDelimiter:"\t" //数据块中字段的分隔符,和Hive建表的时候的分隔符一致
writer:{ //写数据部分
name:"mysqlwriter" //指明什么类型的writer,mysqlwriter写到MySQL
parameter:{
writerMode:"insert" //写入数据库的方式,insert、replace(主键冲突会替换)
username:"root" //mysql的用户名
password:"123456" //mysql的密码
column:[xxx,xxx] //对应Hive表中的字段,顺序个数一致
perSql:["delete from xxx where dt=${dt}"] //当写入mysql50%失败了,下一次重新导入的时候,会执行这个sql,一般都是delete删除。
connection:[{jdbcUrl:mysql的url, table:[表名]}]
}
datax 3.0 读取mysql
https://blog.csdn.net/weixin_43975771/article/details/120182894
版权声明:本文为weixin_43975771原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。