1. 程式人生 > >HIVE的shell指令碼模板

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指令碼執行成功------------"