DELTA table 回滚到之前的版本

DELTA table rollback to previous version

有没有简单的方法可以选择以前的 delta table 版本作为 current/working 版本?

我们可以指定一个版本作为“current/latest”版本,而不是通过 overwrite/truncate 创建另一个版本吗?

这个操作更像undo,完全去掉了一些步骤,让数据回到了上一个stage。然后在做select * from MYTABLE时这个MYTABLE可以指向恢复后的版本。

SQL 或 PySpark 都适用!

您可以使用

查找 delta table 的历史记录
DESCRIBE HISTORY yourTblName

它将为您提供 table 的历史记录,其中包括 Version, TimesStamp, UserId/Name ,Operation

要获取以前的版本,您可以执行几个步骤,如

SELECT max(version) -1 as previousVersion  FROM (DESCRIBE HISTORY yourTblName)

它会给你以前的版本(你可以把它保存在一些变量中)然后在Version As Of

中使用它
select * from yourTblName Version as of 7

你会有以前版本的记录。

恢复数据table到早期版本:

RESTORE TABLE yourTblName  TO VERSION AS OF 7

Databricks 文档:https://docs.databricks.com/delta/delta-utility.html#restore-a-delta-table-to-an-earlier-state