#!/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
Linux基础知识学习(六)调度flag标记位判断脚本
最新推荐文章于 2024-10-02 16:50:28 发布
文章描述了一个使用bash脚本执行HiveSQL查询的过程,同时检查传入参数并验证ods_tablename作业的数据加载。涉及到了Hive连接配置、SQL查询、Sqoop工具以及作业状态判断。
摘要由CSDN通过智能技术生成