【问题标题】:Is there a way to restore a BigQuery table to an earlier state?有没有办法将 BigQuery 表恢复到更早的状态?
【发布时间】:2021-07-20 17:04:05
【问题描述】:

是否可以将 Bigquery 表恢复到更早的状态,例如时间戳状态?

根据https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax, 他们提到他们可以返回表格的历史版本。 " 以下查询返回表在绝对时间点的历史版本。

选择 * 从T FOR SYSTEM_TIME AS OF '2017-01-01 10:00:00-07:00'; ”。

如果 BigQuery 中提供了恢复语句,那么我想我可以捕获 SYSTEM_TIME 并将表恢复到该时间戳。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    其中一个选项是删除当前表并使用CREATE TABLE t AS SELECT * FROM t FOR SYSTEM_TIME AS OF '2017-01-01 10:00:00-07:00' 创建一个新表

    【讨论】:

    • 感谢谢尔盖的友好回复。然后过程将是 1. 使用上述语法从旧时间戳创建一个临时表,2. 删除原始表。 3. 将临时表重命名为原始表。但我对这个过程的担忧是我们需要 2xN 大小来处理大小为 N 的原始表。我的问题是: 1. 有没有办法只删除 T1 和 T2 之间的增量行(其中 T1 是要返回的旧时间戳,T2 是当前时间戳)?也许使用 rowid 什么的?
    • 当然,BigQuery 有一个DELETE 语句。您也可以尝试删除一个表,然后recovering it from a snapshot
    猜你喜欢
    • 2020-10-17
    • 2014-04-25
    • 2016-05-11
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多