HIVE的shell指令碼模板
阿新 • • 發佈:2018-12-22
參照模板 實現了一個等值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指令碼執行成功------------"