Utilizzare le prenotazioni di slot

L'API BigQuery Reservation consente di acquistare slot dedicati (chiamati impegni��), creare pool di slot (chiamati prenotazioni��) e assegnare progetti, cartelle e organizzazioni a queste prenotazioni.

Le prenotazioni consentono di assegnare un numero dedicato di slot a un carico di lavoro. Ad esempio, potresti non volere che un carico di lavoro di produzione competa con i carichi di lavoro di test per gli slot. Potresti creare una prenotazione denominata prod e assegnare i tuoi workload di produzione a questa prenotazione. Per ulteriori informazioni, consulta la sezione Prenotazioni.

Crea prenotazioni

Autorizzazioni obbligatorie

Per creare una prenotazione, devi disporre della seguente autorizzazione Identity and Access Management (IAM):

Ognuno dei seguenti ruoli IAM predefiniti include questa autorizzazione:

  • BigQuery Resource Editor
  • BigQuery Resource Admin

Per saperne di più sui ruoli IAM in BigQuery, vedi Ruoli e autorizzazioni predefiniti.

Crea una prenotazione con slot dedicati

Seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel menu di navigazione, fai clic su Gestione della capacità.

  3. Fai clic su Crea prenotazione.

  4. Nel campo Nome prenotazione, inserisci un nome per la prenotazione.

  5. Nell'elenco Località, seleziona la località. Se selezioni una posizione BigQuery Omni, l'opzione della versione è limitata alla versione Enterprise.

  6. Nell'elenco Versione, seleziona la versione. Le funzionalità dell'edizione BigQuery, come la scalabilità automatica, sono disponibili solo all'interno di un'edizione. Per ulteriori informazioni, vedi Introduzione alle versioni di BigQuery.

  7. Nell'elenco Selettore dimensione massima prenotazione, seleziona la dimensione massima della prenotazione.

  8. (Facoltativo) Nel campo Slot di base, inserisci il numero di slot di base per la prenotazione.

    Il numero di slot con scalabilità automatica disponibili viene determinato sottraendo il valore degli slot di riferimento dalla dimensione massima della prenotazione. Ad esempio, se crei una prenotazione con 100 slot di riferimento e una dimensione massima della prenotazione di 400, la prenotazione ha 300 slot con scalabilità automatica. Per saperne di più sugli slot di base, vedi Utilizzo delle prenotazioni con slot di base e di scalabilità automatica.

  9. Per disattivare la condivisione degli slot inattivi e utilizzare solo la capacità degli slot specificata, fai clic sul pulsante di attivazione/disattivazione Ignora slot inattivi.

  10. Per espandere la sezione Impostazioni avanzate, fai clic sulla freccia di espansione .

  11. (Facoltativo) Per impostare la concorrenza target dei job, fai clic sul pulsante di attivazione/disattivazione Ignora la concorrenza automatica target dei job e inserisci la concorrenza target dei job.

  12. La suddivisione degli slot viene visualizzata nella tabella Stima dei costi. Un riepilogo della prenotazione viene visualizzato nella tabella Riepilogo della capacità.

  13. Fai clic su Salva.

La nuova prenotazione è visibile nella scheda Prenotazioni slot.

SQL

