创建自定义费用控制措施

如果您有多个 BigQuery 项目和用户,可以通过申请自定义配额(指定每天处理的查询数据量限制)来管理费用。

通过为查询数据创建自定义配额,您可以在项目级层或用户级层控制费用。

  • 项目级自定义配额会限制该项目中所有用户的总用量。

  • 用户级自定义配额会分别应用于项目中的每个用户或服务帐号

如需了解当前的按需查询价格,请参阅价格页面

如何设置或修改自定义配额

要设置自定义配额或修改现有自定义配额,请访问 Google Cloud Console 页面。配额更改会在几分钟内生效。

要更改配额,您必须拥有 serviceusage.quotas.update 权限。以下预定义的 Cloud IAM 角色中包含 serviceusage.quotas.update 权限:

系统如何强制执行自定义配额

在您设置自定义配额后,BigQuery 会在您超出此配额时返回错误。

如果您超出项目级自定义配额,BigQuery 会返回以下 usageQuotaExceeded 错误:

Custom quota exceeded: Your usage exceeded the custom quota for
QueryUsagePerDay, which is set by your administrator. For more information,
see https://cloud.google.com/bigquery/cost-controls

如有用户超出用户级自定义配额,BigQuery 同样会返回 usageQuotaExceeded 错误,只是给出不同的错误消息:

Custom quota exceeded: Your usage exceeded the custom quota for
QueryUsagePerUserPerDay, which is set by your administrator. For more
information, see https://cloud.google.com/bigquery/cost-controls

如果您在查询中使用 _PARTITIONTIME_TABLE_SUFFIX 过滤条件,可能会意外收到 quotaExceeded 错误。目前,BigQuery 在检查您的查询以了解您是否会超出自定义配额时,会忽略查询中的 _PARTITIONTIME_TABLE_SUFFIX 过滤条件。

示例

假设您为含有 10 个用户(其中一个是服务帐号)的项目设置了以下自定义配额:

  • 项目级:每天 50 TB
  • 用户级:每天 10 TB

下表列出了这 10 个用户在一天中运行完查询后的剩余配额。

用量 剩余配额
10 个用户每个查询了 4 TB 项目级:剩余 10 TB。
用户级:每个用户剩余 6 TB,但总共最多只能再查询 10 TB。
服务帐号又另外查询了 6 TB 项目级:剩余 4 TB。
用户级:该服务帐号无法再使用 BigQuery。其他每个用户剩余 6 TB,但总共最多只能再查询 4 TB。
一个用户又另外查询了 4 TB 项目级:剩余 0 TB。
用户级:每个用户剩余 TB 数各不相同,但由于已超出项目级配额,所有用户都无法再使用 BigQuery。

由于已没有剩余配额,因此该项目中的任何人均无法再使用 BigQuery。

常见问题解答

客户可以自行预配自定义配额吗?

可以。客户可以在 Google Cloud Console 页面上自行预配配额。

如何了解自己的自定义配额水平?

您可以在 Google Cloud Console 页面上查看配额水平。

系统何时重新补充我的自定义配额?

每日配额会在美国太平洋时间零点重置。

如果我超出了自定义配额,但想重置该配额,该怎么做?

您可以通过另一个可访问您的数据集并且未设置自定义配额或尚未超出该配额的项目,来运行查询。

自定义配额是主动式还是被动式?换句话说,如果我有 10 TB 的配额,可以运行 11 TB 的查询吗?

自定义配额是主动式的,因此配额为 10 TB 时,无法运行 11 TB 的查询。