Hive--shell脚本自动加载分区数据

业务场景:每天都有日志而且每小时都有日志,将日志按照小时存储
Acccess_log/20190528/2019052800.log
2019052801.log
2019052802.log

#!/bin/bash
YESTERDAY = $(date -d "-1 days"+%Y%m%d)
ACCESS_LOG_DIR=/data/access_log/$YESTERDAY
HIVE_HOME=/opt/app/apache-hive-1.2.1-bin
echo $ACCESS_LOG_DIR

#加载数据
for FILE in $(ls $ACCESS_LOG_DIR)
do
    # FILE = 2019052800.log
    DAY=${FILE:0:8}
    HOUR=${FILE:8:2}
    $HIVE_HOME/bin/hive -e "load data local inpath '$ACCESS_LOG_DIR/$FILE' into table web_log partition(day='$DAY',hour='$HOUR');"
done
    
$HIVE_HOME/bin/hive 这个shell 命令是通向包括命令行界面(CLI)等Hive服务的通道。
-e 不进入hive,而去执行hive命令

DAY=${FILE:0:8}   FILE从第零位开始截取,截取长度为8的字符,并将此变量赋给DAY

${ }用于变量替换。一般情况下,$var 与${var} 并没有啥不一样。但是用 ${ } 会比较精确的界定变量名称的范围

在 bash shell 中,$( ) 与` ` (反引号) 都是用来做命令替换用(commandsubstitution)的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值