預留 BI Engine 容量

您可建立以 GiB 記憶體為單位的 BI Engine 預留項目,藉此購買 BI Engine 容量。保留項目會附加至您在建立保留項目時指定的專案和區域。BI Engine 會使用這項容量快取資料。如要瞭解 BI Engine 的預留空間大小上限,請參閱「配額與限制」。

使用 BI Engine 時,系統會依據您為專案購買的 BI Engine 容量收費。系統會根據區域定價,以每 GiB/小時為單位收取 BI Engine 預留項目費用,詳情請參閱 BI Engine 定價

必要的角色

如要取得建立及刪除預留位置所需的權限,請要求管理員授予您專案的 BigQuery 資源管理員 (roles/bigquery.resourceAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

建立保留項目

如要預留 BI Engine 以量計價容量,請按照下列步驟操作:

主控台

  1. 在 BigQuery 頁面的「管理」中,前往「BI Engine」頁面。

    前往 BI Engine

  2. 點按 「建立預留項目」

  3. 在「建立預訂」頁面中,針對「步驟 1」執行下列操作:

    • 確認專案名稱。
    • 選擇所在位置。位置應與您要查詢的資料集位置一致。
    • 調整滑桿,設定要保留的記憶體容量。 以下範例將容量設為 2 GB。目前上限為 250 GB。您可以要求提高專案的預留容量上限。大多數地區都可增加預訂量,處理時間為 3 天到一週。

      BI Engine 容量位置

  4. 點選「下一步」

  5. 偏好資料表 (選用)。偏好資料表可讓您將 BI Engine 加速功能限制在特定資料表集。其他所有資料表則使用一般 BigQuery 運算單元。

    在「Table 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:可選用的專案 ID,該專案將受益於 BI Engine 加速功能。如果省略,系統會使用預設專案。
    • LOCATION_ID:需要快取資料的位置,並以 region- 為前置字元。例如:region-usregion-us-central1
    • VALUE:BI Engine 容量的保留項目大小 (以 GB 為單位),範圍為 1 到 250 GB。INT64您可以要求提高專案的預留容量上限。大多數地區都提供預訂量增加服務,處理時間為 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 天到一週。
  • 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"]);

    舉例來說,如果查詢一組資料表,這些資料表總共包含 200 GiB 的資料,最佳做法是先預留 200 GiB 的 BI Engine 容量。如果查詢的選擇性較高,只使用可用欄位或分區的子集,則可從較小的預留大小開始。

  2. 執行所有需要最佳化的查詢,這些查詢必須與 BI Engine 預留項目位於相同專案和區域。目標是估算需要最佳化的工作負載。負載增加會導致處理查詢時需要更多記憶體。收到查詢後,資料會載入 BI Engine。

  3. 比較 BI Engine RAM 保留項目與使用的位元組數,reservation/used_bytes 位於 Cloud Monitoring bigquerybiengine 指標中。

  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 of Capacity」(容量 (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:可選用的專案 ID,該專案將受益於 BI Engine 加速功能。如果省略,系統會使用預設專案。
    • LOCATION_ID:需要快取資料的位置,並加上 region- 前置字元。例如:region-usregion-us-central1
    • VALUE:BI Engine 容量的預留大小 (以 GB 為單位),範圍為 1 至 250 GB。INT64您可以要求增加專案的預留容量上限。大多數地區都提供預訂量增加服務,處理時間為 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. 在「Delete reservation?」(要刪除預訂項目嗎?) 對話方塊中輸入「Delete」(刪除),然後按一下「DELETE」(刪除)

SQL

設定 BI Engine 容量的選項。

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。

    前往 BigQuery

  2. 在查詢編輯器中輸入下列陳述式:

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

    取代下列項目:

    • PROJECT_ID:可選用的專案 ID,該專案將受益於 BI Engine 加速功能。如果省略,系統會使用預設專案。
    • 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 查詢的結果大致如下:

圖片

查看預訂變更

如要查看特定預訂的變更記錄,請使用 INFORMATION_SCHEMA.BI_CAPACITY_CHANGES 檢視畫面 (透過 SQL 查詢)。例如:

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

後續步驟