Per creare una prenotazione, utilizza l'istruzione DDL CREATE RESERVATION.

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    CREATE RESERVATION
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME`
    OPTIONS (
      slot_capacity = NUMBER_OF_BASELINE_SLOTS,
      edition = EDITION,
      autoscale_max_slots = NUMBER_OF_AUTOSCALING_SLOTS);

    Sostituisci quanto segue:

    • ADMIN_PROJECT_ID: l'ID progetto del progetto di amministrazione proprietario della risorsa di prenotazione
    • LOCATION: la posizione della prenotazione. Se selezioni una località BigQuery Omni, l'opzione di edizione è limitata all'edizione Enterprise.
    • RESERVATION_NAME: il nome della prenotazione

      Il nome può contenere solo caratteri alfanumerici minuscoli o trattini, deve iniziare con una lettera e non deve terminare con un trattino. La lunghezza massima è di 64 caratteri.

    • NUMBER_OF_BASELINE_SLOTS: il numero di base di slot da allocare alla prenotazione. Non puoi impostare l'opzione slot_capacity e l'opzione edition nella stessa prenotazione.
    • EDITION: l'edizione della prenotazione. L'assegnazione di una prenotazione a una versione comporta modifiche alle funzionalità e ai prezzi. Per ulteriori informazioni, vedi Introduzione alle versioni di BigQuery.
    • NUMBER_OF_AUTOSCALING_SLOTS: il numero di slot di scalabilità automatica assegnati alla prenotazione. È uguale al valore della dimensione massima della prenotazione meno il numero di slot di base.

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

bq

Per creare una prenotazione, utilizza il comando bq mk con il flag --reservation:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation \
    --slots=NUMBER_OF_BASELINE_SLOTS \
    --ignore_idle_slots=false \
    --edition=EDITION \
    --autoscale_max_slots=NUMBER_OF_AUTOSCALING_SLOTS \
    --max_slots=MAXIMUM_NUMBER_OF_SLOTS
    --scaling_mode=SCALING_MODE
    RESERVATION_NAME

Sostituisci quanto segue:

  • ADMIN_PROJECT_ID: l'ID progetto
  • LOCATION: la posizione della prenotazione. Se selezioni una posizione BigQuery Omni, l'opzione della versione è limitata alla versione Enterprise.
  • NUMBER_OF_BASELINE_SLOTS: il numero di slot di riferimento da allocare alla prenotazione

  • RESERVATION_NAME: il nome della prenotazione. Il nome può contenere solo caratteri alfanumerici minuscoli o trattini, deve iniziare con una lettera e non deve terminare con un trattino. La lunghezza massima è di 64 caratteri.

  • EDITION: l'edizione della prenotazione. L'assegnazione di una prenotazione a una versione comporta modifiche alle funzionalità e ai prezzi. Per ulteriori informazioni, vedi Introduzione alle versioni di BigQuery.

  • NUMBER_OF_AUTOSCALING_SLOTS: il numero di slot di scalabilità automatica assegnati alla prenotazione. È uguale al valore della dimensione massima della prenotazione meno il numero di slot di base. Non può essere configurato con i flag --max_slots o --scaling_mode.

  • MAXIMUM_NUMBER_OF_SLOTS: il numero massimo di slot che la prenotazione può utilizzare. Questo valore deve essere configurato con il flag --scaling_mode (anteprima).

  • SCALING_MODE: la modalità di scalabilità della prenotazione. Le opzioni sono ALL_SLOTS, IDLE_SLOTS_ONLY o AUTOSCALE_ONLY. Questo valore deve essere configurato con il flag --scaling_mode (anteprima).

Per informazioni sul flag --ignore_idle_slots, vedi Slot inattivi. Il valore predefinito è false.

Terraform

Utilizza la risorsa google_bigquery_reservation.

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

Il seguente esempio crea una prenotazione denominata my-reservation:

resource "google_bigquery_reservation" "default" {
  name              = "my-reservation"
  location          = "us-central1"
  slot_capacity     = 100
  edition           = "ENTERPRISE"
  ignore_idle_slots = false # Use idle slots from other reservations
  concurrency       = 0     # Automatically adjust query concurrency based on available resources
  autoscale {
    max_slots = 200 # Allow the reservation to scale up to 300 slots (slot_capacity + max_slots) if needed
  }
}

Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi nelle sezioni seguenti.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.

    Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.

Prepara la directory

Ogni file di configurazione di Terraform deve avere la propria directory (chiamata anche modulo radice).

  1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file viene denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice campione nel file main.tf appena creato.

    (Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi effettuare questa operazione una sola volta per directory.
    terraform init

    (Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Rivedi la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione di Terraform eseguendo il comando seguente e inserendo yes al prompt:
    terraform apply

    Attendi che Terraform visualizzi il messaggio "Apply complete!" (Applicazione completata).

  3. Apri il tuo Google Cloud progetto per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.

Python

Installa il pacchetto google-cloud-bigquery-reservation prima di utilizzare questo esempio di codice. Crea un ReservationServiceClient. Descrivi la prenotazione che vuoi creare con una prenotazione. Crea la prenotazione con il metodo create_reservation.
# TODO(developer): Set project_id to the project ID containing the
# reservation.
project_id = "your-project-id"

# TODO(developer): Set location to the location of the reservation.
# See: https://cloud.google.com/bigquery/docs/locations for a list of
# available locations.
location = "US"

# TODO(developer): Set reservation_id to a unique ID of the reservation.
reservation_id = "sample-reservation"

# TODO(developer): Set slot_capicity to the number of slots in the
# reservation.
slot_capacity = 100

# TODO(developer): Choose a transport to use. Either 'grpc' or 'rest'
transport = "grpc"

# ...

from google.cloud.bigquery_reservation_v1.services import reservation_service
from google.cloud.bigquery_reservation_v1.types import (
    reservation as reservation_types,
)

reservation_client = reservation_service.ReservationServiceClient(
    transport=transport
)

parent = reservation_client.common_location_path(project_id, location)

reservation = reservation_types.Reservation(slot_capacity=slot_capacity)
reservation = reservation_client.create_reservation(
    parent=parent,
    reservation=reservation,
    reservation_id=reservation_id,
)

print(f"Created reservation: {reservation.name}")

Crea una prenotazione prevedibile

Prima di creare una prenotazione con un numero massimo di slot, devi prima attivare la distribuzione equa basata sulle prenotazioni.

Attivare la distribuzione equa basata sulle prenotazioni

Per attivare la distribuzione equa basata sulle prenotazioni, imposta il flag enable_reservation_based_fairness su true.

Per aggiornare l'equità basata sulle prenotazioni in un progetto, devi disporre dell'autorizzazione bigquery.config.update sul progetto che mantiene la proprietà delle prenotazioni. Il ruolo predefinito BigQuery Admin include questa autorizzazione.

Per ulteriori informazioni sull'aggiornamento della configurazione predefinita di un progetto, vedi Gestire le impostazioni di configurazione.

ALTER PROJECT `PROJECT_NAME` SET OPTIONS (
    `region-LOCATION.enable_reservation_based_fairness`= true);

Sostituisci quanto segue:

Crea una prenotazione prevedibile

Per creare una prenotazione prevedibile con un numero massimo di slot, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel pannello di navigazione, vai alla sezione Gestione della capacità e poi fai clic su Crea prenotazione.

  3. Nel campo Nome prenotazione, inserisci un nome per la prenotazione.

  4. Nell'elenco Località, seleziona la località. Se selezioni una posizione BigQuery Omni, l'opzione della versione è limitata alla versione Enterprise.

  5. Nell'elenco Versione, seleziona la versione. La scalabilità automatica è disponibile solo all'interno di un'edizione. Per ulteriori informazioni, vedi Informazioni sulle versioni di BigQuery.

  6. Nell'elenco Selettore dimensione massima prenotazione, seleziona la dimensione massima della prenotazione.

  7. (Facoltativo) Nel campo Slot di base, inserisci il numero di slot di base per la prenotazione.

    Il numero di slot con scalabilità automatica disponibili viene determinato sottraendo il valore degli slot di riferimento dalla dimensione massima della prenotazione. Ad esempio, se crei una prenotazione con 100 slot di riferimento e una dimensione massima della prenotazione di 400, la prenotazione ha 300 slot con scalabilità automatica. Per saperne di più sugli slot di base, vedi Utilizzo delle prenotazioni con slot di base e di scalabilità automatica.

  8. Per disattivare la condivisione degli slot inattivi e utilizzare solo la capacità degli slot specificata, fai clic sul pulsante di attivazione/disattivazione Ignora slot inattivi.

  9. Per espandere la sezione Impostazioni avanzate, fai clic sulla freccia di espansione .

    1. Nell'elenco Come utilizzare gli slot inattivi?, seleziona l'opzione di configurazione.
  10. La suddivisione degli slot viene visualizzata nella tabella Stima dei costi. Un riepilogo della prenotazione viene visualizzato nella tabella Riepilogo della capacità.

  11. Fai clic su Salva.

La nuova prenotazione è visibile nella scheda Prenotazioni slot.

bq

Per creare una prenotazione prevedibile, utilizza il comando bq mk con il flag --reservation e imposta il valore di max_slots e scaling_mode:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation \
    --slots=NUMBER_OF_BASELINE_SLOTS \
    --ignore_idle_slots=false \
    --edition=EDITION \
    --max_slots=MAXIMUM_NUMBER_OF_SLOTS \
    --scaling_mode=SCALING_MODE
    RESERVATION_NAME

Sostituisci quanto segue:

  • ADMIN_PROJECT_ID: l'ID progetto
  • LOCATION: la posizione della prenotazione. Se selezioni una posizione BigQuery Omni, l'opzione della versione è limitata alla versione Enterprise.
  • NUMBER_OF_BASELINE_SLOTS: il numero di slot di riferimento da allocare alla prenotazione

  • RESERVATION_NAME: il nome della prenotazione

  • EDITION: l'edizione della prenotazione. L'assegnazione di una prenotazione a una versione comporta modifiche alle funzionalità e ai prezzi. Per ulteriori informazioni, vedi Introduzione alle versioni di BigQuery.

  • MAXIMUM_NUMBER_OF_SLOTS: il numero massimo di slot che la prenotazione può utilizzare. Questo valore deve essere configurato con il flag --scaling_mode (anteprima).

  • SCALING_MODE: la modalità di scalabilità della prenotazione. Le opzioni sono ALL_SLOTS, IDLE_SLOTS_ONLY o AUTOSCALE_ONLY. Questo valore deve essere configurato con il flag --scaling_mode (anteprima).

Per informazioni sul flag --ignore_idle_slots, vedi Slot inattivi. Il valore predefinito è false.

Per saperne di più sulle prenotazioni prevedibili, consulta Prenotazioni prevedibili.

Aggiorna prenotazioni

Puoi apportare i seguenti aggiornamenti a una prenotazione:

  • Modifica le dimensioni della prenotazione aggiungendo o rimuovendo slot.
  • Configura se le query in questa prenotazione utilizzano slot inattivi.
  • Modifica la quantità di slot di base o di scalabilità automatica assegnati a una prenotazione.
  • Imposta la concorrenza target dei job.

Per modificare l'edizione di una prenotazione, prima elimina la prenotazione, poi crea una prenotazione con l'edizione aggiornata.

Autorizzazioni obbligatorie

Per aggiornare una prenotazione, devi disporre della seguente autorizzazione Identity and Access Management (IAM):

Ognuno dei seguenti ruoli IAM predefiniti include questa autorizzazione:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

Per saperne di più sui ruoli IAM in BigQuery, vedi Ruoli e autorizzazioni predefiniti.

Modificare le dimensioni di una prenotazione

Puoi aggiungere o rimuovere slot da una prenotazione esistente.

Console

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel menu di navigazione, fai clic su Gestione della capacità.

  3. Fai clic sulla scheda Prenotazioni slot.

  4. Trova la prenotazione che vuoi aggiornare.

  5. Espandi l'opzione Azioni.

  6. Fai clic su Modifica.

  7. Nella finestra di dialogo Selettore dimensione massima prenotazione, inserisci la dimensione massima della prenotazione.

  8. Nel campo Slot di base, inserisci il numero di slot di base.

  9. Per espandere la sezione Impostazioni avanzate, fai clic sulla freccia di espansione .

  10. (Facoltativo) Per impostare la concorrenza target dei job, fai clic sul pulsante di attivazione/disattivazione Ignora la concorrenza automatica target dei job e inserisci la concorrenza target dei job.

  11. Fai clic su Salva.

SQL

Per modificare le dimensioni di una prenotazione, utilizza l'istruzione DDL (Data Definition Language) ALTER RESERVATION SET OPTIONS.

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    ALTER RESERVATION
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME`
    SET OPTIONS (
      slot_capacity = NUMBER_OF_BASELINE_SLOTS,
      autoscale_max_slots = NUMBER_OF_AUTOSCALING_SLOTS);

    Sostituisci quanto segue:

    • ADMIN_PROJECT_ID: l'ID progetto del progetto di amministrazione proprietario della risorsa di prenotazione
    • LOCATION: la posizione della prenotazione, ad esempio europe-west9.
    • RESERVATION_NAME: il nome della prenotazione. Il nome può contenere solo caratteri alfanumerici minuscoli o trattini, deve iniziare con una lettera e non deve terminare con un trattino. La lunghezza massima è di 64 caratteri.

    • NUMBER_OF_BASELINE_SLOTS: il numero di slot di riferimento da assegnare alla prenotazione.
    • NUMBER_OF_AUTOSCALING_SLOTS: il numero di slot di scalabilità automatica assegnati alla prenotazione. È uguale al valore della dimensione massima della prenotazione meno il numero di slot di base.

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

