Linux基础知识学习(六)调度flag标记位判断脚本

文章描述了一个使用bash脚本执行HiveSQL查询的过程,同时检查传入参数并验证ods_tablename作业的数据加载。涉及到了Hive连接配置、SQL查询、Sqoop工具以及作业状态判断。
摘要由CSDN通过智能技术生成
#!/bin/bash

####################变量声明-START####################
HIVE_URL='jdbc:hive2://host1:2181,host2:2181,host3:2181,host4:2181,host5:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hive_zookeeper_ha'"?tez.queue.name=root.users.$(whoami)"
USER=$(whoami)
sql_home_path='/home/'$USER'/sql'
log_home_path='/mnt/sda/'$USER'/log'
job_code="$1"
data_dt="$2"  #传入第二个参数为会计日期

host=xxxx
port=5432
username=xxxx
password=xxxx
database=metadata 
url=jdbc:postgresql://xxxx:5432/metadata


####################变量声明-END####################


####################检查传入参数并赋值-START####################
#传入参数为0 退出 因为没有指定Hive-SQL文件
if [ $# -lt 2 ];then
  echo "Must assign a Hive-SQL file."
  echo "作业失败,传入参数小于2"
  exit 1
fi

echo "**********作业开始加载时间$(date "+%Y-%m-%d %H:%M:%S")"

qry_sql="SELECT '['||count(1)||'['
           FROM PUB_ETL_END_FLG A
          WHERE UPPER(A.SCHEMA_NAME) || '.' || UPPER(A.JOB_CODE) = UPPER('${job_code}')
            AND A.DATA_DT = '${data_dt}'
            ;"

echo "************************"
echo $qry_sql
echo "************************"

sqoop_line="sqoop eval --connect ${url} --username ${username} --password ${password} --query""\" "${qry_sql}" \""
echo ${sqoop_line}
tt=`sqoop eval --connect ${url} --username ${username} --password ${password} --query "${qry_sql}"`

echo "tt:"$tt

tt1=${tt#*[}
count=${tt1%%[*}


echo '===============总数量:========================'
echo 'count:' $count
echo '================比较大小========================'
if [ $count -gt 0 ]; then
    echo "$ods_tablename作业$data_dt加载success"
	exit 0

else
    echo "$ods_tablename作业$data_dt未加载!"
    exit 1
fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值