表快照简介

本文档介绍 BigQuery 表快照。本文是介绍如何使用 BigQuery 表快照的一组文档中的第一篇,包括如何创建、恢复、更新、查询表快照以及获取有关表快照的信息。本文档集适合熟悉 BigQuery 和 BigQuery 的用户。

表快照

BigQuery 表快照保留表(称为基表)在特定时刻的内容。您可以保存当前表的快照,也可以创建表在过去七天内任何时刻的快照。表快照可以具有到期时间;您可以配置一个时间段,从表快照创建开始计算的该时间段后,BigQuery 会删除表快照。您可以像查询标准表一样查询表快照。表快照是只读的,但您可以从表快照创建(restore恢复)标准表,然后可以修改恢复的表。

使用表快照的好处包括:

  • 将记录保留七天以上。使用 BigQuery 时间旅行功能,您只能访问七天之前或更近几天的表数据。使用表快照,您可以根据需要从指定的时间点保留表数据。

  • 最大程度地减少存储费用。BigQuery 仅存储快照与其基表之间不同的字节,因此表快照使用的存储空间通常少于表的完整副本。

如果您需要表的轻量级可变副本,请考虑使用表克隆

表快照的访问权限控制

表快照的访问权限控制与表的访问权限控制类似。如需了解详情,请参阅使用 IAM 控制对资源的访问权限

查询表快照

您可以采用与查询其他类型的 BigQuery 表相同的方式查询表快照的数据。如需了解详情,请参阅查询 BigQuery 数据

存储费用

存储费用适用于表快照,但 BigQuery 仅对表快照中尚未计入另一个表的数据收费:

  • 创建表快照时,表快照最初不产生任何存储费用。

  • 如果在创建表快照后向基表添加了新数据,则您无需为在表快照中存储该数据付费。

  • 如果在基表中更改或删除了同时也存在于表快照中的数据,则会产生以下费用:

    • 您需要为已更改或已删除数据的表快照存储付费。

    • 如果基表按物理存储计费,则时间旅行和故障安全费用不会计入基表。删除快照后,您需要支付时间旅行和故障安全费用。

    • 如果有多个快照包含已更改或已删除的数据,则您只需为最早的快照使用的存储空间付费。

下图显示了基表和表快照的存储费用之间的差异:

表快照结算示例

如需了解详情,请参阅 BigQuery 存储价格

限制

  • 表快照必须与其基表位于同一区域中并且在同一组织下。

  • 表快照为只读状态;除非通过快照创建标准表然后更新数据,否则您无法更新表快照中的数据。您只能更新表快照的元数据,例如其说明、失效日期和访问权限政策。

  • 由于时间旅行的限制为七天,因此您只能截取七天前或更近几天的表数据快照。

  • 您无法截取视图或具体化视图的快照。

  • 无法截取外部表的快照。

  • 创建表快照时,无法覆盖现有表或表快照。

  • 如果为包含写入优化存储空间(流式传输缓冲区)中的数据的表创建快照,则写入优化存储空间中的数据不会包含在表快照中。

  • 如果为包含时间旅行中的数据的表创建快照,则时间旅行中的数据不会包含在表快照中。

  • 如果为设置了分区过期时间的分区表创建快照,则分区过期时间信息不会保留在快照中。快照表改为使用目标数据集的默认分区到期时间。如需保留分区过期时间信息,请改为复制表

  • 您不能复制表快照。

配额和限制

如需了解适用于表快照的配额和限制,请参阅表快照配额和限制

后续步骤