datax 批量同步和传输表
有时候,进行全量同步表时,涉及的表会比较多,可以使用参数定义表明的方式 进行调用datax的配置文件,这样就不需要每次新增一张表就写一个配置文件
{ "job": { "content": [ { "reader": { "name": "oraclereader", "parameter": { "column": ["*"], "connection": [ { "jdbcUrl": ["jdbc:oracle:thin:@192.136.111.120:1521:ompio"], "table": ["${readTb}"] } ], "password": "hdgsjdgsj", "username": "yuergjdgs" } }, "writer": { "name": "oraclewriter", "parameter": { "column": ["*"], "preSql": ["truncate table ${writeTb}" ], "connection": [ { "jdbcUrl": "jdbc:oracle:thin:@192.186.258.56:1521:uytbo", "table": ["${writeTb}"] } ], "password": "hdjfdj", "username": "ghdssh" } } } ], "setting": { "speed": { "channel": "10" } } } }
然后 就需要进行全量同步的所有表整理在一个shell文件中,即使新增表,也只需要增加一行shell文件记录,不需要重新写配置文件,其中sh文件的名称为test.sh,其内容如下
datax/bin/datax.py datax_json/full_update/poiu_full_update_tables.json -p "-DreadTb=poiu.dump_TEaR -DwriteTb=CDMDATA.dump_TEaR" --jvm="-Xms8G -Xmx8G" datax/bin/datax.py datax_json/full_update/poiu_full_update_tables.json -p "-DreadTb=poiu.dump_MEaRCHANTI -DwriteTb=CDMDATA.dump_MEaRCHANTI" --jvm="-Xms8G -Xmx8G" datax/bin/datax.py datax_json/full_update/poiu_full_update_tables.json -p "-DreadTb=poiu.dump_MERaC_CA -DwriteTb=CDMDATA.dump_MERaC_CA" --jvm="-Xms8G -Xmx8G" datax/bin/datax.py datax_json/full_update/poiu_full_update_tables.json -p "-DreadTb=poiu.dump_MEaRC_REA -DwriteTb=CDMDATA.dump_MEaRC_REA" --jvm="-Xms8G -Xmx8G"
然后 再同步linux的定时任务,每日执行这个shell文件即可。如果同步的表有增加,只需要同步上面test.sh文件即可,将两个表名进行替换一下即可。