• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Hive创建外部表以及分区

mysql 搞代码 4年前 (2022-01-09) 26次浏览 已收录 0个评论

创建带分区的外部表 创建外部表的好处是数据可以随时从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 <p style="color:transparent">本文来源gao!daima.com搞$代!码网</p>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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Hive创建外部表以及分区

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址