大数据——Sqoop增量导入shell脚本

该博客介绍了一种在大数据环境中处理大量历史数据的方法,通过Sqoop进行增量导入,确保成交订单数据的更新。脚本首先设置增量导入的日期,然后执行Sqoop任务从MySQL到HDFS,并将数据加载到Hive表中,最后清理源数据。整个流程适用于数据不被修改的场景。
摘要由CSDN通过智能技术生成

 应用环境:在实际业务中,表中数据量大且历史数据不会被修改,成交订单数据,可以采用增量表导入

#!/bin/bash
#传入增量导入的起始日期,若不传,则默认为前一天
args=$1
dt=
if [ ${#args} == 0 ]
    then 
    	dt=`date -d '1 days ago' +%Y%m%d`
    else
    	dt=$1
fi

sqoop job --delete bap_user_order
sqoop job --create bap_user_order \
-- import \
--connect jdbc:mysql://singleNode:3306/snbap_ods \
--driver com.mysql.jdbc.Driver \
--username root \
--password-file /sqoop/pwd/sqoopPWD.pwd \
--table user_order \
--target-dir /snbap/ods_tmp/ods_user_order \
--fields-terminated-by '\001' \
--incremental lastmodified \
--check-column update_time \
--last-value $dt

echo "执行sqoop语句,开始加载数据"
sqoop job --exec bap_user_order
echo "执行sqoop语句完成"

echo "加载数据到分区表"
#使用 load data inpath模式加载数据到hive表时会删除源数据
#使用 load data local inpath模式加载数据到hive表时不会删除源数据
hive -e "load data inpath '/snbap/ods_tmp/ods_user_order/*' into table snbap_ods.ods_user_order partition(dt='$dt')"
rm -f *.java

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vicky_Tang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值