更新预留

更新现有的 BigQuery 预留,以更改其属性,例如槽容量。

代码示例

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 an existing reservation resource.
 * A reservation is a mechanism used to guarantee slots to users. This sample
 * shows how to change the slot capacity of a reservation.
 * @param {string} projectId Google Cloud project ID. for example 'example-project-id'.
 * @param {string} location Google Cloud location. for example 'us-central1'.
 * @param {string} reservationId ID of the reservation to update. for example 'example-reservation'.
 */
async function updateReservation(
  projectId,
  location = 'us-central1',
  reservationId = 'example-group-reservation',
) {
  const request = {
    reservation: {
      name: client.reservationPath(projectId, location, reservationId),
      slotCapacity: 150,
    },
    updateMask: {
      paths: ['slot_capacity'],
    },
  };

  try {
    const [updatedReservation] = await client.updateReservation(request);
    console.log(`Updated reservation: ${updatedReservation.name}`);
    console.log(`  New slot capacity: ${updatedReservation.slotCapacity}`);
  } catch (err) {
    if (err.code === status.NOT_FOUND) {
      console.log(
        `Reservation "${reservationId}" not found in project "${projectId}" location "${location}".`,
      );
    } else {
      console.error(`Error updating reservation "${reservationId}":`, 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


def update_reservation(project_id: str, location: str, reservation_id: str):
    """Updates a reservation's slot capacity.

    A reservation must exist before it can be updated.

    Args:
        project_id: The Google Cloud project ID.
        location: The geographic location of the reservation, for example, us-central1.
        reservation_id: The ID of the reservation to update.
    """
    client = bigquery_reservation_v1.ReservationServiceClient()

    reservation = bigquery_reservation_v1.types.Reservation()
    reservation.name = client.reservation_path(project_id, location, reservation_id)
    reservation.slot_capacity = 200
    update_mask = field_mask_pb2.FieldMask(paths=["slot_capacity"])

    try:
        updated_reservation = client.update_reservation(
            reservation=reservation, update_mask=update_mask
        )
        print(f"Updated reservation: {updated_reservation.name}")
        print(f"New slot capacity: {updated_reservation.slot_capacity}")
    except exceptions.NotFound:
        print(f"Reservation '{reservation_id}' was not found in location '{location}'.")

后续步骤

如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅Google Cloud 示例浏览器