预留 BI Engine 容量

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

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

所需的角色

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

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

创建预留

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

控制台

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

    进入 BI Engine

  2. 点击 创建预留

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

    • 验证您的项目名称。
    • 选择您的位置。该位置应该与您要查询的数据集的位置相匹配。
    • 将滑块调整到要预留的内存容量。以下示例将容量设置为 2 GB。当前上限为 250 GB。您可以申请增加项目的最大预留容量。大多数区域都可以增加预订,并且可能需要 3 天到 1 周的时间来处理。

      BI Engine 容量位置

  4. 点击下一步

  5. 首选表(可选)。借助首选表,您可以将 BI Engine 加速限制为一组指定的表。所有其他表都使用常规 BigQuery 槽。

    表 ID 字段中,指定您要使用 PROJECT.DATASET.TABLE 模式加速的表。

    替换以下内容:

    • PROJECT:您的 Google Cloud 项目 ID
    • DATASET:数据集
    • TABLE:要加速的表
  6. 点击下一步

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

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

SQL

使用 ALTER BI_CAPACITY SET OPTIONS DDL 语句创建或修改 BI Engine 预留。

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

    转到 BigQuery

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

    ALTER BI_CAPACITY `PROJECT_ID.LOCATION_ID.default`
    SET OPTIONS (
      size_gb = VALUE,
      preferred_tables =
        ['TABLE_PROJECT_ID.DATASET.TABLE1',
        'TABLE_PROJECT_ID.DATASET.TABLE2']);

    请替换以下内容:

    • PROJECT_ID:可从 BI Engine 加速中获益的项目的可选 ID。如果省略,则系统会使用默认项目。
    • LOCATION_ID:需要缓存数据的位置,前缀为 region-。示例:region-usregion-us-central1
    • VALUE:BI Engine 容量的预留 INT64 大小(以 GB 为单位,1 到 250 GB)。您可以申请增加项目的最大预留容量。大多数区域都支持增加预订量,并且处理时间可能需要 3 天到 1 周。设置 VALUE 会替换现有值(如果有)。设为 NULL 会清除该选项的值。
    • TABLE_PROJECT_ID.DATASET.TABLE:应该应用加速的引用表的可选列表。格式:TABLE_PROJECT_ID.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)。您可以申请增加项目的最大预留容量。大多数区域都可以增加预订,并且可能需要 3 天到 1 周的时间来处理。
  • LOCATION:您要查询的数据集的位置

估算和测量容量

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

  1. 查看 TOTAL_LOGICAL_BYTES 视图以确定表的逻辑大小,并将其用于初始 BI Engine 预留。例如:

    SELECT
      SUM(TOTAL_LOGICAL_BYTES) / 1024.0 / 1024.0 / 1024.0 AS logical_size_gb
    FROM
      `region-us.INFORMATION_SCHEMA.TABLE_STORAGE`
    WHERE
      TABLE_NAME IN UNNEST(["Table1", "Table2"]);

    例如,对于针对包含总计 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. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 在 BigQuery 导航菜单中,点击 BI Engine

    如果您的项目已针对首选表进行配置,则首选表列中会显示一组表。

    图片

  3. 在要修改的预留所在的行上,点击操作列中的图标,然后选择修改

  4. 容量 (GiB) 滑块调整到要预留的内存容量。点击下一步

  5. 首选表:如需在现有预留中指定一组表进行加速,请在表 ID 字段中,使用以下模式指定您要加速的表:PROJECT.DATASET.TABLE

    替换以下内容:

    • PROJECT:您的 Google Cloud 项目 ID
    • DATASET:数据集
    • TABLE:要加速的表

    更改最长可能需要十秒才能生效。只有首选表列表中的表才能使用 BI Engine 加速功能。

    点击下一步

  6. 确认您修改后的预订。如果您同意,请点击更新

SQL

您可以使用 ALTER BI_CAPACITY SET OPTIONS DDL 语句创建或修改 BI Engine 预留。

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

    转到 BigQuery

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

    ALTER BI_CAPACITY `PROJECT_ID.LOCATION_ID.default`
    SET OPTIONS (
      size_gb = VALUE,
      preferred_tables =
        [`TABLE_PROJECT_ID.DATASET.TABLE1`,
        `TABLE_PROJECT_ID.DATASET.TABLE2`]);

    请替换以下内容:

    • PROJECT_ID:可从 BI Engine 加速中获益的项目的可选 ID。如果省略,则系统会使用默认项目。
    • LOCATION_ID:需要缓存数据的位置,前缀为 region-。示例:region-usregion-us-central1
    • VALUE:BI Engine 容量的预留 INT64 大小(以 GB 为单位,1 到 250 GB)。您可以申请增加项目的最大预留容量。大多数区域都支持增加预订量,并且处理时间可能需要 3 天到 1 周。设置 VALUE 会替换现有值(如果有)。设为 NULL 会清除该选项的值。
    • TABLE_PROJECT_ID.DATASET.TABLE:应该应用加速的首选表的可选列表。格式:TABLE_PROJECT_ID.DATASET.TABLE or DATASET.TABLE。如果省略该项目,则使用默认项目。

  3. 点击 运行

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

删除预留

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

控制台

  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:您要查询的数据集的位置

验证 BI Engine 信息

您可以通过查询 INFORMATION_SCHEMA获取有关 BI Engine 容量的信息。

验证预订状态

如需验证预留(包括一组首选表)的状态,请使用 SQL 查询查看 INFORMATION_SCHEMA.BI_CAPACITIES 视图。例如:

SELECT
  *
FROM
  `<PROJECT_ID>.region-<REGION>.INFORMATION_SCHEMA.BI_CAPACITIES`;

在 Google Cloud 控制台中,此 SQL 查询的结果类似于以下内容:

图片

查看预订更改

如需查看特定预留的更改历史记录,请通过 SQL 查询使用 INFORMATION_SCHEMA.BI_CAPACITY_CHANGES 视图。例如:

SELECT
  *
FROM
  `<PROJECT_ID>.region-<REGION>.INFORMATION_SCHEMA.BI_CAPACITY_CHANGES`
ORDER BY
  change_timestamp DESC
LIMIT 3;

在 Google Cloud 控制台中,此 SQL 查询的结果类似于以下内容:

包含 change_timestamp project_id project_number 的结果行

后续步骤