首页 > 其他 > 详细

Hive创建外部表以及分区

时间:2014-06-01 14:04:59      阅读:826      评论:0      收藏:0      [点我收藏+]

创建带分区的外部表

创建外部表的好处是数据可以随时从hdfs中挂载进表中

使用分区的好处是可以缩短查询范围

下面的例子展示了如何创建外部表

CREATE EXTERNAL TABLE my_daily_report(
    last_update string,
    col_a string,
    col_b string,
    col_c string,
    col_d string,
    col_e string,
    col_f string,
    col_g string,
    col_h string,
    col_i string,
    col_j string)
    PARTITIONED BY (
    par_dt string) location ‘/user/chenshu/data/daily‘;


挂载分区目录

alter table my_daily_report add partition (par_dt=‘20140530‘) location ‘/user/chenshu/data/daily/my_daily_report/20140530‘;


上面的例子只使用了一个分区,其实还可以使用多个分区,比如一个分区管理日报表,这个分区对应一个目录,在这个目录下还可以有小时分区,用不同的目录存放不同小时的报表。这时,分区之间的关系就是目录树的关系。


删除分区

当然也要提供一个删除part_dt=‘20140530‘分区的方法:

alter table my_daily_report drop partition (par_dt=‘20140530‘)

drop partition会将分区以及数据都删除,drop partition_spec会只删除分区元数据,不删除数据。

注意,HIVE中没有delete from语句,如果仅仅是删除某个分区里所有语句,刚好这里可以使用drop partition来实现。


用分区查询

既然有了分区,如果紧要查找该分区上的数据,在where中指定分区目录作为查询条件,要快很多

select count(*) from my_daily_report where par_dt=‘20140531‘;



推荐文章:

http://my.oschina.net/leejun2005/blog/82065

Hive创建外部表以及分区,布布扣,bubuko.com

Hive创建外部表以及分区

原文:http://blog.csdn.net/sheismylife/article/details/27874943

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!