Heim > Datenbank > MySQL-Tutorial > Hauptteil

Hive创建外部表以及分区

WBOY
Freigeben: 2016-06-07 15:56:44
Original
1624 Leute haben es durchsucht

创建带分区的外部表 创建外部表的好处是数据可以随时从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';
Nach dem Login kopieren

挂载分区目录

alter table my_daily_report add partition (par_dt='20140530') location '/user/chenshu/data/daily/my_daily_report/20140530';
Nach dem Login kopieren

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

删除分区

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

alter table my_daily_report drop partition (par_dt='20140530')
Nach dem Login kopieren

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

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

用分区查询

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

select count(*) from my_daily_report where par_dt='20140531'; 
Nach dem Login kopieren
推荐文章:  

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage