一.批量添加分区:
 
use bigdata;
alter table siebel_member
add if not exists
partition(dt='20180401') location '20180401'
partition(dt='20180402') location '20180402'
partition(dt='20180403') location '20180403'
partition(dt='20180404') location '20180404';
 
二.批量删除分区
 
alter table siebel_member drop if exists
partition(dt='20180401'),
partition(dt='20180402'),
partition(dt='20180403'),
partition(dt='20180404');
 
三.大量分区的添加
虽说是批量添加分区,但是一下子添加2000个分区,如果把2000个分区写在一个语句里面,hive是不允许的。
所以只好一个月一个月的加,尝试了使用shell 生成 line="hive -e "xxxxx""  ${line} ,但是解析错误,采用python + shell 解决了问题。
python 代码如下:
 
#!/usr/bin/env python
#encoding=utf8
 
import datetime
import os
import sys
 
 
def dateRange(beginDate, endDate):
    dates = []
    dt = datetime.datetime.strptime(beginDate, "%Y%m%d")
    date = beginDate[:]
    while date < endDate:
        dates.append(date)
        dt = dt + datetime.timedelta(1)
        date = dt.strftime("%Y%m%d")
    return dates
 
 
def genSql(datelist, table):
    sql = """
hive -e "
use bigdata;
alter table """ + table + """
add if not exists """
    for i in datelist:
        sql = sql + """partition(dt='""" + i + """') location '""" + i + """' """
    sql = sql.strip() + """;" """
    os.system(sql)
 
 
if __name__ == '__main__':
    if sys.argv.__len__() != 4:
        print("参数错误")
        sys.exit()
    st = sys.argv[1]
    et = sys.argv[2]
    table = sys.argv[3]
    datelist = dateRange(st,et)
    genSql(datelist,table)
 
 
shell 用来调度 py
#添加分区,按月添加分区 会添加到et所在月的最后一天
function add_par(){
st=$1
et=$2
tbname=$3
while [ ${et} -ge ${st} ]
do
pet=$(date --date="+1 month ${et}" +"%Y%m%d")
python a.py ${et} ${pet} ${tbname}
et=$(date --date="1 month ago ${et}" +"%Y%m%d")
done
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 

hive 批量添加,删除分区的更多相关文章

  1. Entity Framework入门教程(12)--- EF进行批量添加/删除

    EF6添加了批量添加/删除实体集合的方法,我们可以使用DbSet.AddRange()方法将实体集合添加到上下文,同时实体集合中的每一个实体的状态都标记为Added,在执行SaveChange()方法 ...

  2. Saltstack sls文件:批量添加删除计划任务

    一.使用sls文件 批量添加计划任务 1.创建salt目录 mkdir /srv/{salt,pillar} 2.再salt目录下创建文件 vim crontab.sls 3.添加内容 # 添加的命令 ...

  3. 批量添加删除Windows server DNS服务 恶意域名 * A记录 指向 127.0.0.1(2019年6月5日更新)

    下载链接:https://pan.baidu.com/s/1OUHyvnIfXYF0PdiT-VRyHw  密码:7gjj 注意!本解决方案在本地的Windows server服务器上把恶意域名指向1 ...

  4. shell脚本 批量添加删除用户

    2021-07-26 1.批量添加用户 # 编写脚本 vi add_student_50.sh # 添加用户组 student groupadd student # 添加用户 student1-stu ...

  5. Shell系列(36)- for循环语法二简介及批量添加删除用户

    for循环语法二 for ((初始值;循环控制条件;变量变化)) do 程序 done 例子 例子-1 求和工具 需求:根据用户输入的数字,求1~输入所有数字的和 脚本: #!/bin/bash re ...

  6. vim ctl+v批量添加/删除

    vim编辑器---批量注释与反注释 在使用vim编写代码的时候,经常需要用到批量注释与反注释一段代码.下面简要介绍其操作. 方法一 块选择模式 插入注释: 用v进入virtual模式 用上下键选中需要 ...

  7. vim 批量添加删除注释

    vim中单行注释只是多行注释的一个特例,这里统一进行多行注释的讲解 (1)添加批量注释 ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I(shift+i) ...

  8. 文件处理工具 gif合成工具 文件后缀批量添加工具 文件夹搜索工具 重复文件查找工具 网页图片解析下载工具等

    以下都是一些简单的免费分享的工具,技术支持群:592132877,提供定制化服务开发. Gif动图合成工具 主要功能是扫描指定的文件夹里的所有zip文件,然后提取Zip文件中的图片,并合成一张gif图 ...

  9. Hive:添加、删除分区

    添加分区: ', p_loctype='MHA'); 已经创建好的分区表: INFO : Loading partition {p_hour, p_city, p_loctype=MHA} INFO ...

随机推荐

  1. 【翻译】Tusdotnet中文文档(3)自定义功能和相关技术

    自定义功能和相关技术 本篇按照如下结构翻译 自定义功能 自定义数据仓库 相关技术 架构和总体概念 自定义数据仓库 tusdotnet附带一个存储库TusDiskStore,它将文件保存在磁盘上的一个目 ...

  2. Python - 注释 - 第四天

    注释 确保对模块, 函数, 方法和行内注释使用正确的风格 Python中的注释有单行注释和多行注释: Python中单行注释以 # 开头,例如: # 这是一个注释 print('Hello Pytho ...

  3. Delphi - TIdFTP 两个重要函数

    TIdFTP 两个重要函数 项目开发过程中发现,直接对于服务器上的文件/路径进行处理,是很危险的事情,因为一旦文件/路径不存在,程序就会抛异常,影响客户体验.所以在对服务器上的文件/路径进行访问之前, ...

  4. Mysql索引底层数据结构与算法

    索引是什么 索引是帮助MySQL高效获取数据的排好序的数据结构. 索引存储在文件里 补充知识: 磁盘存取原理: * 寻道时间(速度慢,费时) * 旋转时间(速度较快) 磁盘IO读取效率: * 单次IO ...

  5. make几个知识点

    即时变量和延时变量 在下面代码中,定义了一个值为x的x变量,以延时变量的方式将它的值赋给y,以即时变量的方式将它的值赋给z. 因为y为延时变量,所以y的取值并不会立即计算,而是在整个文件解析完成之后才 ...

  6. selenium控制超链接在当前标签页中打开或重新打开一个标签页

    selenium控制超链接在当前标签页中打开或重新打开一个标签页 在web页面源码中,控制超链接的打开是在当前标签页还是重新打开一个标签页,是由属性target=“_black”进行控制的.如果还有属 ...

  7. Python可视化查看数据集完整性: missingno库(用于数据分析前的数据检查)

    数据分析之前首先要保证数据集的质量,missingno库提供了一个灵活易用的可视化工具来观察数据缺失情况,是基于matplotlib的,接受pandas数据源 快速开始 样例数据使用 NYPD Mot ...

  8. C# 读取Excel文件数据

    1.首先需要在管理NuGet程序包中添加外部包:ExcelDataReader,添加好后,不要忘记在命名空间那里引用. 2.定义文件流,将文件流传入IExcelDataReader类型的对象excel ...

  9. zabbix3.4配置第三方邮件报警

    废话不多说,直接进入主题. 1.安装mailx [root@localhost ~]#yum install malix -y                        #yum安装malix [ ...

  10. Linux操作系统安全-局域网私有CA(Certificate Authority)证书服务器实战篇

    Linux操作系统安全-局域网私有CA(Certificate Authority)证书服务器实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.试验架构说明 node101 ...