计算Hive 1.2.1中已删除分区的静态信息

时间:2019-06-19 06:27:49

标签: hive presto

我具有要从分区中删除数据的功能。如果删除了所有数据,则也要删除该分区。 以下是我们找到的步骤:

  • 搜索基于日期的分区数据。
  • 从分区删除数据
  • 检查是否存在任何记录(如果存在)执行计算统计信息。同样适用于列。
  • 如果没有记录,请删除分区并执行计算统计。

当我们执行选择查询时,它向我显示删除分区的错误。 即使我们称为计算统计信息,仍然表明该分区不存在。 我想念什么吗?

我们尝试通过一些代码更改来计算统计信息,但是它不起作用。以下是我们要执行的步骤:

如果删除了分区,则接下来的两个步骤如下:

ALTER TABLE transactions DROP IF EXISTS PARTITION (eventday=" + eventDay + ")
ALTER TABLE transactions ADD IF NOT EXISTS PARTITION (eventday=" + eventDay + ")

这些步骤每次都会执行:

ANALYZE TABLE transactions PARTITION(eventday=" + eventDay + ") COMPUTE STATISTICS FOR COLUMNS
ANALYZE TABLE transactions PARTITION(eventday=" + eventDay + ") COMPUTE STATISTICS

预期结果是避免此异常,因为该分区不可用 但是对于删除分区的选择查询,则会显示此错误。

  

java.sql.SQLException:查询失败(#20190619_060000_00416_bztpj):分区位置不存在:hdfs:// XXXX / XX / XX

0 个答案:

没有答案