概念

本页面介绍与 BigQuery Reservations 相关的概念。

Reservations 概念。

管理项目

BigQuery Reservations 可帮助您安全地集中管理整个 Google Cloud 组织的 BigQuery 资源。通过选择单个 Google Cloud 项目作为您的管理项目,即可实现这一点。

要选择管理项目,请在该项目上启用 BigQuery Reservations API。

此项目创建并维护 BigQuery Reservations 资源的所有权,这也是这些资源的主要结算来源。然后,您可以使用分配将这些资源分享给组织中的所有其他项目。Google 建议您创建一个带有描述性名称的新项目。

对于使用管理项目所有的预留的任何项目,您无需为分析(即,运行查询)付费,但需要继续为存储单独付费。

承诺使用合约

容量承诺是指购买计算容量,并且具有一定的最短承诺使用期(例如,一个月)。BigQuery 中的计算容量以的形式衡量,槽是一组资源,包括动态数量的 CPU、RAM 和分布式内存。在承诺使用合约期限结束之前无法删除容量承诺。

通过承诺使用合约,可为您的组织采用固定价格。如需了解详情,请参阅 BigQuery 固定价格

行为

  • 最小承诺规模为 500 个槽,承诺能以 500 个槽为单位递增,没有上限。
  • 容量承诺是区域性资源。在一个区域购买的承诺使用合约无法在任何其他区域使用,承诺使用合约也不能在区域之间移动。
  • 承诺使用合约无法升级。如需增加您的净承诺容量,您需要购买额外的合约。
  • 从承诺使用合约购买成功之时起,您需要按秒支付费用。

属性

  • 槽计数(创建时指定):
    • 此承诺使用合约中的槽数。
  • 承诺使用合约方案(创建时指定):
    • 承诺使用合约的期限。
  • 状态(由系统生成;创建时不指定):
    • 待处理:请求的容量正在等待预配。
    • 活跃:请求的容量已预配,可立即使用。
  • 承诺使用合约结束时间(由系统基于承诺使用合约方案生成)。
  • 自动续订(仅适用于年度方案):
    • 在此初始结束时间过后,承诺使用合约结束时间延长一年。

承诺使用合约方案

BigQuery 提供月度和年度承诺使用合约方案:

  • 月度承诺使用合约:
    • 承诺使用合约生效后 30 天内无法取消。
    • 30 天后,您可以随时取消,您只需要为承诺使用合约处于活跃状态的秒数付费。
    • 例如:
      • 如果您在 10 月 5 日 6:00:00 购买了一份承诺使用合约,则系统将从那一刻起向您收费。
      • 在 11 月 4 日 6:00:00 之前,您无法将其取消。
      • 如果您在 11 月 5 日 7:10:10 取消合约,则需要支付 30 天外加 1 天 1 小时 10 分 10 秒的费用(10 月 5 日 6:00:00 - 11 月 5 日 7:10:10)。
    • 如果您不取消,我们会继续向您收费。
  • 年度承诺使用合约:
    • 承诺使用合约生效后 365 天内无法取消。
    • 在承诺使用合约结束日期之后,年度合约可续订。未续订的承诺使用合约将转至月度合约,您可以随时将其取消。
    • 例如:
      • 如果您在 2019 年 10 月 5 日 6:00:00 购买了一份承诺使用合约,则系统将从那一刻起向您收费。
      • 在 2020 年 10 月 4 日 6:00:00 之前,您无法将其取消或续订(2020 年是闰年)。
      • 如果您在 2020 年 10 月 4 日 6:00:00 之前选择自动续订,那么在 2020 年 10 月 4 日 6:00:00,您的承诺使用合约将续订一年。
      • 如果您在 2020 年 10 月 4 日 6:00:00 之前选择不自动续订,那么在 2020 年 10 月 4 日 6:00:00,您的承诺使用合约将转至月度合约,需要按月支付费用,您可以随时将其取消。

预留

借助预留,您可以跨工作负载、团队和部门拆分容量承诺。每个预留都是独立的 BigQuery 槽池,它具备一项额外优化,即空闲容量可在预留之间无缝共享。

首次购买槽后,系统会自动创建名为 default 的预留。用户可以创建更多预留供自己使用,并专门为其分配槽。预留自动使用来自其他预留的空闲槽。通过将 ignore_idle_slots 设置为 true,预留可以停用此功能,并且仅使用为其明确预配的槽。

项目、文件夹和组织可分配给这些预留,以便它们使用槽进行查询。将多个项目分配给预留时,槽首先在项目之间均匀分布,然后在项目中的作业内分布。

预留。

未分配的槽

未分配的槽是指已被承诺使用但未分配给任何特定预留的槽。未分配的槽不会浪费,而是由您的预留共用,在这种情况下,ignore_idle_slots 不设置为 false。

预留中的槽共享

BigQuery 调度程序强制在预留中的项目之间均匀共享槽,然后在给定项目的作业内均匀共享。调度程序提供最终公平性,因此,某些作业可能会在短期内获得不成比例的槽,但调度程序最终会纠正此错误。目标是尝试在对逐出正在运行的任务过于严格 - 导致浪费槽时间 - 和过于宽松 - 导致包含长时间运行的任务的作业获得不成比例的槽时间 - 之间找到中等程度。

如果某个重要作业经常受到该公平性政策的影响,那么请考虑创建带有保证槽数的额外预留(请参阅工作负载管理)。然后,该作业可分配给新预留,从而为其提供最少数量的槽。

分配

分配用于将项目、文件夹和组织分配给预留。分配给预留的项目使用该预留来处理作业。预留分配是预留的子资源。

可为两种作业类型进行分配:

  • 作业类型为 QUERY 的分配决定了查询的预留分配,包括 SQL、DDL、DML 和 BigQuery 机器学习查询。
  • 作业类型为 PIPELINE 的分配指示批量加载和提取作业应使用预留。

预留分配可以在项目、文件夹或组织级层进行。文件夹或组织级层的分配决定了该文件夹或组织中的所有项目均使用特定预留。最低级别的分配会替换较高级别的分配,因此,特定项目可替换默认的组织分配。

预留分配包含以下元素:

  • 获分配者:可使用预留中分配的容量运行查询的预留用户。这可以是项目、文件夹或组织。
  • 作业类型:该分配用于的作业类型。

后续步骤