HIVE的shell脚本模板

参照模板 实现了一个等值join的简单Demo
重要得脚本 模板 值得参考

#!/bin/bash

# ===========================================================================
# 程序名称:     hive的shell脚本  
# 功能描述:     将book表与course等值连接,数据分区插入
# 输入参数:     运行日期
# 目标表名:     book_par
# 数据源表:     book,course
#   创建人:     何睿
# 创建日期:     2017-11-29
# 版本说明:     v1.0
# 代码审核:     
# 修改人名:
# 修改日期:
# 修改原因:
# 修改列表: 
# ===========================================================================
### 1.参数加载
exe_hive="/home/software/hive-1.2.0-bin/bin/hive"

if [ $# -eq 1 ]
   then
       day_01=`date --date "${1}" +%Y-%m-%d`
else
       day_01=`date -d '-1 day' +%Y-%m-%d`
fi


TARGET_DB=school
TARGET_TABLE=book_par



###2.定义执行HQL
HQL="use ${TARGET_DB};
     insert overwrite table ${TARGET_TABLE} partition (dt='${day_01}') 
     select id,name,cno,sname from (select * from book where country='japan') b  left join course c on b.id=cno;"


###3.执行HQL
bash ${exe_hive} -e "${HQL}"


###4.判断是否成功
result=`hadoop fs -ls /user/hive/warehouse/${TARGET_DB}.db/${TARGET_TABLE}/dt=${day_01}  | wc -l`
if [ ${result} -gt 1 ]
   then
       hadoop fs -touchz /user/hive/warehouse/${TARGET_DB}.db/${TARGET_TABLE}/dt=${day_01}/_SUCCESS
     echo "-----------etl脚本执行成功------------"

你可能感兴趣的:(大数据-Hive)