微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Databricks 中清空 Delta 表不起作用

如何解决在 Databricks 中清空 Delta 表不起作用

我正在尝试清空 Databricks 中的 Delta 表。但是,不知何故它不起作用,我不明白为什么。这导致我们的存储空间不断增加

我设置了以下表格属性

%sql
ALTER TABLE <table_name> SET TBLPROPERTIES 
("delta.deletedFileRetentionDuration" = "interval 2 hours");

%sql
ALTER TABLE <table_name> SET TBLPROPERTIES 
("delta.logRetentionDuration" = "interval 2 hours");

然后我在 Databricks 笔记本中运行以下真空命令:

%sql
VACUUM db_name.table_name retain 2 hours

或者像这样:

%sql
VACUUM db_name.table_name

运行此命令后,在 dbfs 中显示为要删除的候选文件文件仍然存在。

delta_log json 中的数据示例:

{"remove":{"path":"year=2021/month=05/day=06/part-00001-52dd3cf7-9afc-46b0-9a03-7be3d1ee533e.c000.snappy.parquet","deletionTimestamp" :1622798688231,"dataChange":true}

为了测试目的,我还添加了一些数据并删除了一些数据,因为我读到您需要更改表才能成功执行真空。

在这里遗漏了什么?

解决方法

也试试 checkpointRetentionDuration 。 ALTER TABLE 表名

SET TBLPROPERTIES ('delta.checkpointRetentionDuration' = '7 days')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。