bq

Per aggiornare le dimensioni di una prenotazione, utilizza il comando bq update con il flag --reservation:

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --slots=NUMBER_OF_BASELINE_SLOTS \
    --autoscale_max_slots=NUMBER_OF_AUTOSCALING_SLOTS \
    --reservation RESERVATION_NAME

Sostituisci quanto segue:

  • ADMIN_PROJECT_ID: l'ID progetto
  • LOCATION: la posizione della prenotazione
  • NUMBER_OF_BASELINE_SLOTS: il numero di slot di riferimento da allocare alla prenotazione
  • RESERVATION_NAME: il nome della prenotazione. Il nome può contenere solo caratteri alfanumerici minuscoli o trattini, deve iniziare con una lettera e non deve terminare con un trattino. La lunghezza massima è di 64 caratteri.
  • NUMBER_OF_AUTOSCALING_SLOTS: il numero di slot di scalabilità automatica assegnati alla prenotazione. È uguale al valore della dimensione massima della prenotazione meno il numero di slot di base.

Python

Installa il pacchetto google-cloud-bigquery-reservation prima di utilizzare questo esempio di codice. Crea un ReservationServiceClient. Descrivi le proprietà aggiornate con una Reservation e la proprietà FieldMask.paths. Aggiorna la prenotazione con il metodo update_reservation.
# TODO(developer): Set project_id to the project ID containing the
# reservation.
project_id = "your-project-id"

