java dataX同步数据

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;
}
 
}

 

你可能感兴趣的:(java dataX同步数据)