抽数工具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 &

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


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值