sqoop导入脚本——mysql_to_hdfs

#!/bin/bash

#操作命令格式
#sh mysql_to_hdfs.sh first 开始日期 结束日期(默认开始时间为前一天,结束时间为当天)
sqoop=/usr/hdp/3.1.4.0-315/sqoop/bin/sqoop
db=SAJT_DZFP_PT

do_date=`date -d '-1 day' +%F`
endDay=`date +%F`

if [[ -n "$2" ]]; then
    do_date=$2
fi

if [[ -n "$3" ]]; then
    endDay=$3
fi

while [ $do_date != $endDay ]
do
	import_data(){
	$sqoop import \
	--connect jdbc:mysql://xxxx:3306/$db \
	--username root \
	--password password \
	--target-dir /origin_data/test/$db/$1/$do_date \
	--delete-target-dir \
	--query "$2 and  \$CONDITIONS" \
	--num-mappers 1 \
	--fields-terminated-by '\t' \
	--compress \
	--compression-codec lzop \
	--null-string '\\N' \
	--null-non-string '\\N'

	hadoop jar /usr/hdp/3.1.4.0-315/hadoop/lib/hadoop-lzo-0.6.0.3.1.4.0-315.jar com.hadoop.compression.lzo.DistributedLzoIndexer /origin_data/test/$db/$1/$do_date
	}

	import_tbl_ec_document_item_1(){
	  import_data tbl_ec_document_item_1 "select
								 DIS_TAX,
								 CREATE_DATE
								from tbl_ec_document_item_1
								where date_format(CREATE_DATE,'%Y-%m-%d')='$do_date'"
	}
	import_tbl_ec_invoice_1(){
	  import_data tbl_ec_invoice_1 "select
	  							 CREATE_DATE,
								 EWM,
								 TZ_ERROR_MSG,
								 TZ_DATE
								from tbl_ec_invoice_1
								where date_format(CREATE_DATE,'%Y-%m-%d')='$do_date'"
	}
	
	case $1 in
	"tbl_ec_document_item_1")
	  import_tbl_ec_document_item_1
	;;
	"tbl_ec_invoice_1")
	  import_tbl_ec_invoice_1
	;;
	"first")
	  import_tbl_ec_document_item_1
	  import_tbl_ec_invoice_1
	esac
	do_date=`date -d "+1 day ${do_date}" +%F` #获取第二天的时间
done



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值