shell脚本加载数据文件到hive表中

如果执行时间允许,还可以增加判断hive表是否存在的。

#!/bin/ksh
#-------------------------------------------------------------------------------------
#---1、shell加载数据
#---2、用hive_sql_handler调用写好的sql脚本
#-------------------------------------------------------------------------------------

DATE_YYYYMMDD=`date +%Y%m%d`
conf_file='/home/xinxinghe/cfg/datafile.properties'
tab_schema='temp'
tab_fo017_reg="${tab_schema}.base_fo017_reg"
tab_fo015_reg="${tab_schema}.base_fo015_reg"
tab_fceso_reg="${tab_schema}.base_fceso_reg"
tab_fo015_daily="${tab_schema}.base_fo015_active_daily"
tab_fo015_monthly="${tab_schema}.base_fo015_active_monthly"
dir_logfile="/home/xinxinghe/log/$(date +F)"

###load_Data_to_Hive datafile tablename
load_Data_to_Hive(){
    datafile=$1
    tabname=$2
    ###判断数据文件是否为有效文件
    if [[ -f $datafile ]]
    the
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些代码范例,用于实现自动备份Hive表数据,并根据时间传参。请先确保您已经安装好了Hive客户端和hadoop。 以下是一个简单的shell脚本,用于备份Hive表数据,并根据时间传参: ```shell #!/bin/bash # 设置Hive表名和备份目录 table_name=$1 backup_dir=$2 # 获取当前日期和时间,作为备份文件名的一部分 current_time=$(date "+%Y-%m-%d_%H-%M-%S") # 备份Hive表数据到本地目录 hive -e "INSERT OVERWRITE LOCAL DIRECTORY '${backup_dir}/${table_name}_${current_time}' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' SELECT * FROM ${table_name};" # 打包备份文件 tar -czvf ${table_name}_${current_time}.tar.gz ${backup_dir}/${table_name}_${current_time} # 删除备份目录的原始备份文件 rm -rf ${backup_dir}/${table_name}_${current_time} # 将备份文件上传至HDFS hadoop fs -mkdir -p /user/hive/backup/${table_name} hadoop fs -put ${table_name}_${current_time}.tar.gz /user/hive/backup/${table_name} # 删除本地备份文件 rm -rf ${table_name}_${current_time}.tar.gz ``` 将以上代码保存为一个脚本文件 `backup_hive_table.sh`,并为该文件添加执行权限: ```shell chmod +x backup_hive_table.sh ``` 接着,您可以在终端调用该脚本,并传递Hive表名和备份目录作为参数。例如,如果您想备份名为 `my_table` 的Hive表,并将备份文件保存在本地 `/backup` 目录下,您可以执行以下命令: ```shell ./backup_hive_table.sh my_table /backup ``` 希望以上代码范例能够帮助您实现自动备份Hive表数据,并根据时间传参。如果您有任何疑问或需要进一步帮助,请随时联系我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值