我找到了很多关于如何删除数据库及其所有表的答案,但没有任何关于为什么每个表需要约 3-4 秒才能删除的答案,似乎是在 SERIAL 中(一个接一个)。
我有一个数据库,其中有 2,414 个外部表指向镶木地板位置,并且DROP DATABASE <db> CASCADE;
可能需要 1-2 小时才能删除数据库的元数据。
在一个单独的会话中,我可以反复SHOW TABLES IN <deleted DB>;
观察桌子的数量以每 3-4 秒大约 1 个的速度下降。在会话释放删除之前这需要 2 小时以上,并允许我们用新数据库替换数据库......
504 rows selected (0.29 seconds)
...
503 rows selected (0.17 seconds)
...
502 rows selected (0.29 seconds)
...
是什么让 Hive 花了这么长时间?有没有我可以用来让它更快的配置?有没有办法告诉我在那段时间它在做什么?
如果它更常见,我认为其他人会遇到这个问题,所以这让我觉得我有一个设置可以调整来解决这个问题(?)......
在删除的数据库下似乎没有删除镶木地板,因此它似乎与 hdfs/parquet 文件没有任何关系,除非出于任何原因删除外部表检查它们...
任何想法为什么它会这么慢?