【问题标题】:How to get expired table data in bigquery, If the expired time is more than two days?如何在bigquery中获取过期表数据,如果过期时间超过两天?
【发布时间】:2019-12-20 00:21:15
【问题描述】:

我有一个每天在 bigquery 中获取表数据的过程。我需要一些旧表数据,但不幸的是它们现在已经过期,而且它们的过期时间超过两天。我知道如果表数据被删除并且删除时间少于两天,我们可以取回表数据,但是如果表过期并且时间超过2天,是否有可能?

我尝试使用 2 天前的时间戳并尝试使用 bq 工具获取它,但我需要 2 天前删除的数据。

【问题讨论】:

    标签: google-cloud-platform google-bigquery


    【解决方案1】:

    Bigquery 表不一定会在 2 天内过期。您可以将它们设置为您喜欢的任何内容: https://cloud.google.com/bigquery/docs/managing-tables#updating_a_tables_expiration_time

    一旦它们过期,就无法检索表,除非您有快照。在这种情况下,您可以恢复快照并使用它来获取所需的数据。请参阅有关如何执行此操作的 SO 问题: How can I undelete a BigQuery table?

    【讨论】:

    • 对不起,这里的混乱,我知道我们可以根据我们的方便设置过期日期,但我想在这里说明的是我的桌子在两天前过期了,我想要那个表数据回来。正如你上面提到的,这是不可能的。
    • 问支持,如果没有新的同名表创建,他们可以恢复(不知道最终删除前的保留时间)
    【解决方案2】:

    GCP 支持在这里!

    实际上,如果您阅读@niczky12 链接的SO question 并如documentation 中所述:

    可以在删除后 2 天内恢复表。通过利用快照装饰器功能,您可以在删除事件之前引用表,然后复制它。请注意以下几点:

    • 如果您已经在同一数据集中创建了同名的新表,则无法引用已删除的表。

    • 如果您删除了包含该表的数据集,并且您已经创建了一个同名的新数据集,则您无法引用已删除的表。

    此时,很遗憾无法恢复已删除的数据。

    【讨论】:

      【解决方案3】:

      在此处添加以供将来的搜索者使用。我能够按照下面的说明在介质上恢复 7 天前仍然存在的数据。

      实际上,当我尝试一个未来太远的日期时,UI 中的 Cloud Shell 会返回最大返回时间。他们回馈的最长时间是 7 天(以 EPOCH 毫秒计)。只需在下面的转换器中输入并添加 1 或 2 小时,你应该会很好。不要获取控制台提供的确切副本,因为它在打印时已经过时。

      并确保将未来的表设置为永不删除! (或您知道的日期)。这可以在表详细信息中找到,也可以在用于 bigquery 的 console.cloud 环境中的数据集级别上找到。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-11
        • 1970-01-01
        • 1970-01-01
        • 2021-11-20
        • 1970-01-01
        相关资源
        最近更新 更多