抽数工具datax使用

最近做了一个项目,需要把oracle数据的表数据全量和增量抽取到mysql中,在调研了kettle和datax之后,果断选择了datax
,datax为阿里开源的抽数工具,gitlub上可以下载,简单的配置一下,即可使用,稳定高效

   gitlub地址:https://github.com/alibaba/DataX
   官网文档地址 :https://help.aliyun.com/document_detail/49808.html?spm=a2c4g.11186623.6.591.18e537d4sMMpz

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "oraclereader",
                    "parameter": {
                        "column": [              
                          "grpcontno",
						  "contno",
						  "prtno"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:oracle:thin:@127.0.0.1:1521:orcl"],
                                "table": ["LCAPPNT"]
                            }
                        ],						
                        "password": "********",
                        "username": "********",
						"splitPk":"contno",
                    }

                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column": [
                           "grpcontno",
						  "contno",
						  "prtno"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/mysql",
                                "table": ["LCAPPNT"]
                            }
                        ],
						"preSql": [
						  "drop table 语句",
						  "create table  语句"
						  
						],
                        "password": "*****",
                        "username": "*****"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel":10
           }
        }
    }
}

这个例子是每次拉去全量数据从oracle表对表抽取到mysql,其实还可以实现增量抽取,这个需要些crontab和shell 脚本,
在linux上运行,crontab写定时任务去调度shell脚本,shell脚本里面执行job文件,执行命令datax官网有介绍,job配置文件各个
参数的意义也有介绍,增量抽取一般按照表的时间戳抽取,每次抽取前通过shell脚本读取预先保存在文件中的上次抽取日期,然后通过命令参数传入脚本中
#!/bin/bash

max_time="'$(cat /root/temp/dataxtime/jobtime_*)'" 
echo $max_time 
/root/datax/bin/datax.py  /root/datax/job/test1.json -p "-Dmax_time=$max_time" >>/root/log/datax/test_log.`date +%Y%m%d`  2>&1 &

其他复杂一点例子,查阅一下资料后,自己稍加思考都可以做


你可能感兴趣的:(抽数工具datax使用)