gpt4 book ai didi

hadoop - hive外部表有什么意义?

转载 作者:可可西里 更新时间:2023-11-01 16:49:26 26 4
gpt4 key购买 nike

第 1 步。我创建了一个配置单元外部表“test”,并给出了一些位置,例如“/user/hive2”。
第 2 步。我在“测试”表中加载一个文件。
第 3 步。我做了一个 select * from test。我得到了我的记录。
第四步,我通过drop table test来drop table。
第 5 步。我确实从测试中选择 *,但未找到表。

那么使用external table有什么意义呢?如果删除了“测试”表的元数据并且我无法在其上查询任何内容,那么我们为什么要使用外部表?

最佳答案

@Nishant:在本论坛中提出一般性问题之前,您应该做一些功课。无论如何,这里有一个快速链接,用于详细说明一般的配置单元外部表 - External Hive Tables

当您删除内部表时,它会删除数据,同时也会删除元数据。您将无法再访问数据

当您删除外部表时,它只会删除元数据。这意味着 hive 现在不知道该数据。它不触及数据本身。您现在可以访问数据并执行任何操作(如果需要)。当您需要为数据进站然后将整个数据转储到托管表中以进行配置单元操作时,外部表也是首选

此外,这是另一个 stackoverflow 的注释线程

在以下情况下使用外部表:

  1. 数据也在 Hive 之外使用。例如,数据文件由不锁定文件的现有程序读取和处理。
  2. 即使在 DROP TABLE 之后,数据也需要保留在底层位置。如果您将多个模式(表或 View )指向单个数据集,或者如果您正在遍历各种可能的模式,这可能适用。
  3. 您想使用自定义位置,例如 ASV。
  4. Hive 不应拥有数据和控制设置、目录等,您有另一个程序或进程可以执行这些操作。
  5. 您不是基于现有表 (AS SELECT) 创建表。

在以下情况下使用内部表:

  1. 数据是临时的。
  2. 您希望 Hive 完全管理表和数据的生命周期。

您希望 Hive 完全管理表和数据的生命周期。

希望对您有所帮助。

关于hadoop - hive外部表有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34073762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com