创建自定义费用控制措施

本文档介绍如何设置或修改自定义配额以控制费用。如需了解 BigQuery 分析师如何估算和控制费用,请参阅控制费用

如果您有多个 BigQuery 项目和用户,可以通过申请自定义配额指定每天处理的查询数据量限额来管理费用。 每日配额将在太平洋时间午夜重置。

自定义配额是主动式的,因此配额为 10 TB 时,无法运行 11 TB 的查询。 通过为查询数据量创建自定义配额,您可以在项目级别或用户级别控制费用。

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

  • 用户级自定义配额会分别应用于项目中的所有用户和服务账号

所需角色

如需获得更改配额所需的权限,请让管理员向您授予项目的 Quota Administrator (role/servicemanagement.quotaAdmin) IAM 角色。 如需详细了解如何授予角色,请参阅管理访问权限

此预定义角色包含更改配额所需的 serviceusage.quotas.update 权限。

您也可以使用自定义角色或其他预定义角色来获取此权限。

设置或修改自定义配额

您可以为 Google Cloud 控制台的配额页面上显示的任何配额设置自定义配额或修改现有自定义配额。如需了解详情,请参阅查看和管理配额。当您申请更低的配额时,更改将在几分钟内生效。(如果您申请了更高的配额,则请求会进入审批流程,这可能需要更多时间。如需了解详情,请参阅申请更高配额限制

您可以在 Google Cloud 控制台页面上查看您的自定义配额级别。在您设置自定义配额后,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

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

示例

假设您为含有 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。

后续步骤