• hive表批处理


    对hive中的表进行批量处理,如下是一个简单的脚本

    #给定一个hive数据库名,生成它的所有表的create SQL语句,并导出到文件
    create_fun(){
    hive -e "show create table $1.$2">>$3
    }
    
    #显示一个表中所有的分区
    show_partitions(){
    hive -e "show partitions $1.$2 ;">>$3
    }
    
    #将一个表中所有分区重命名
    rename_partition(){
    start_day=$3
    end_day=$4
    
    while [ ${start_day} -le ${end_day} ]
    do
        day_int=`date  +"%Y%m%d" -d  "${start_day}"`
        day_str=`date  +"%Y-%m-%d" -d  "${start_day}"`
        hive -e "alter table $1.$2 PARTITION (dt='${day_int}') RENAME TO PARTITION (dt='${day_str}');"
        start_day=`date  +"%Y%m%d" -d  "${start_day} 1 days" `
    done
    }
    #删除一个表中的分区
    drop_partition(){
    hive -e "alter table $1.$2 drop PARTITION (dt='$3')"
    }
    
    #更新一个hive表的列分隔符
    modify_separator(){
    hive -e "alter table $1.$2 set SERDEPROPERTIES('field.delim'='01');"
    }
    
    
    #指定一个数据库,查询出所有table,并对符合条件的table进行处理
    database(){
    basename=$1
    mid_file=mid.txt
    result_file=${basename}.txt
    match=_ods
    hive -e "use ${basename};show tables">${mid_file}
    sed -i '/WARN/d' ${mid_file}
    cat ${mid_file} |grep ${match} |while read line
    do
        drop_partition ${basename} $line $2
    done
    rm -rf ${mid_file}
    }
    
    
    #program start #
    database $1 $2
  • 相关阅读:
    1.2 软件测试的分类和职业生涯
    1.1:软件测试的发展
    1,select查询详解
    7、网页
    6、开学典礼
    5、边框属性和display
    4、盒子模型和margin、padding
    3、字体、背景、和文本的属性
    2、Css中的样式选择器
    16. C# 对象初始化器
  • 原文地址:https://www.cnblogs.com/wangbin2188/p/10002312.html
Copyright © 2020-2023  润新知