json
{
"job": {
"setting": {
"speed": {
"byte": 1048576
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "oraclereader",
"parameter": {
"username": "root",
"password": "root",
"column": [
"ID",
"SMMC",
"IP",
"SMBS",
"DEL_FLAG"
],
"splitPk": "ID",
"connection": [
{
"table": [
"BIZ_IP"
],
"jdbcUrl": [
"jdbc:oracle:thin:@192.168.0.30:1521:orcl"
]
}
]
}
},
"writer": {
"name": "oraclewriter",
"parameter": {
"username": "root",
"password": "root",
"column": ["ID","SMMC","IP","SMBS","DEL_FLAG"],
"connection": [
{
"jdbcUrl":"jdbc:oracle:thin:@192.168.0.30:1521:orcl",
"table": [
"BIZ_IP_BAK"
]
}
]
}
}
}
]
}
}
java代码:
import java.io.BufferedReader;
import java.io.File;
import java.io.FilenameFilter;
import java.io.InputStreamReader;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class DataXTest {
//https://github.com/alibaba/DataX 官网
public static Long oneDay = (long)24 * 60 * 60 * 1000; //每一天批量执行一次
public static Long initDelay = (long)0 * 1000; //延迟0分钟开始执行
//windows
// public static String jsonPath = "C:/Users/abc/Desktop/json"; //json文件夹地址
// public static String dataxPath = "E:/datax/bin/datax.py"; //datax的python文件地址
//liunx
public static String jsonPath = "/usr/soft/dataxJSON/"; //json文件夹地址
public static String dataxPath = "/usr/soft/datax/bin/datax.py"; //datax的python文件地址
// public static void main(String[] args) {
// //定时任务
// ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
// service.scheduleAtFixedRate(new Runnable(){
//
// @Override
// public void run() {
// exeDatax();
// }
//
// }, initDelay, oneDay, TimeUnit.MILLISECONDS);
//
// }
//批量执行datax
public static void exeDatax(){
try {
System.out.println("------------------start----------------------");
String[] str = getFileName(jsonPath);
for (String name : str) {
String windowcmd = "python "+dataxPath+" "+jsonPath+"/"+name;
System.out.println(windowcmd);
Process pr = Runtime.getRuntime().exec(windowcmd);
BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
pr.waitFor();
}
System.out.println("----------------end------------------");
} catch (Exception e) {
e.printStackTrace();
}
}
//获取文件夹下所有 json 文件名
public static String[] getFileName(String path) {
File file = new File(path);
String[] fileName = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (name.endsWith(".json")) {
return true;
}
return false;
}
});
return fileName;
}
}