hive mysql 外部表_Hive创建外部表以及分区

创建带分区的外部表 创建外部表的好处是数据可以随时从hdfs中挂载进表中 使用分区的好处是可以缩短查询范围 下面的例子展示了如何创建外部表 CREATE EXTERNAL TABLE my_daily_report( last_update string, col_a string, col_b string, col_c string, col_d

创建带分区的外部表

创建外部表的好处是数据可以随时从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

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值