【问题标题】:Does dropping a partition from hive table drops it's subpartitions?从配置单元表中删除分区是否会删除它的子分区?
【发布时间】:2018-07-05 13:10:16
【问题描述】:

我有一个外部 hive 表,它有诸如 year = 2017、year = 2018 之类的分区,并且在其中我还有 year = 2017 和 year = 2018 的每个月的分区。

我的问题是:

  1. 如果我删除分区 year = 2017,是否会删除 year = 2017 的所有月份分区?

  2. 如果是内部表会发生什么?

【问题讨论】:

    标签: hive hive-partitions


    【解决方案1】:

    是的,如果是内部表,hive 会在 year=2017 内删除所有月份分区/子分区,包括文件系统 (HDFS..etc) 中的数据

    如果是外部表,数据不会从文件系统 (HDFS) 中删除,但 hive 会从 hive 表元数据中删除分区信息

    【讨论】:

    • 谢谢@Shu。还有一个疑问是,如果我直接删除 2017 HDFS 目录而不在 hive CLI 上运行 drop partition 命令,这些更改是否也会自动反映在表中?它还会在 hive meratada 商店中引起任何类型的问题(我猜这是德比)。
    • 如果我们直接删除 hdfs,即使表是外部/内部表也没关系,直到我们从 hive 运行 msck repair table/drop partition 语句,hive 才知道删除的目录。问题将是作业将无法找到目录(已在 HDFS 中删除)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2017-09-17
    • 2021-09-12
    相关资源
    最近更新 更多