使用 Reservations 管理工作负载

本页面介绍如何使用 BigQuery Reservations 来帮助您管理 BigQuery 工作负载。

选择结算模式

您可以在任何时间选择切换按需结算或固定费率结算模式,或者还可以选择混搭使用这两种模式。这两种价格模式互为补充。按需结算模式更高效,而固定费率可预测性更好。

预留权衡。

选择固定费率结算时,请考虑以下因素:

  • 费用。Google 建议您的每月分析支出应在最低 BigQuery 固定费率承诺(目前为每月 100 个槽)的范围。
  • 效率。如果您看重成本效率,请考虑使用按需使用,这样可以按查询量付费。
  • 可预测性。如果您看重每月费用的可预测性,则可以首选固定费率结算模式,因为每月只需支付一笔固定的费用。
  • 资源。固定费率和按需结算模式在提供多少容量方面存在差异。如需了解详情,请参阅估算要购买的槽数

预留决策。

作为新客户,建议您先选择固定费率。您可以随时查看相应的按需结算费用,并可以随时切换适合您的模式。

此外,您还可以在确定稳态工作负载配置之前,先尝试使用灵活槽为您的组织测试固定费率结算模式的价格和性能。灵活槽是一种特殊的承诺类型:

  • 承诺期限只有 60 秒。
  • 此期限过后,您可以随时取消灵活槽。
  • 您只需按照部署了的承诺秒数付费。

您可以结合使用灵活槽承诺和其他类型的承诺。灵活槽非常适用于每次持续几分钟到几天的短期用例:

  • 规划重大日历活动,例如报税季、黑色星期五、热门媒体活动和视频游戏发布。
  • 响应具有较高数据分析需求的周期性时段,例如周一早上。
  • 完成数据仓库评估,并拨号购买最佳数量的槽以供使用。

您还可以混搭使用按需结算模式和固定费率结算模式。例如:

  • 对于定期数据处理和 ELT 等可预测的工作负载使用按需结算。
  • 对于临时分析和数据科学工作负载使用固定费率结算。

您可以在一个地区使用固定费率,在另一个地区使用按需结算。默认情况下,所有项目都使用按需结算模式。在同一区域内,您可以将项目、文件夹或组织分配到预留,从而选择固定费率结算。例如,如果您在美国多区域购买了槽承诺并为您的组织分配了默认预留,则您的组织将在美国多区域中按固定费率结算,但在所有其他区域中仍按需结算。

在同一区域内,您可以通过将项目明确分配到预留来组合使用固定费率和按需结算。任何未分配给预留的项目仍会采取按需结算。您还可以通过分配预留 ID none 来明确将项目分配为使用按需结算。如果您将文件夹或组织分配到预留,但希望该文件夹或组织中的部分项目使用按需结算,这将非常有用。如需了解详情,请参阅将项目分配给 None

采用按需结算方式的项目所使用的容量独立于您承诺的容量。这些项目不会影响您承诺的容量的可用性。

创建管理项目

在您创建承诺和预留时,它们与一个 Google Cloud 项目相关联。此项目管理 BigQuery Reservations 资源,并且是这些资源的主要结算来源。此项目不一定得是 BigQuery 作业所在的项目。

Google 建议您为 Reservations 资源创建专用项目。此项目称为“管理”项目,因为它将承诺的结算和管理集中到一处。为此项目提供一个描述性名称,例如 bq-COMPANY_NAME-admin。然后创建一个或多个单独的项目来保存 BigQuery 作业。

管理项目按承诺的槽付费。使用槽的项目需要支付存储费用,但无需支付槽费用。您可以购买多种方案(例如,每月和年度方案),您可以将槽放入同一个管理项目中。

我们建议为所有预留创建一个管理项目。使用单个管理项目可简化管理结算和分配槽的方式。我们还建议您仅在管理项目上启用 BigQuery Reservations API,以使所有承诺都通过此项目进行管理。

估算要购买的槽数

BigQuery 的架构支持以更多的资源进行线性扩缩。根据工作负载的实际情况,增加容量可能会为您带来更多益处。因此,选择最佳的槽购买数取决于您对性能、吞吐量和效用的要求。

您可以利用灵活槽来试用最佳的槽配置。例如,您可以依次使用 500 个槽、1000 个槽、1500 个槽和 2000 个槽来测试工作负载,并观察这些槽数量对性能的影响。

您还可以检查项目当前的槽使用量以及您每月希望支付的费用。采用按需结算模式的工作负载目前存在 2000 个槽的软上限,但请务必使用作业的 INFORMATION_SCHEMA、Cloud Logging、Jobs API 或 BigQuery 审核日志检查您的项目目前实际使用了多少个槽。如需了解详情,请参阅直观显示可用的槽和分配的槽

槽使用时间表。

使用预留管理工作负载和部门

您可以使用 BigQuery Reservations 来隔离您针对各种工作负载、团队或部门的承诺容量,具体方法是创建更多预留并将项目分配到这些预留。预留是一个独立的资源库,它具备一项额外的优势,即可以利用整个组织的闲置容量。

例如,假设您拥有 1000 个槽的总承诺容量和 3 种工作负载类型:数据科学、ELT 和 BI。

  • 您可以创建包含 500 个槽的 ds 预留,并将所有相关的 Google Cloud 项目分配给 ds 预留。
  • 您可以创建包含 300 个槽的 elt 预留,并将用于 ELT 工作负载的项目分配给 elt 预留。
  • 您可以创建包含 200 个槽的 bi 预留,并将与 BI 工具关联的项目分配给 bi 预留。

删除承诺。

您可以选择为各个团队或部门创建预留,而不是跨工作负载划分容量。

管理不同地区中的预留

预留是区域级资源。在一个区域购买的槽和创建的预留不能在其他任何区域中使用。项目、文件夹和组织都可以分配到一个地区中的预留,还可在其他地区以按需结算的方式运行。为了管理其他地区中的预留,您必须在 BigQuery Reservations 页面中更改地区。

  1. 在 BigQuery 控制台中,点击预留
  2. 点击位置选择器,然后选择您要管理预留的位置。 选择另一地区。
  3. 选择地区后,您可以购买槽、创建预留以及将项目分配到预留。

适用于复杂组织的 BigQuery Reservations 预留

BigQuery Reservations 预留是一种组织范围的资源。 您集中购买承诺的容量,以便在整个组织内使用。您可以要求各个部门或分部通过购买承诺的容量并在整个部门范围或分部内分配该容量来自行管理 BigQuery 预留。管理项目与 Cloud Billing 帐号关联,该帐号按容量计费。

您可以为您的每个部门或分部使用独特的 Google Cloud 组织。在这种情况下,您为每个组织定义管理项目,并从管理项目中管理该组织的 BigQuery Reservations 预留。组织之间不会共享承诺或闲置的容量。

空闲槽和未分配的槽仅会在同一管理项目中创建的预留之间共享。如果您使用多个管理项目,则不会在不同管理项目的多个预留之间共享槽。