# TODO(developer): Set location to the location of the reservation.
# See: https://cloud.google.com/bigquery/docs/locations for a list of
# available locations.
location = "US"

# TODO(developer): Set reservation_id to a unique ID of the reservation.
reservation_id = "sample-reservation"

# TODO(developer): Set slot_capicity to the new number of slots in the
# reservation.
slot_capacity = 50

# TODO(developer): Choose a transport to use. Either 'grpc' or 'rest'
transport = "grpc"

# ...

from google.cloud.bigquery_reservation_v1.services import reservation_service
from google.cloud.bigquery_reservation_v1.types import (
    reservation as reservation_types,
)
from google.protobuf import field_mask_pb2

reservation_client = reservation_service.ReservationServiceClient(
    transport=transport
)

reservation_name = reservation_client.reservation_path(
    project_id, location, reservation_id
)
reservation = reservation_types.Reservation(
    name=reservation_name,
    slot_capacity=slot_capacity,
)
field_mask = field_mask_pb2.FieldMask(paths=["slot_capacity"])
reservation = reservation_client.update_reservation(
    reservation=reservation, update_mask=field_mask
)

print(f"Updated reservation: {reservation.name}")
print(f"\tslot_capacity: {reservation.slot_capacity}")

Configura se le query utilizzano gli slot inattivi

