Sqoop增量更新(自动更新参数)

1原始导出脚本:

sqoop import --connect jdbc:mysql://dev07:3306/dianpingdb --username root --password root --table category --target-dir /user/zxh/sqoop1 --incremental lastmodified --check-column updated_at --merge-key id --last-value "2019-06-12 12:39:43" --m 1 --fields-terminated-by "\t"

1.1问题:

每次增量更新时都得动态的传入--last-value。

1.2 解决方案:

查阅运行日志发现如下说明

 

想动态保存需要注册成job(作业)。

2 Sqoop作业

2.1注册job执行脚本:

sqoop job \

--create myjob1 \

-- import \

--connect jdbc:mysql://dev07:3306/dianpingdb \

--username root \

--password root \

--table category \

--target-dir /user/zxh/sqoop1 \

--incremental lastmodified \

--check-column updated_at --merge-key id \

--last-value "2019-06-12 12:39:43" \

--m 1 \

--fields-terminated-by "\t"

2.2 验证作业

sqoop job --list 

 

2.3 执行作业

sqoop job --exec myjob1

会出现输入密码提示:

 

2.4 输入密码问题解决

在sqoop 配置文件sqoop-site.xml下增加如下配置:

<property>

    <name>sqoop.metastore.client.record.password</name>

    <value>true</value>

    <description>If true, allow saved passwords in the metastore.

    </description>

</property>

2.5 注意事项

在修改完配置文件后重新执行myjob1 还是会显示输入密码,此时需要将之前注册的job删除,在重新注册,首次执行时会根据你传入的参数进行查询,再次执行时会自动读取上次的执行时间。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值