0
点赞
收藏
分享

微信扫一扫

HIVE内部表和外部表


内部表又叫做管理表 (Managed/Internal Table),创建表时不做任何指定,默认创建的就是内部表。想要创建外部表 (External Table),则需要使用 External 进行修饰。 内部表和外部表主要区别如下:

内部表

外部表

数据存储位置

内部表数据存储的位置由 hive.metastore.warehouse.dir 参数指定,默认情况下表的数据存储在 HDFS 的 ​​/user/hive/warehouse/数据库名.db/表名/​​ 目录下

外部表数据的存储位置创建表时由 ​​Location​​ 参数指定;

导入数据

在导入数据到内部表,内部表将数据移动到自己的数据仓库目录下,数据的生命周期由 Hive 来进行管理

外部表不会将数据移动到自己的数据仓库目录下,只是在元数据中存储了数据的位置

删除表

删除元数据(metadata)和文件

只删除元数据(metadata)

  • 建表时带有external关键字为外部表,否则为内部表
  • 内部表和外部表建表时都可以自己指定location
  • 删除表时,外部表不会删除对应的数据,只会删除元数据信息,内部表则会删除
  • 其他用法是一样的
举报

相关推荐

0 条评论