Il flag --ignore_idle_slots controlla se le query eseguite in una prenotazione possono utilizzare gli slot inattivi di altre prenotazioni. Per ulteriori informazioni, consulta la sezione Slot inattivi. Puoi aggiornare questa configurazione in una prenotazione esistente.

Per aggiornare una prenotazione, utilizza il comando bq update con il flag --reservation . Il seguente esempio imposta --ignore_idle_slots su true, il che significa che la prenotazione utilizzerà solo gli slot assegnati.

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --ignore_idle_slots=true \
    --reservation RESERVATION_NAME

Sostituisci quanto segue:

  • ADMIN_PROJECT_ID: l'ID progetto
  • LOCATION: la posizione della prenotazione
  • RESERVATION_NAME: il nome della prenotazione. Il nome può contenere solo caratteri alfanumerici minuscoli o trattini, deve iniziare con una lettera e non deve terminare con un trattino. La lunghezza massima è di 64 caratteri.

Elenca la configurazione dello slot inattivo

Per elencare l'impostazione slot inutilizzati per una prenotazione:

SQL

Esegui una query sulla colonna ignore_idle_slots della visualizzazione INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT.

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    SELECT
      reservation_name,
      ignore_idle_slots
    FROM
      `ADMIN_PROJECT_ID.region-LOCATION`.INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT;

    Sostituisci quanto segue:

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

