snowflake-cloud-data-platform - 如何使用特定的事务 ID 编写代码以进行时间旅行
问题描述
我想在雪花上使用时间旅行功能并恢复原始表格。
我已使用以下命令删除并创建了表:
DROP TABLE "SOCIAL_LIVE"
CREATE TABLE "SOCIAL_LIVE" (...)
我想在放下桌子之前回到原来的桌子。
我使用了以下代码(将交易 ID 隐藏为“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”)
Select "BW"."PUBLIC"."SOCIAL_LIVE".* From "BW"."PUBLIC"."SOCIAL_LIVE";
select * from SOCIAL_LIVE before(statement => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
收到一条错误消息:
Statement xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx cannot be used to specify time for time travel query.
我们怎样才能回到原来的表并在雪花上恢复它?
解决方案
该文档指出:
删除表后,创建具有相同名称的表会创建该表的新版本。以前表的删除版本仍然可以使用以下方法恢复:
将表的当前版本重命名为不同的名称。
使用 UNDROP TABLE 命令恢复以前的版本。
如果您需要更多信息,此页面很有用:
https://docs.snowflake.net/manuals/sql-reference/sql/drop-table.html#usage-notes
不过,您需要取消删除表才能访问该数据。时间旅行并不仅仅靠名字来维护。因此,一旦您删除并重新创建了表,新表就有了自己的新时间旅行。
推荐阅读
- android - 我们可以有一个后台 vpn 应用程序(没有主动通知)吗?
- python - 在python中的每个列表列表中移动特定值(基于该值)
- http - 在 Angular 应用程序中拦截 Mapbox Geowebcache 切片请求
- linux - 用户可以创建文件或文件夹,但限制在 centos-8 中删除
- reactjs - 如何使用钩子停止 React 重新渲染,以冻结某个未使用但昂贵的 UI 部分
- java - 当高负载的tomcat线程突然增加并在几分钟后挂起
- swift - 使用自定义 NSTextBlock 保存和粘贴属性字符串
- python - 如何在预提交挂钩之前运行 shell 脚本
- ios - 在 iOS 13 中更改主题时边框颜色不会改变
- c# - 捕获异常的推荐方法是什么