场景是:我在 databricks 目录中的许多表上运行了一些有缺陷的转换代码。我需要将整个目录/数据库恢复到某个时间点,而不是单独恢复每个表。 databricks 中提供此功能吗?
我知道你可以在 Snowflake 中轻松完成此操作,但是 databricks 是否具有相同的功能?
Databricks 保存的是表级别的版本,只能恢复表,不能恢复整个数据库。
您可以运行下面的脚本来一一恢复所有表:
restore_timestamp = "2024-06-30 00:00:00"
db_name = "dwh"
tables = spark.sql(f"show tables in {db_name}").collect()
for t in tables:
table_name = t["tableName"]
print(table_name)
restore_sql = f"RESTORE TABLE {db_name}.{table_name} TO TIMESTAMP AS OF '{restore_timestamp}';"
spark.sql(restore_sql)