bq

Utilizza il comando bq ls con il flag --reservation:

bq ls --reservation \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION

Sostituisci quanto segue:

Il campo ignoreIdleSlots contiene l'impostazione di configurazione.

Elimina prenotazioni

Quando elimini una prenotazione, tutti i job attualmente in esecuzione con slot della prenotazione non andranno a buon fine. Per evitare errori, consenti il completamento dei job in esecuzione prima di eliminare la prenotazione.

Autorizzazioni obbligatorie

Per eliminare una prenotazione, devi disporre della seguente autorizzazione Identity and Access Management (IAM):

Ognuno dei seguenti ruoli IAM predefiniti include questa autorizzazione:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

Per saperne di più sui ruoli IAM in BigQuery, vedi Ruoli e autorizzazioni predefiniti.

Eliminazione di una prenotazione

Console

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel menu di navigazione, fai clic su Gestione della capacità.

  3. Fai clic sulla scheda Prenotazioni.

  4. Trova la prenotazione che vuoi eliminare.

  5. Espandi l'opzione Azioni.

  6. Fai clic su Elimina.

  7. Nella finestra di dialogo Elimina prenotazione, fai clic su Elimina.

SQL

Per eliminare una prenotazione, utilizza l'istruzione DDL DROP RESERVATION.

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    DROP RESERVATION
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME`;

    Sostituisci quanto segue:

    • ADMIN_PROJECT_ID: l'ID progetto del progetto di amministrazione proprietario della risorsa di prenotazione
    • LOCATION: la posizione della prenotazione
    • RESERVATION_NAME: l'ID della prenotazione

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

bq

Per eliminare una prenotazione, utilizza il comando bq rm con il flag --reservation:

bq rm \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation RESERVATION_NAME

Sostituisci quanto segue:

  • ADMIN_PROJECT_ID: l'ID progetto del progetto di amministrazione che possiede la risorsa di prenotazione
  • LOCATION: la posizione della prenotazione
  • RESERVATION_NAME: il nome della prenotazione. Il nome può contenere solo caratteri alfanumerici minuscoli o trattini, deve iniziare con una lettera e non deve terminare con un trattino. La lunghezza massima è di 64 caratteri.

Python

Installa il pacchetto google-cloud-bigquery-reservation prima di utilizzare questo esempio di codice. Crea un ReservationServiceClient. Elimina la prenotazione con il metodo delete_reservation.
# TODO(developer): Set project_id to the project ID containing the
# reservation.
project_id = "your-project-id"

# TODO(developer): Set location to the location of the reservation.
# See: https://cloud.google.com/bigquery/docs/locations for a list of
# available locations.
location = "US"

# TODO(developer): Set reservation_id to a unique ID of the reservation.
reservation_id = "sample-reservation"

# TODO(developer): Choose a transport to use. Either 'grpc' or 'rest'
transport = "grpc"

# ...

from google.cloud.bigquery_reservation_v1.services import reservation_service

reservation_client = reservation_service.ReservationServiceClient(
    transport=transport
)
reservation_name = reservation_client.reservation_path(
    project_id, location, reservation_id
)
reservation_client.delete_reservation(name=reservation_name)

print(f"Deleted reservation: {reservation_name}")

Controllare l'accesso alle prenotazioni

Per richiedere assistenza o fornire un feedback su questa funzionalità, contatta bigquery-wlm-feedback@google.com.

Puoi controllare quali utenti hanno accesso a prenotazioni specifiche. Per ignorare una prenotazione nella query, un utente deve disporre dell'autorizzazione reservations.use per quella prenotazione.

Autorizzazioni obbligatorie

Per ottenere l'autorizzazione necessaria per specificare una prenotazione particolare per il tuo job, chiedi all'amministratore di concederti il ruolo IAM Editor prenotazione (roles/bigquery.reservationEditor) per la risorsa di prenotazione. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene l'autorizzazione reservations.use necessaria per specificare una prenotazione particolare per il tuo job.

Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Controllare l'accesso a una prenotazione

Per impostare una condizione IAM (Identity and Access Management) su una prenotazione, esegui una delle seguenti operazioni:

Console

  1. Nella console Google Cloud vai alla pagina IAM.

    Vai a IAM

  2. Seleziona un progetto, una cartella o un'organizzazione.

  3. Seleziona un'entità a cui concedere il ruolo bigquery.resourceEditor:

  • Per concedere il ruolo bigquery.resourceEditor a un'entità che ha già altri ruoli per la risorsa, trova una riga contenente l'entità, fai clic su Modifica entità in quella riga e fai clic su Aggiungi un altro ruolo.

  • Per concedere il ruolo bigquery.resourceEditor a un'entità che non ha ruoli esistenti per la risorsa, fai clic su Concedi accesso, quindi inserisci un identificatore per l'entità, ad esempio my-user@example.com.

  1. Seleziona il ruolo bigquery.resourceEditor da concedere dall'elenco a discesa.
  2. Aggiungi una condizione al ruolo. Ad esempio, puoi aggiungere una condizione che concede il ruolo a tutte le prenotazioni che terminano con /reservation1.
  3. Fai clic su Salva. All'entità viene concesso il ruolo sulla risorsa.

bq

Per concedere l'accesso alla prenotazione, utilizza il comando bq set-iam-policy:

  bq set-iam-policy projects/project1/locations/US << EOF
  resource: "RESOURCE"
  policy {
    bindings {
      role: "roles/bigquery.resourceAdmin"
        members: "user:USER"
        condition {
          title: "title"
          expression: "EXPRESSION"
        }
      }
    }
  update_mask { paths: "bindings" }
  EOF

Sostituisci quanto segue:

  • RESOURCE: il nome della risorsa di prenotazione.
  • USER: l'email dell'utente a cui stai assegnando il ruolo.
  • EXPRESSION: l'espressione su cui basare la concessione del ruolo. Ad esempio, resource.name.endsWith(\"/res1\")

Per saperne di più su IAM, consulta Gestire l'accesso ad altre risorse.