You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查并强制清理Databricks Unity Catalog中软删除的托管表?

Unity Catalog托管表物理文件清理相关问题解答

1. 识别待物理删除的表或存储路径

  • 命令方式:使用SHOW RECYCLE BIN命令,可直接列出所有进入回收站、等待物理删除的托管表,输出包含表名、删除时间、保留到期时间等信息。如果要查看单张表的存储路径,可通过回收站表名(格式通常为catalog.schema.table__purged__<UUID>)执行DESCRIBE EXTENDED <回收站表名>,结果中的Location字段即为该表底层文件的当前存储路径。
  • 系统表查询:查询system.information_schema.recycle_bin系统表,该表包含回收站中所有对象的详细信息,包括catalog_name、schema_name、table_name、drop_time、retain_until(保留到期时间)以及storage_location(存储路径)字段,可通过SQL筛选指定范围的待删除对象:
    SELECT catalog_name, schema_name, table_name, drop_time, retain_until, storage_location
    FROM system.information_schema.recycle_bin
    WHERE object_type = 'TABLE';
    

2. 立即永久删除剩余文件

  • 命令方式
    • 若表尚未删除,直接使用DROP TABLE <表名> PURGE命令,删除时跳过回收站,直接永久删除底层物理文件,不触发保留期机制。
    • 若表已进入回收站,可通过PURGE RECYCLE BIN <表名>命令永久删除单张表,或使用PURGE RECYCLE BIN清空回收站中所有对象,执行后对应底层文件会被立即删除,无法再通过UNDROP恢复。
  • UI操作方式:在Databricks数据浏览器(Data Explorer)中,进入对应Catalog的Recycle Bin标签页,选中目标表后点击Permanently Delete按钮,即可完成永久删除操作。

关于TRUNCATE+VACUUM无效的说明

TRUNCATE仅清空托管表的当前数据版本,旧版本数据仍处于Delta Lake的版本管理中;而VACUUM RETAIN 0 HOURS仅清理当前存在的表的旧版本文件,无法作用于已删除表进入回收站后的存储路径,因此无法达到彻底删除文件的效果。

内容的提问来源于stack exchange,提问作者Bill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 12:27:26