Hive内外表的区分方法及内外部差异

Hive内外部区分方法

  • 查看hive元数据:进入mysql中hive元数据库,查看TBLS表,查看对应的表名和表类型;
  • 在hive-cli界面:desc extended tablename,查看TableType,一般在展示结果的最后显示;
  • 在hive-cli界面:desc formatted tablename,一个格式化的信息,查看TableType;

Hive内外表特点

  • 内部表:
    • hive创建表的时候默认是MANAGED_TABLE:内部表
    • hive创建表的时候如果指定location,当进行load操作的时候,hdfs上的原始数据会迁移到location指定的目录下;如果创建表的时候没有指定location,数据会迁移到hive-site.xml中配置好的数据存储路径;
    • hive内部表删除表的时候会将hdfs目录的数据和元数据信息全部删除;
  • 外部表:
    • 创建外部表的时候需要指定location的位置;
    • hive删除表的时候只会讲元数据信息删除,并不会删除HDFS上的数据;
    • 生成环境中,建议使用hive外部表;

相关推荐