表快照简介
本文档介绍 BigQuery 表快照。本文是介绍如何使用 BigQuery 表快照的一组文档中的第一篇,包括如何创建、恢复、更新、查询表快照以及获取有关表快照的信息。本文档集适合熟悉 BigQuery 和 BigQuery 表的用户。
表快照
BigQuery 表快照保留表(称为基表)在特定时刻的内容。您可以保存当前表的快照,也可以创建表在过去七天内任何时刻的快照。表快照可以具有到期时间;您可以配置一个时间段,从表快照创建开始计算的该时间段后,BigQuery 会删除表快照。您可以像查询标准表一样查询表快照。表快照是只读的,但您可以从表快照创建(恢复)标准表,然后可以修改恢复的表。
使用表快照的好处包括:
将记录保留七天以上。使用 BigQuery 时间旅行功能,您只能访问七天之前或更近几天的表数据。使用表快照,您可以根据需要从指定的时间点保留表数据。
最大程度地减少存储费用。BigQuery 仅存储快照与其基表之间不同的字节,因此表快照使用的存储空间通常少于表的完整副本。
如果您需要表的轻量级可变副本,请考虑使用表克隆。
表快照的访问权限控制
表快照的访问权限控制与表的访问权限控制类似。如需了解详情,请参阅使用 IAM 控制对资源的访问权限。
查询表快照
您可以采用与查询其他类型的 BigQuery 表相同的方式查询表快照的数据。如需了解详情,请参阅查询 BigQuery 数据。
存储费用
存储费用适用于表快照,但 BigQuery 仅对表快照中尚未计入另一个表的数据收费:
创建表快照时,表快照最初不产生任何存储费用。
如果在创建表快照后向基表添加了新数据,则您无需为在表快照中存储该数据付费。
如果在基表中更改或删除了同时也存在于表快照中的数据,则会产生以下费用:
您需要为已更改或已删除数据的表快照存储付费。
如果基表按物理存储计费,则时间旅行和故障安全费用不会计入基表。删除快照后,系统会向您收取时间旅行和故障安全功能费用。
如果有多个快照包含已更改或已删除的数据,则您只需为最早的快照使用的存储空间付费。
当您在同一区域内或从一个区域或多区域复制表快照或克隆时,系统会创建表的完整副本。这会产生额外的存储费用。
下图显示了基表和表快照的存储费用之间的差异:
如需了解详情,请参阅 BigQuery 存储价格。
限制
表快照必须与其基表位于同一区域中并且在同一组织下。如果您选择位于其他区域的数据集,BigQuery 会在该区域的目标数据集中创建表的副本。
表快照为只读状态;除非通过快照创建标准表然后更新数据,否则您无法更新表快照中的数据。您只能更新表快照的元数据,例如其说明、失效日期和访问权限政策。
由于时间旅行的限制为七天,因此您只能截取七天前或更近几天的表数据快照。
您无法截取视图或具体化视图的快照。
无法截取外部表的快照。
创建表快照时,无法覆盖现有表或表快照。
如果为包含写入优化存储空间(流式传输缓冲区)中的数据的表创建快照,则写入优化存储空间中的数据不会包含在表快照中。
如果为包含时间旅行中的数据的表创建快照,则时间旅行中的数据不会包含在表快照中。
如果为设置了分区过期时间的分区表创建快照,则分区过期时间信息不会保留在快照中。快照表改为使用目标数据集的默认分区到期时间。如需保留分区过期时间信息,请改为复制表。
配额和限制
如需了解适用于表快照的配额和限制,请参阅表快照配额和限制。