参照模板 实现了一个等值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脚本执行成功------------"