更新商業智慧預留項目

更新現有商業智慧保留項目的大小。BigQuery BI Engine 會使用 BI 預留量,在記憶體內快速執行分析。

程式碼範例

Node.js

在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Node.js 設定說明操作。詳情請參閱 BigQuery Node.js API 參考說明文件。

如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。

const {ReservationServiceClient} =
  require('@google-cloud/bigquery-reservation').v1;
const {status} = require('@grpc/grpc-js');

const client = new ReservationServiceClient();

/**
 * Updates a BI reservation.
 * A singleton BI reservation always exists with a default size of 0. To reserve
 * BI capacity, you must update the reservation to an amount greater than 0. To
 * release BI capacity, set the reservation size to 0.
 *
 * @param {string} projectId Google Cloud Project ID, for example 'example-project-id'
 * @param {string} location Google Cloud Location, for example 'US'
 */
async function updateBiReservation(projectId, location = 'US') {
  const biReservation = {
    name: client.biReservationPath(projectId, location),
    // Set the reservation size in bytes. This example sets it to 2 GiB.
    size: 2 * 1024 * 1024 * 1024,
  };
  const updateMask = {
    paths: ['size'],
  };

  const request = {
    biReservation,
    updateMask,
  };

  try {
    const [updatedReservation] = await client.updateBiReservation(request);
    console.log(`Updated BI reservation: ${updatedReservation.name}`);
    console.log(`  Size: ${updatedReservation.size} bytes`);
  } catch (err) {
    if (err.code === status.NOT_FOUND) {
      console.log(
        `BI Reservation not found for project ${projectId} in location ${location}.`,
      );
    } else {
      console.error('Error updating BI reservation:', err);
    }
  }
}

Python

在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 BigQuery Python API 參考說明文件。

如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。

from google.api_core import exceptions
from google.cloud import bigquery_reservation_v1
from google.protobuf import field_mask_pb2

client = bigquery_reservation_v1.ReservationServiceClient()


def update_bi_reservation(project_id: str, location: str):
    """Updates a BI reservation.

    A singleton BI reservation always exists with default size 0.
    To reserve BI capacity, update the reservation to an amount
    greater than 0. To release BI capacity, set the reservation size to 0.

    Args:
        project_id: The Google Cloud project ID.
        location: The geographic location of the BI reservation, for example, us-central1.
    """

    name = client.bi_reservation_path(project=project_id, location=location)
    bi_reservation = bigquery_reservation_v1.types.BiReservation()
    bi_reservation.name = name

    # The size of a BI reservation is measured in bytes. 2 GB is used here.
    bi_reservation.size = 2 * 10**9
    update_mask = field_mask_pb2.FieldMask(paths=["size"])

    try:
        response = client.update_bi_reservation(
            bi_reservation=bi_reservation, update_mask=update_mask
        )
        print(f"Updated BI reservation: {response.name}")
        print(f"New size is {response.size} bytes.")
    except exceptions.NotFound:
        print(
            f"BI reservation not found for project '{project_id}' in location '{location}'."
        )

後續步驟

如要搜尋及篩選其他 Google Cloud 產品的程式碼範例,請參閱Google Cloud 範例瀏覽工具。