估算槽容量要求

在 BigQuery 中购买预留槽时,您必须正确估算特定工作负载所需的槽数。BigQuery 槽 Estimator 可帮助您根据历史性能指标管理槽容量。

您可以将槽 Estimator 用于版本、预留和按需工作负载,以执行以下任务:

对于所选的版本工作负载:

  • 查看过去 30 天的槽容量和利用率数据,并确定槽用量最大时峰值利用率出现的时段。
  • 查看性能类似的承诺槽和自动扩缩槽的费用最优建议。
  • 查看特定版本的当前预留设置。

对于特定的预留工作负载:

  • 查看过去 30 天的槽容量和利用率数据,并确定槽用量最大时峰值利用率出现的时段。
  • 查看作业延迟时间百分位(P90、P95 等)以了解查询性能。
  • 对增加或减少预留槽数上限可能产生的性能影响进行建模。

对于按需结算工作负载:

  • 查看整个组织或单个项目在过去 30 天内的按需槽用量数据。
  • 如果您改用企业版,则查看性能类似的承诺槽和自动扩缩槽的费用最优建议。

使用企业版、企业 Plus 版或按需结算的客户可以使用 BigQuery 槽 Recommender 来查看槽用量、优化承诺和提高性能。如需了解详情,请参阅查看版本槽建议

限制

  • 数据仅限于过去 30 天。
  • 这些模型不包含 ML_EXTERNAL 分配。如果大量槽用于 ML_EXTERNAL 分配,则建模结果不太准确。

准备工作

授予为用户提供执行本文档中的每个任务所需权限的 Identity and Access Management (IAM) 角色。

所需权限

如需将槽估算器用于预留数据,您需要对管理项目拥有以下 IAM 权限:

  • bigquery.reservations.list
  • bigquery.reservationAssignments.list
  • bigquery.capacityCommitments.list

以下每个预定义的 IAM 角色均包含使用槽 Estimator 所需的权限:

  • roles/bigquery.admin
  • roles/bigquery.resourceAdmin
  • roles/bigquery.resourceEditor
  • roles/bigquery.resourceViewer
  • roles/bigquery.user

如需将槽估算器用于按需使用情况数据,您需要在用于管理预留的管理项目上启用 Reservations API。除了上述权限之外,您还需要拥有组织或项目的以下某项 IAM 权限才能查看组织级数据或项目级数据:

  • bigquery.jobs.listExecutionMetadata(只能在组织级层应用)
  • bigquery.jobs.listAll(可以在组织或项目级层应用)

以下每个预定义的 IAM 角色均包含使用槽 Estimator 所需的权限:

  • roles/bigquery.admin
  • roles/bigquery.resourceAdmin
  • roles/bigquery.resourceEditor
  • roles/bigquery.resourceViewer

如需查看承诺槽建议,您还需要拥有查看版本槽建议中所述的权限。

如需详细了解 BigQuery 中的 IAM 角色,请参阅预定义的角色和权限

查看槽容量和利用率

如需查看一段时间内的槽容量和利用率,请转到槽 Estimator:

  1. 在 Google Cloud 控制台中,打开 BigQuery 页面。

    转到 BigQuery

  2. 选择管理项目。

    1. 点击页面顶部的从以下列表中选择:下拉列表。
    2. 在随即显示的从以下列表中选择:窗口中,选择您的项目。
  3. 在导航面板中,转到容量管理部分。

  4. 点击槽 Estimator 标签页。

利用率图表显示过去 30 天的槽容量和利用率,使用每小时粒度进行计算。

Usage and utilization by percentage 标签页显示槽利用率(以槽用量所占槽数上限的百分比表示)。

利用率百分比

Usage and utilization by capacity 标签页显示槽数上限和用量(以绝对值表示)。

用量和容量

您可以从来源下拉菜单中选择一个版本或按需选项,以查看不同范围的统计信息。选择某个版本后,系统会在预留下拉菜单中填充相关预留。

对于按需选项,如果您拥有组织级权限,则可以从建议下拉列表中选择单个项目或整个组织。仅当您具有项目级层权限时,“槽 Estimator”页面才会显示项目级层信息。

槽 Estimator 按需选项

