zoukankan      html  css  js  c++  java
  • hive小知识(分区&分桶;内部表&外部表)

    (一)内部表&外部表


    未被external修饰的是内部表(managed table),被external修饰的为外部表(external table);
    区别:
    内部表数据由Hive自身管理,外部表数据由HDFS管理;
    内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定;
    删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;
    对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;)

    (二)分区和分桶

    分区和分桶的层级关系:若特别大就需要分区,若分区后还觉得大就分桶;

    分区针对的是数据的存储路径;分桶针对的是数据文件。

    (1)分区:

    分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。

  • 相关阅读:
    form表单的两种提交方式,submit和button的用法
    ORACLE SEQUENCE用法(转)
    hive优化
    Hive分区表创建、分类
    Hive体系结构
    Hive入门指南
    mysql统计表中条目个数的方法举例
    mysql如何快速创建相同结构的表
    VMware Workstation下VMnet1等虚拟网卡与主机网卡之间的关系
    linux命令详解——lsof
  • 原文地址:https://www.cnblogs.com/837634902why/p/11460136.html
Copyright © 2011-2022 走看看