zoukankan      html  css  js  c++  java
  • Hive创建外部表以及分区

    版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/sheismylife/article/details/27874943

    创建带分区的外部表

    创建外部表的优点是数据能够随时从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

  • 相关阅读:
    BZOJ3813 奇数国
    BZOJ2735 世博会
    BZOJ2081 [Poi2010]Beads
    BZOJ3276 磁力
    BZOJ2054 疯狂的馒头
    BZOJ2610 [Poi2003]Monkeys
    BZOJ2428 [HAOI2006]均分数据
    BZOJ2120 数颜色
    BZOJ2527 [Poi2011]Meteors
    补比赛——牛客OI周赛9-普及组
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10605572.html
Copyright © 2011-2022 走看看