首页 > 代码库 > Hive创建外部表以及分区
Hive创建外部表以及分区
创建带分区的外部表
创建外部表的优点是数据能够随时从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创建外部表以及分区
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。