预留 BI Engine 容量

当您使用 BigQuery BI Engine 时,您要支付的费用取决于您为项目购买的 BI Engine 容量。预留按 Gb/小时收费,区域的价格为按需价格。如果您使用基于容量的承诺,则根据有效承诺,您将有资格享受最高 100% 的折扣。如需了解详情,请参阅基于容量的价格

您可以通过创建预留来购买 BigQuery BI Engine 容量。系统会将预留附加到您在创建预留时识别的项目。BI Engine 会使用此容量来确定可以缓存的数据量。 如需详细了解 BI Engine 的预留大小上限,请参阅配额和限制

所需的角色

如需获得创建和删除预留所需的权限,请让您的管理员为您授予项目的 BigQuery Resource Admin (roles/bigquery.resourceAdmin) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

创建预留

如需预留按需 BI Engine 容量,请按照以下步骤操作:

控制台

  1. 在 BigQuery 页面上的管理中,进入 BI Engine 页面。

    进入 BI Engine

  2. 点击 创建预留

  3. 创建预留页面上,第 1 步是:

    • 验证您的项目名称。
    • 选择您的位置。该位置应该与您要查询的数据集的位置相匹配。
    • 将滑块调整到要保留的内存容量。以下示例会将容量设置为 2 GB。当前最大值为 250 GB。

      BI Engine 容量位置

  4. 点击下一步

  5. (可选)输入首选表的表 ID,然后点击下一步

  6. 第 3 步是查看您的预留详情,然后点击创建

确认预留后,详细信息会显示在预留页面上。

SQL

使用 ALTER BI_CAPACITY SET OPTIONS DDL 语句

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 在查询编辑器中,输入以下语句:

    ALTER BI_CAPACITY `PROJECT_ID.LOCATION_ID.default`
    SET OPTIONS (
      size_gb = VALUE,
      preferred_tables = <ARRAY<STRING>>);

    请替换以下内容:

    • PROJECT_ID:可从 BI Engine 加速中获益的项目的可选 ID。如果省略,则系统会使用默认项目。
    • LOCATION_ID:需要缓存数据的位置,前缀为 region-。示例:region-usregion-us-central1
    • VALUE:BI Engine 容量的预留 INT64 大小(以 GB 为单位,1 到 250 GB)。设置 VALUE 会替换现有值(如果有)。设为 NULL 会清除该选项的值。
    • STRING:应该应用加速的表的可选列表。格式:project.dataset.table or dataset.table。如果省略该项目,则使用默认项目。

  3. 点击 运行

如需详细了解如何运行查询,请参阅运行交互式查询

bq

使用 bq update 命令并提供数据定义语言 (DDL) 语句作为查询参数:

bq --project_id=PROJECT_ID update \
    --bi_reservation_size=SIZE \
    --location=LOCATION \
    --reservation

请替换以下内容:

  • PROJECT_ID:您的项目的 ID
  • SIZE:预留内存容量(以 GB 为单位,1 到 250 GB)
  • LOCATION:您要查询的数据集的位置

估算和测量容量

如需估算 BI Engine 预留的容量要求,请按照以下步骤操作:

  1. 查看 TABLE_STORAGE 视图信息架构以确定表的逻辑存储大小,并将其用于初始 BI Engine 预留。例如,对于针对包含 200GiB 数据的表的查询,我们建议您从 200GiB BI Engine 预留开始。仅使用部分可用字段或分区的选择性更强的查询可以从较小的预留大小开始。
  2. 运行需要优化并且在 BI Engine 预留所在的项目和区域中创建的所有查询。目标是估算您需要优化的工作负载。增加的负载需要更多内存来处理查询。收到查询后,数据会加载到 BI Engine 中。
  3. 将 BI Engine RAM 预留与 Cloud Monitoring bigquerybiengine 指标中的 reservation/used_bytes(使用的字节数)进行比较。
  4. 根据结果调整预留容量。在许多用例中,较小的预留就可以加快大多数查询的速度,从而节省资金和资源。如需详细了解 BI Engine 的监控,请参阅 BI Engine 监控

以下因素会影响 BI Engine 预留大小:

  • BI Engine 仅缓存处理查询所需的经常访问的列和行。
  • 预留用完后,BI Engine 会尝试分流最久未使用的数据,以便为新查询腾出容量。
  • 如果多个计算密集型查询使用同一数据集,BI Engine 会加载额外的数据副本以重新分布并优化响应时间。

删除预留

如需删除容量预留,请按照以下步骤操作:

控制台

  1. 在 BigQuery 页面上的管理中,进入 BI Engine 页面。

    进入 BI Engine

  2. 预留部分,找到您的预留。

  3. 操作列中,点击预留右侧的 图标,然后选择删除

  4. “删除预留吗?”对话框中,输入删除,然后点击删除

SQL

设置有关 BI Engine 容量的选项。

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 在查询编辑器中,输入以下语句:

    ALTER BI_CAPACITY `PROJECT_ID.LOCATION_ID.default`
    SET OPTIONS (
      size_gb = 0);

    请替换以下内容:

    • PROJECT_ID:可从 BI Engine 加速中获益的项目的可选 ID。如果省略,则系统会使用默认项目。
    • LOCATION_ID:需要缓存数据的位置,前缀为 region-。示例:region-usregion-us-central1

    当您删除项目中的所有容量预留时,该项目会停用 BI Engine。

  3. 点击 运行

如需详细了解如何运行查询,请参阅运行交互式查询

bq

使用 bq update 命令并提供 DDL 语句作为查询参数。

bq --project_id="PROJECT_ID" \
update --reservation
    --bi_reservation_size=0 \
    --location=LOCATION

请替换以下内容:

  • PROJECT_ID:您的项目的 ID
  • LOCATION:您要查询的数据集的位置

查看资源元数据

您可以通过查询 INFORMATION_SCHEMA获取有关 BI Engine 容量的信息。BigQuery 提供以下 INFORMATION_SCHEMA 视图

后续步骤