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

   hive的表分区区别于一般的分布式分区(hash分区,范围分区,一致性分区),hive的分区是比较简单的。他是根据hive的表结构,分区的字段设置将数据按目录存放起来,相当于简单的索引
   hive表分区需要在表模式创建的时候指定模式才能使用,他的字段是虚拟的列,不存在表数据中。表分区在表模式创建之后使用之前使用alert table 来添加具体的分区,才能使用
 
添加分区
alert table tableName add
partition(ds='2016-12-16',coutry='beiJing')
location='/opt/hive/beiJing/part2016-12-16'
partition(ds='2016-12-17',coutry='beiJing')
location='/opt/hive/beiJing/part2016-12-17'
删除分区
alert table tableName drop partitionName,partitionName1,partitionName2
例:
alert table tableName drop partition(ds='2016-12-16',coutry='beiJing')
1)删除分区会连元数据和数据一并删除
2)在为表指定具体分区时,在创建表时必须要为表添加对应的模式,否则会抛出异常
3)分区的名称不能与表属性的名称一样
4)还可以创建多个分区,相当于多级索引的功能
 
在使用hsql向表中添加数据,如果hsql中的分区,在hdfs中没有,则hive会根据hsql自动新建分区(可能有的hive版本不支持自动创建分区,这里使用的是2.1.0)
insert overwrite table zhangTest partition(sexual=2) select studentid, sex,address,email from student_3 where sex=0
 
 
删除表
alert table drop tableName
删除表将会数据和元数据一起删除,如果定义了trash,那么删除的数据将会到trash/current目录下 。如果定义了外部表就只会删除元数据,不会删除数据
 
删除和创建视图
create view viewName [{col_name},....]
as select....
目前只有hive6.0之后的版本才有这个功能,视图是只读的,不能对其进行load/insert/alert操作。
视图中有可能引用了order by 或者limit 子句,如果一个查询语句引用了这样一个视图,那么会优先查询视图中的语句,然后返回结果按照视图中的结果返回
drop vieww viewName//删除指定的视图
 
创建或删除函数
creeate temporary funaction fun_name as classs_name//
drop temporary fun_name//
 
展示描述语句(显示语句可以使用正则表达式进行匹配“*”,“|”“[]”)
show tables identifier_with_wildcards
显示表或者分区扩展表
show table extended ..
显示函数
show function "a"

hive 表分区操作的更多相关文章

  1. hive表分区操作

    1.修复表分区命令 msck repair table table_name; 2.添加表分区操作 alter table table_name add partition(month_id='201 ...

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

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

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

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

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

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

  5. spark使用Hive表操作

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

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

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

  7. 【原】创建Hive表,分号分隔符“;”引起的异常

    [障碍再现] 在创建支持Map数据结构的Hive表时,抛出如下异常 hive> create table tab_map(name string,info map<string,strin ...

  8. Hive表分区

    必须在表定义时创建partition a.单分区建表语句:create table day_table (id int, content string) partitioned by (dt stri ...

  9. sqlserver 2008表分区操作

    表分区操作步骤 1.设计表进行分区的方案,水平分区.垂直分区 a.水平切割将减少表的行数,这样可以将历史数据归档,减少表大小,提高访问速度. b.垂直切割将分为主表和从表方式,将主要的列字段存放在主表 ...

随机推荐

  1. C++ 一个例子彻底搞清楚拷贝构造函数和赋值运算符重载的区别

    class TestChild { public: TestChild() { x=; y=; printf("TestChild: Constructor be called!\n&quo ...

  2. mysql中价格用什么数据类型表示最佳?

    DECIMAL和NUMERIC都行DECIMAL和NUMERIC类型在MySQL中视为相同的类型.它们用于保存必须为确切精度的值,例如货币数据.当声明该类型的列时,可以(并且通常要)指定精度和标度:例 ...

  3. JavaScript中map函数和filter的简单举例(转)

    js的数组迭代器函数map和filter,可以遍历数组时产生新的数组,和python的map函数很类似1)filter是满足条件的留下,是对原数组的过滤:2)map则是对原数组的加工,映射成一一映射的 ...

  4. console.log((function f(n){return ((n > 1) ? n * f(n-1) : n)})(5))调用解析

    console.log((function f(n){) ? n * f(n-) : n)})()); 5被传入到函数,函数内部三元计算,5 > 1成立,运算结果是5*f(4),二次运算,5*4 ...

  5. 【poj1737】 Connected Graph

    http://poj.org/problem?id=1737 (题目链接) 题意 求n个节点的无向连通图的方案数,不取模w(゚Д゚)w Solution 刚开始想了个第二类斯特林数,然而并不知道怎么求 ...

  6. 搭建spring mvc项目

    在之前搭建maven项目这篇的基础上继续集成,引入spring mvc支持 一.添加jar包引用 修改pom.xml文件,加入:(其他关联的jar包maven会自动引用) <!-- 项目属性 - ...

  7. 狼人杀BETA阶段计划简介

    狼人杀beta阶段任务与目标 简介 一.前言 狼人杀alpha阶段终于在组团刷夜中结束了,我们取得了一些成绩,同时也暴露了团队的一些问题.但不管怎样,有了在alpha版本中收获的经验,我们将在beta ...

  8. <<< 入侵网站思路

    思路: 以下是入侵网站常用方法: 1.上传漏洞 如果看到:选择你要上传的文件 [重新上传]或者出现“请登陆后使用”,80%就有漏洞了! 有时上传不一定会成功,这是因为Cookies不一样.我们就要用W ...

  9. SQL Server 数据库查找重复记录的几种方法

    http://www.hanyu123.cn/html/c61/6790.html 一.查某一列(或多列)的重复值.(只可以查出重复记录的值,不能查出整个记录的信息) 例如:查找stuid,stuna ...

  10. centos7删除自带openjdk

    一些开发版的centos会自带jdk,我们一般用自己的jdk,把自带的删除.先看看有没有安装java -version [root@java-test-01 ~]# java -version ope ...