数据集简介
此页面简要介绍 BigQuery 中的数据集。
数据集
数据集包含在特定项目中,数据集是用来组织和控制表和视图访问权限的顶级容器。表或视图必须属于数据集,因此需要创建至少一个数据集,才能将数据加载到 BigQuery 中。
使用 GoogleSQL 时,请使用 projectname.datasetname
格式来完全限定数据集名称;使用 bq 命令行工具时,请使用 projectname:datasetname
格式来完全限定数据集名称。
位置
您在创建数据集时会指定一个位置用于存储 BigQuery 数据。如需查看 BigQuery 数据集位置的列表,请参阅 BigQuery 位置。创建数据集后,该位置无法更改,但您可以将数据集复制到其他位置,也可以手动将数据集移动到其他位置(在其他位置重新创建数据集)。
BigQuery 在包含待查询表的数据集所在的位置处理查询。BigQuery根据服务专用条款将您的数据存储在选定位置。
数据保留
数据集将时间旅行与故障安全期结合使用,以将已删除和修改的数据保留一小段时间,以防您需要恢复数据。如需了解详情,请参阅使用时间旅行和故障安全功能保留数据。
存储空间结算模式
您可以按逻辑字节数或物理(压缩)字节数或者两者的组合来为 BigQuery 数据存储空间付费。您选择的存储结算模式决定了存储价格。您选择的存储空间结算模式不会影响 BigQuery 性能。无论您选择哪种结算模式,您的数据都会以物理字节的形式存储。
您可以在数据集级层设置存储结算模式。如果您在创建数据集时未指定存储结算模式,则系统默认为使用逻辑存储结算。不过,您可以在创建数据集后更改数据集的存储结算模式。如果您更改了数据集的存储结算模式,则必须等待 14 天才能再次更改存储结算模式。
更改数据集的结算模式后,更改需要 24 小时才能生效。 更改数据集的结算模式时,长期存储中的任何表或表分区都不会重置为活跃存储。 更改数据集的结算模式不会影响查询性能和查询延迟时间。
数据集使用时间旅行和故障安全存储进行数据保留。如果您使用物理存储空间结算模式,系统会按活跃存储空间费率单独收取时间旅行和故障安全存储空间费用;但如果您使用逻辑存储空间结算模式,系统会将这两项费用计入基本费率中。您可以修改为数据集使用的时间旅行窗口,以在物理存储空间费用和数据保留之间实现平衡。您无法修改故障安全窗口。如需详细了解数据集数据保留,请参阅使用时间旅行和故障安全功能保留数据。如需详细了解如何预测存储费用,请参阅预测存储结算。
如果组织的任何现有旧版固定费率槽承诺位于数据集所在的区域,则无法将数据集加入物理存储空间结算。这不适用于通过 BigQuery 版本购买的承诺。
外部数据集
除了 BigQuery 数据集之外,您还可以创建外部数据集,它们是指向外部数据源的链接:
请注意,外部数据集也称为联合数据集,这两个术语可以互换使用。
创建后,外部数据集会包含引用的外部数据源中的表。这些表中的数据不会复制到 BigQuery 中,而是在每次使用时进行查询。如需了解详情,请参阅 Spanner 联合查询。
限制
BigQuery 数据集有以下限制:
- 数据集位置只能在创建时设置。创建数据集后,就无法再更改其位置。
- 查询中引用的所有表必须存储在位于同一位置的数据集中。
外部数据集不支持表到期、副本、时间旅行、默认排序规则、默认舍入模式,也不支持启用或停用不区分大小写的表名称的选项。
复制表时,包含源表和目标表的数据集必须位于同一位置。
各个项目的数据集名称不得重复。
如果您更改了数据集的存储空间结算模式,则必须等待 14 天才能再次更改存储空间结算模式。
如果您的任何现有旧版固定费率槽承诺位于数据集所在的区域,则无法将数据集加入物理存储空间结算。
配额
要详细了解数据集配额和限制,请参阅配额和限制。
价格
您无需为创建、更新或删除数据集付费。
要详细了解 BigQuery 价格,请参阅价格。
安全
如需控制对 BigQuery 中数据集的访问权限,请参阅控制对数据集的访问权限。 如需了解数据加密,请参阅静态加密。