按容量排序用量和利用率标签页的统计信息可能因不同的范围而略有不同:

  • 对于版本来源,它会显示整个版本可用的槽数上限、承诺槽、基准槽数总和、平均槽用量、P99 槽用量和 P50 槽用量。
  • 对于特定预留,它会显示预留槽数上限、基准槽、平均槽用量、P99 槽用量和 P50 槽用量。
  • 对于按需来源,它会显示平均槽用量、P99 槽用量和 P50 槽用量。

对槽性能进行建模

选择预留后,您可以使用槽 Estimator 查看作业性能数据并对更改槽数上限产生的影响进行建模。借助槽 Estimator,您可以对性能在不同容量级别(从观察期内槽数上限最小值的 80% 到当前槽数上限的 150%)的变化情况进行建模。换句话说,选项数量减少不得超过 30 天时间范围内最低容量的 20%,而选项数量增加不得超过当前容量的 50%。

这些模型假定重放过去 30 天的使用模式,除了槽数发生变化之外,其他所有条件保持不变。

估算的性能改进取决于几个因素。最重要的因素是模型中的槽数,以及在高峰时段与正常时段运行的每个百分位存储桶中的作业所占的比例。高峰时段定义为几乎所有槽均被使用的时长。在这些时段运行的作业受槽争用影响最大,这种情况下通过增加槽获得的性能收益最大。因此,根据运行时间的不同,相同的容量增加会对不同的作业存储桶产生不同的影响。

如需对槽性能进行建模,请执行以下步骤:

  1. 在 Google Cloud 控制台中,打开 BigQuery 页面。

    转到 BigQuery

  2. 选择管理项目。

    1. 点击页面顶部的从以下列表中选择:下拉列表。
    2. 在随即显示的从以下列表中选择:窗口中,选择您的项目。
  3. 在导航面板中,转到容量管理部分。

  4. 点击槽 Estimator 标签页。

  5. 预留下拉菜单中,选择特定预留。模型包括预留可在任何给定时间借用的空闲槽数。

  6. 在槽数上限之外还可使用额外槽数的模型下拉列表中,选择一个或多个要建模的槽值,然后点击确定

Changes in job performance with additional slots 下的表显示了过去 30 天的作业性能数据,以及系统估算的增加或减少槽数上限产生的性能变化。对于在所选时段内运行的所有作业,数据按作业时长分组到各百分比中。 由灯泡图标标示的列对应于所选预留的性能增强建议。

槽建模

性能数据按百分位细分。该表最多将数据拆分为 12 个存储桶:P10 到 P90,以及 P95、P99 和 P100。P100 存储桶表示运行时间最长的前 1% 的作业;P99 包括前 96% 到 99%;P95 包括前 91% 到 95%;P90 包括 81% 到 90%;依此类推。根据数据的不同,该表可能会将数据分组到更少的存储桶中。在这种情况下,该表包含的行数也更少。

对于每个百分位存储桶,该表会显示以下信息:

  • 作业时长百分位:此行的百分位存储桶。
  • 平均作业时长:该百分位存储桶中的作业平均运行的时间。
  • 作业数:该百分位存储桶中的作业数。
  • 对于每个模型,则为估算出的该百分位内的作业的平均时长。

该表还列出了每个模型估算的“30 天变化”统计信息。此值是在不同槽容量下处理 30 天历史记录中的作业所花费的总小时数的估算变化。

了解槽用量的建模结果

对于固定容量预留,如果启用了空闲槽共享功能,则该预留中的作业可以从其他预留借用空闲槽。因此,利用率可能会超过所分配槽数的 100%。如果某个预留持续从其他预留借用空闲槽,这可能意味着需要增加该预留的大小。另一方面,如果某个预留很少使用其最大容量,则表示该预留可能过大。

使用自动扩缩功能的预留按以下优先级使用并添加槽:

  1. 基准槽。
  2. 闲置槽共享(如果已启用)。
  3. 自动扩缩槽。

如果自动扩缩预留持续用尽自动扩缩槽,这可能意味着需要提高最大预留槽数。如需了解如何查看槽用量,请参阅查看管理资源图表

价格

您可以免费使用槽 Estimator。