datax 删除分区数据,再写入MySQL脚本

#! /bin/bash

DATAX_HOME=/opt/module/datax

#1、判断参数是否传入
if [ $# -lt 1 ]
then
	echo "必须传入all/表名..."
	exit
fi
#2、判断日期是否传入
[ "$2" ] && datestr=$2 || datestr=$(date -d '-1 day' +%F)

#DataX导出路径不允许存在空文件,该函数作用为清理空文件
handle_export_path(){
  for i in $(hadoop fs -ls -R "$1" | awk '{print $8}'); do
    hadoop fs -test -z "$i"
    if [[ $? -eq 0 ]]; then
      echo "$i 文件大小为0,正在删除"
      hadoop fs -rm -r -f "$i"
    fi
  done
}

#数据导出
export_data() {
  datax_config=$1
  export_dir=$2
	#执行sql
	tableNames=("${@:3}")
	#遍历所有表,拼接每个表的数据加载sql语句
	for table in "${tableNames[@]}"
	do
	  ssh hadoop102 "mysql -uroot -pmivbAs7Awc -e \"use ticket; delete from ${table} where end_date = '${datestr}'\""
	done

  handle_export_path "$export_dir"
  python "$DATAX_HOME/bin/datax.py" -p"-Dexportdir=$export_dir"  "$datax_config"
}

case $1 in
"ads_ticket_respond_statistics")
  export_data "/opt/module/datax/job/export/ticket/ticket.ads_ticket_respond_statistics.json" "/warehouse/ticket/ads/ads_ticket_respond_statistics/dt=${datestr}" "ads_ticket_respond_statistics"
  ;;
"ads_ticket_subpar_statistics")
  export_data "/opt/module/datax/job/export/ticket/ticket.ads_ticket_subpar_statistics.json" "/warehouse/ticket/ads/ads_ticket_subpar_statistics/dt=${datestr}" "ads_ticket_subpar_statistics"
  ;;
"all")
  export_data "/opt/module/datax/job/export/ticket/ticket.ads_ticket_respond_statistics.json" "/warehouse/ticket/ads/ads_ticket_respond_statistics/dt=${datestr}" "ads_ticket_respond_statistics"
  export_data "/opt/module/datax/job/export/ticket/ticket.ads_ticket_subpar_statistics.json" "/warehouse/ticket/ads/ads_ticket_subpar_statistics/dt=${datestr}" "ads_ticket_subpar_statistics"
  ;;
esac

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

m0_37759590

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

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

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

打赏作者

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

抵扣说明:

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

余额充值