10_首次导入数据脚本

#! /bin/bash
#first.sh all/表名 日期
#1、判断参数是否传入
if [ $# -lt 1 ]
then
    echo "至少需要传入一个参数..."
    exit
fi
#2、判断日志是否传入,如果传入了日志,则用指定的日期,如果没有传入,则用前一天的日期
[ "$2" ] && datestr=$2 || datestr=$(date -d '-1 day' +%Y%m%d)

import_date(){
/opt/module/sqoop/bin/sqoop import \
--connect jdbc:mysql://hadoop102:3306/gmall \
--username root \
--password root123 \
--delete-target-dir \
--num-mappers 1 \
--split-by $2 \
--query "$1" \
--target-dir hdfs://hadoop102:8020/gmall/$3/$datestr \
--compress \
--compression-codec lzop \
--null-string '\\N' \
--null-non-string '\\N' \
--fields-terminated-by ,
#给lzo压缩文件创建索引
hadoop jar /opt/module/hadoop/share/hadoop/common/hadoop-lzo-0.4.20.jar com.hadoop.compression.lzo.DistributedLzoIndexer hdfs://hadoop102:8020/gmall/$3/$datestr
}
#3、导入数据
case $1 in
#导入所有表数据
"all")
import_date "select * from sku_info where \$CONDITIONS" "id" "sku_info"
import_date "select * from comment_info where \$CONDITIONS" "id" "comment_info"
import_date "select * from user_info where \$CONDITIONS" "id" "user_info"
import_date "select * from base_province where \$CONDITIONS" "id" "base_province"
;;
#导入指定表数据
"sku_info")
import_date "select * from sku_info where \$CONDITIONS" "id" "sku_info"
;;
"comment_info")
import_date "select * from comment_info where \$CONDITIONS" "id" "comment_info"
;;
"user_info")
import_date "select * from user_info where \$CONDITIONS" "id" "user_info"
;;
"base_province")
import_date "select * from base_province where \$CONDITIONS" "id" "base_province"
;;
*)
    echo "第一个参数输入错误,必须是all或者是表名"
;;
esac

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值