hive外部表改为内部表_Hive内部表和外部表之间的区别?

慕运维1137616

回答您的问题:对于外部表,Hive不会将数据移动到其仓库目录中。如果删除了外部表,那么将删除表元数据,但不会删除数据。对于内部表,Hive将数据移动到其仓库目录中。如果删除了表,则表元数据和数据将被删除。供你参考,内部和外部表之间的区别:对于外部表-外部表将文件存储在HDFS服务器上,但表未完全链接到源文件。如果删除外部表,该文件仍保留在HDFS服务器上。例如,如果您使用HIVE-QL在HIVE中创建一个名为“ table_test”的外部表并将该表链接到文件“ file”,则从HIVE中删除“ table_test”不会从HDFS中删除“ file”。有权访问HDFS文件结构的任何人都可以访问外部表文件,因此需要在HDFS文件/文件夹级别管理安全性。元数据保留在主节点上,从HIVE中删除外部表只会删除元数据,而不会删除数据/文件。对于内部表-根据设置存储在目录中hive.metastore.warehouse.dir, 默认情况下,内部表存储在以下目录“ / user / hive / warehouse”中,您可以通过更新配置文件中的位置来进行更改。删除表将分别从主节点和HDFS中删除元数据和数据。内部表文件安全性仅通过HIVE控制。安全需要在HIVE内部进行管理,可能需要在架构级别(取决于组织)进行管理。Hive可能具有内部或外部表,这是一个会影响数据加载,控制和管理方式的选择。在以下情况下使用EXTERNAL表:该数据还用于Hive之外。例如,数据文件由不锁定文件的现有程序读取和处理。即使在放置DROP TABLE之后,数据也需要保留在底层位置。如果您将多个模式(表或视图)指向单个数据集,或者正在遍历各种可能的模式,则可以应用此方法。Hive不应拥有数据和控件设置,目录等,否则您可能会有另一个程序或进程来执行这些操作。您不是基于现有表(AS SELECT)创建表。在以下情况下使用INTERNAL表:该数据是暂时的。您希望Hive完全管理表和数据的生命周期。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值