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

#给定一个hive数据库名,生成它的所有表的create SQL语句,并导出到文件
create_fun(){
hive -e "show create table $1.$2">>$
} #显示一个表中所有的分区
show_partitions(){
hive -e "show partitions $1.$2 ;">>$
} #将一个表中所有分区重命名
rename_partition(){
start_day=$
end_day=$ 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'='\001');"
} #指定一个数据库,查询出所有table,并对符合条件的table进行处理
database(){
basename=$
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 $
done
rm -rf ${mid_file}
} #program start #
database $ $

hive表批处理的更多相关文章

  1. hive表增量抽取到oracle数据库的通用程序(二)

    hive表增量抽取到oracle数据库的通用程序(一) 前一篇介绍了java程序的如何编写.使用以及引用到的依赖包.这篇接着上一篇来介绍如何在oozie中使用该java程序. 在我的业务中,分为两段: ...

  2. hive表增量抽取到oracle数据库的通用程序(一)

    hive表增量抽取到oracle数据库的通用程序(二) sqoop在export的时候 只能通过--export-dir参数来指定hdfs的路径.而目前的需求是需要将hive中某个表中的多个分区记录一 ...

  3. 【翻译】Flink Table Api & SQL — Hive —— 读写 Hive 表

    本文翻译自官网:Reading & Writing Hive Tables  https://ci.apache.org/projects/flink/flink-docs-release-1 ...

  4. hive 表分区操作

    hive的数据查询一般会扫描整个表,当表数据太大时,就会消耗些时间,有时候我们只需要对部分数据感兴趣,所以hive引入了分区的概念    hive的表分区区别于一般的分布式分区(hash分区,范围分区 ...

  5. 如何快速把hdfs数据动态导入到hive表

    1. hdfs 文件   {"retCode":1,"retMsg":"Success","data":[{" ...

  6. HDFS文件和HIVE表的一些操作

    1. hadoop fs -ls  可以查看HDFS文件 后面不加目录参数的话,默认当前用户的目录./user/当前用户 $ hadoop fs -ls 16/05/19 10:40:10 WARN ...

  7. 用puthivestreaming把hdfs里的数据流到hive表

    全景图:   1. 创建hive表 CREATE TABLE IF NOT EXISTS newsinfo.test( name STRING ) CLUSTERED BY (name)INTO 3 ...

  8. spark使用Hive表操作

    spark Hive表操作 之前很长一段时间是通过hiveServer操作Hive表的,一旦hiveServer宕掉就无法进行操作. 比如说一个修改表分区的操作 一.使用HiveServer的方式 v ...

  9. spark+hcatalog操作hive表及其数据

    package iie.hadoop.hcatalog.spark; import iie.udps.common.hcatalog.SerHCatInputFormat; import iie.ud ...

随机推荐

  1. cocos2d-x 调色

    在游戏开发.我们须要实现闪光的灯.照明弹效果等等,我么你能够採用混合模式来实现. 假设学习过OpenGL(ES),就知道里面使用glBlendFunc函数实现的.在cocos2d-x里肯定也有,对于精 ...

  2. numpy 辨异(三)—— hstack/column_stack,linalg.eig/linalg.eigh

    1. np.hstack np.column_stack >>> np.hstack([np.array([1, 2, 3]), np.array([4, 5, 6])]) arra ...

  3. android游戏开发系列(2)——背景音乐播放技术

    背景音乐通常播放时间较长,且文件体积也相对较大.这类资源如果放在内存中,一方面给硬件资源本身就很紧缺的手机造成了负担,另一方面通常也没有这方面的需求,放在内存中,在调用时播放速度较快,而长时音乐文件通 ...

  4. TCP 和 UDP 的区别

    参考:http://blog.csdn.net/li_ning_/article/details/52117463 TCP与UDP区别总结: 1.TCP面向连接(如打电话要先拨号建立连接);UDP是无 ...

  5. 在asp.net core中使用cookie认证

    以admin控制器为要认证的控制器举例 1.对控制器设置权限特性 //a 认证命名空间 using Microsoft.AspNetCore.Authorization; using Microsof ...

  6. vb.net版本房收费系统改造

    房费制开始重建的最终版本. 前几天.刚刚看完三层的视频,在视频中具体的解说了一个登录功能.天真的我,当时以为三层结构是那么的简单,所以我草草地做完总结之后,就非常快就開始机房收费系统的重构了.但是谁想 ...

  7. WPF Path实现虚线流动效果

    原文:WPF Path实现虚线流动效果 最近闲来无事,每天上上网,看看博客生活也过得惬意,这下老总看不过去了,给我一个任务,叫我用WPF实现虚线流动效果,我想想,不就是虚线流动嘛,这简单于是就答应下来 ...

  8. SQL之Grant(分配权限)和Revoke(回收权限)

    Grant Grant可以把指定的权限分配给特定的用户,如果这个用户不存在,则会创建一个用户 命令格式 grant 权限 on 数据库名.表名 to 用户名@登陆方式 identified by 'p ...

  9. js的一些写法问题

    尽量不要拼接字符,用自定义标签来完成     用winform的形式更佳  

  10. WPF DataGrid自动生成列

    <Window x:Class="DataGridExam.MainWindow"        xmlns="http://schemas.microsoft.c ...