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

  • 相关阅读:
    haproxy 2.5 发布
    cube.js sql 支持简单说明
    基于graalvm 开发一个cube.js jdbc driver 的思路
    apache kyuubi Frontend 支持mysql 协议
    oceanbase 资源池删除说明
    基于obd 的oceanbase 扩容说明
    jfilter一个方便的spring rest 响应过滤扩展
    cube.js schema 定义多datasource 说明
    typescript 编写自定义定义文件
    meow 辅助开发cli 应用的工具
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10084555.html
Copyright © 2011-2022 走看看