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

如何用Databricks SQL命令删除外部Delta表的日志文件?

解决Databricks外部Delta表日志文件无法删除的问题

你在Databricks中创建了存储在S3后端的外部Delta表,想要通过Databricks SQL命令彻底删除该表,包括S3存储路径下的所有数据文件和Delta日志文件,但执行现有操作后日志文件仍残留。这是因为默认情况下,VACUUM不会清理最新的Delta事务日志,即使表已被删除。要彻底删除日志,需要开启专属参数配合操作,具体步骤如下:

完整SQL操作流程

  1. 关闭保留期检查并开启日志删除权限:
SET spark.databricks.delta.retentionDurationCheck.enabled = false;
SET spark.databricks.delta.vacuum.deleteLogs.enabled = true;
  1. 删除外部表(若尚未执行删除):
DROP TABLE IF EXISTS dev_catal_nm.dbx.table_name1;
  1. 执行彻底清理S3路径的VACUUM命令:
VACUUM 's3://my_bucket_test/poc/table_name1' RETAIN 0 HOURS;

补充说明

  • spark.databricks.delta.vacuum.deleteLogs.enabled = true是核心参数,它允许VACUUM清理Delta日志文件,默认该参数为关闭状态,这也是你之前操作仅删除数据文件的原因。
  • 正式删除前,建议先执行DRY RUN预览待删除文件,确认无误后再执行实际清理:
VACUUM 's3://my_bucket_test/poc/table_name1' RETAIN 0 HOURS DRY RUN;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 21:52:34