gpt4 book ai didi

hadoop - 在Apache Hive中,具有大量外部表的DB花费太长时间来进行DROP CASCADE

转载 作者:行者123 更新时间:2023-12-02 20:20:47 24 4
gpt4 key购买 nike

我发现了如何删除数据库及其所有表的许多答案,但是关于为什么要删除每个表需要约3-4秒的时间却似乎一无所获,似乎是在SERIAL中(一个接一个)。

我有一个数据库,其中有2,414个外部表指向 Parquet 位置,而DROP DATABASE <db> CASCADE;可能需要1-2小时才能删除数据库的元数据。

在一个单独的 session 中,我可以重复SHOW TABLES IN <deleted DB>;并查看表的计数以每3-4秒大约1的速度下降。在 session 释放删除内容之前,这可能需要2个小时以上的时间,并允许我们用新的数据库替换数据库。

504 rows selected (0.29 seconds)
...
503 rows selected (0.17 seconds)
...
502 rows selected (0.29 seconds)
...

Hive花了这么长时间?
有可以用来使其更快的配置吗?
有什么办法可以告诉我这段时间的情况吗?

我认为如果其他问题更普遍,其他人也会遇到此问题,因此,我认为自己可以在某个地方进行调整以解决此问题(?)...

Parquet 似乎并没有在删除的数据库下删除,因此,它似乎与hdfs / parquet文件没有任何关系,除非由于任何原因删除外部表对其进行检查...

任何想法为什么会这么慢?

最佳答案

AFAIK,它必须删除所有引用。它可以是外部表,但是如果有很多来自metastore的分区,统计信息等。另外,如果它有很多行,则需要获取特定的锁。
您可能需要检查元存储库(mysql或等效库),并查看是否可以定期引入任何索引或收集统计信息。

关于hadoop - 在Apache Hive中,具有大量外部表的DB花费太长时间来进行DROP CASCADE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60672510/

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