sqoop 根据id append 动态计算id 脚本

#!/bin/bash

########################################################
#                                                      #
#  @author hunter@doitedu                              #
#  @date   ${DT_INCR}                                  #
#  @desc   oms_order_item增量抽取任务 启动脚本         #
#                                                      #
########################################################

export SQOOP_HOME=/opt/apps/sqoop-1.4.7/

# 加载上次import的最大id
if [ -f preid ]
then
START_ID=`cat preid`
else
START_ID=0
fi

res=`mysql -h 192.168.77.2 -uroot -p123456 <<EOF
use realtimedw;
select max(id) from oms_order_item;
EOF`

CUR_MAX_ID=`echo ${res} | awk '{print $2}'`
echo ${CUR_MAX_ID} > preid


DT_EXTRACT=`date -d'-1 day' +%Y-%m-%d`

if [ $1 && $2 ]
then
ID=$1
DT_EXTRACT=$2
fi


echo "上次导入的最大ID为:${START_ID}"
echo "本次导入所能达到的最大ID为: ${CUR_MAX_ID}"


${SQOOP_HOME}/bin/sqoop import \
--connect jdbc:mysql://192.168.77.2:3306/realtimedw \
--username root \
--password 123456 \
--table oms_order_item \
--target-dir "/incr_test/oms_order_item/${DT_EXTRACT}"  \
--incremental append \
--check-column id \
--null-string '\\N'  \
--null-non-string '\\N' \
--last-value "${START_ID}"  \
--fields-terminated-by ','  \
--split-by id  \
-m 1   \

##


if [ $? -eq 0 ]
then 
echo "congratulations! hive表分区加载成功! 邮件已发送至admin@51doit.com"
else
echo "节哀顺变! 表分区加载失败! 邮件已发送至admin@51doit.com"
fi

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值