Crea una prenotazione BigQuery

Crea una prenotazione in un progetto e una località specifici. Una prenotazione rappresenta un blocco di capacità di elaborazione delle query BigQuery dedicata che può essere allocata per i carichi di lavoro della tua organizzazione.

Esempio di codice

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

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

const client = new ReservationServiceClient();

/**
 * Creates a new reservation.
 * A reservation provides computational resource guarantees, in the form of
 * slots, to users. A slot is a unit of computational power in BigQuery.
 *
 * @param {string} projectId Google Cloud project ID, for example 'example-project-id'.
 * @param {string} location The geographic location where the reservation should reside, for example 'us-central1'.
 * @param {string} reservationId The ID of the reservation to create, for example 'example-reservation'.
 */
async function createReservation(
  projectId,
  location = 'us-central1',
  reservationId = 'example-reservation',
) {
  const parent = `projects/${projectId}/locations/${location}`;
  const request = {
    parent,
    reservationId,
    reservation: {
      slotCapacity: 100,
      ignoreIdleSlots: false,
    },
  };

  try {
    const [createdReservation] = await client.createReservation(request);
    console.log(`Created reservation: ${createdReservation.name}`);
    console.log(`  Slot capacity: ${createdReservation.slotCapacity}`);
  } catch (err) {
    if (err.code === status.ALREADY_EXISTS) {
      console.log(
        `Reservation ${reservationId} already exists in project ${projectId} at location ${location}.`,
      );
    } else {
      console.error(`Error creating reservation ${reservationId}:`, err);
    }
  }
}

Python

Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

from google.api_core.exceptions import AlreadyExists
from google.cloud import bigquery_reservation_v1

client = bigquery_reservation_v1.ReservationServiceClient()


def create_reservation(project_id: str, location: str, reservation_id: str):
    """Creates a reservation.

    A reservation is a mechanism used to guarantee slots to users.

    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 create. It must only contain
            lower case alphanumeric characters or dashes. It must start with a
            letter and must not end with a dash. Its maximum length is 64
            characters.
    """

    parent = f"projects/{project_id}/locations/{location}"
    reservation = bigquery_reservation_v1.Reservation(
        slot_capacity=100,
        ignore_idle_slots=True,
    )

    try:
        response = client.create_reservation(
            parent=parent,
            reservation_id=reservation_id,
            reservation=reservation,
        )
        print(f"Created reservation: {response.name}")
    except AlreadyExists:
        print(
            f"Reservation '{reservation_id}' already exists in location '{location}'."
        )

Passaggi successivi

Per cercare e filtrare gli esempi di codice per altri prodotti Google Cloud , consulta il browser degli esempi diGoogle Cloud .