Gestire le prenotazioni del carico di lavoro
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 saperne di più, vedi
Informazioni sulle prenotazioni.
Crea prenotazioni
Autorizzazioni obbligatorie
Per creare una prenotazione, devi disporre della seguente autorizzazione IAM (Identity and Access Management):
bigquery.reservations.createsul progetto di amministrazione che mantiene la proprietà degli impegni.
Ognuno dei seguenti ruoli IAM predefiniti include questa autorizzazione:
BigQuery Resource EditorBigQuery 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
Nella console Google Cloud , vai alla pagina BigQuery.
Nel menu di navigazione, fai clic su Gestione della capacità.
Fai clic su Crea prenotazione.
Nel campo Nome prenotazione, inserisci un nome per la prenotazione.
Nell'elenco Località, seleziona la località. Se selezioni una posizione BigQuery Omni, l'opzione della versione è limitata alla versione Enterprise.
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.
Nell'elenco Selettore dimensione massima prenotazione, seleziona la dimensione massima della prenotazione.
(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.
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.
Per espandere la sezione Impostazioni avanzate, fai clic sulla freccia di espansione .
(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.
La suddivisione degli slot viene visualizzata nella tabella Stima dei costi. Un riepilogo della prenotazione viene visualizzato nella tabella Riepilogo della capacità.
Fai clic su Salva.
La nuova prenotazione è visibile nella scheda Prenotazioni slot.
SQL
Per creare una prenotazione, utilizza l'istruzione DDL CREATE RESERVATION.
Nella console Google Cloud , vai alla pagina BigQuery.
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 prenotazioneLOCATION: la posizione della prenotazione. Se selezioni una località BigQuery Omni, l'opzione di edizione è limitata all'edizione Enterprise.RESERVATION_NAME: il nome della prenotazioneIl 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'opzioneslot_capacitye l'opzioneeditionnella 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.
Fai clic su Esegui.
Per saperne di più 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 progettoLOCATION: 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 assegnare alla prenotazioneRESERVATION_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_slotso--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 sonoALL_SLOTS,IDLE_SLOTS_ONLYoAUTOSCALE_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.
L'esempio seguente crea una prenotazione denominata my-reservation:
Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi descritti nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
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.
Preparare la directory
Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo radice).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file viene denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tfappena creato.(Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
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
-
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.
-
Applica la configurazione Terraform eseguendo questo comando e inserendo
yesal prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!".
- 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
Crea una prenotazione prevedibile
Prima di creare una prenotazione con un numero massimo di slot, devi prima attivare la distribuzione equa basata sulle prenotazioni.
Abilitare l'equità basata sulle prenotazioni
Per attivare la distribuzione equa basata sulla prenotazione, imposta il flag enable_reservation_based_fairness su true.
Per aggiornare l'equità basata sulla prenotazione 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 saperne di più 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:
- PROJECT_NAME: l'ID progetto del progetto di amministrazione
- LOCATION: la posizione della prenotazione
Crea una prenotazione prevedibile
Per creare una prenotazione prevedibile con un numero massimo di slot, seleziona una delle seguenti opzioni:
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nel pannello di navigazione, vai alla sezione Gestione della capacità e poi fai clic su Crea prenotazione.
Nel campo Nome prenotazione, inserisci un nome per la prenotazione.
Nell'elenco Località, seleziona la località. Se selezioni una posizione BigQuery Omni, l'opzione della versione è limitata alla versione Enterprise.
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.
Nell'elenco Selettore dimensione massima prenotazione, seleziona la dimensione massima della prenotazione.
(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.
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.
Per espandere la sezione Impostazioni avanzate, fai clic sulla freccia di espansione .
- Nell'elenco Come utilizzare gli slot inattivi?, seleziona l'opzione di configurazione.
La suddivisione degli slot viene visualizzata nella tabella Stima dei costi. Un riepilogo della prenotazione viene visualizzato nella tabella Riepilogo della capacità.
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 progettoLOCATION: 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 assegnare alla prenotazioneRESERVATION_NAME: il nome della prenotazioneEDITION: 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.SCALING_MODE:SCALING_MODE: la modalità di scalabilità della prenotazione. Le opzioni sonoALL_SLOTS,IDLE_SLOTS_ONLYoAUTOSCALE_ONLY. Questo valore deve essere configurato con il flagmax_slots. Questo valore deve essere allineato al flagignore_idle_slots. Per maggiori dettagli, vedi Prevedibilità delle prenotazioni.
Per informazioni sul flag --ignore_idle_slots, vedi
Slot inattivi. Il valore predefinito è false.
SQL
Per creare una prenotazione prevedibile, utilizza l'istruzione DDL CREATE RESERVATION.
Nella console Google Cloud , vai alla pagina BigQuery.
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, ignore_idle_slots=IGNORE_IDLE_SLOTS max_slots = MAX_NUMBER_OF_SLOTS, scaling_mode = SCALING_MODE);
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 e la lunghezza massima è di 64 caratteri.NUMBER_OF_BASELINE_SLOTS: il numero di base di slot da allocare alla prenotazione. Non puoi impostare l'opzioneslot_capacitye l'opzioneeditionnella 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.IGNORE_IDLE_SLOTS: indica se la prenotazione utilizza o meno gli slot inattivi. Il valore predefinito èfalse.MAX_NUMBER_OF_SLOTS: il numero massimo di slot che la prenotazione può utilizzare. Questo valore deve essere configurato con l'opzionescaling_mode.SCALING_MODE: la modalità di scalabilità della prenotazione. Le opzioni sonoALL_SLOTS,IDLE_SLOTS_ONLYoAUTOSCALE_ONLY. Questo valore deve essere configurato con l'opzionemax_slots. Questo valore deve essere allineato all'opzioneignore_idle_slots. Per maggiori dettagli, vedi Prevedibilità delle prenotazioni.
Fai clic su Esegui.
Per saperne di più su come eseguire le query, consulta Eseguire una query interattiva.
Per scoprire 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 di riferimento 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):
bigquery.reservations.updatesul progetto di amministrazione che mantiene la proprietà degli impegni.
Ognuno dei seguenti ruoli IAM predefiniti include questa autorizzazione:
BigQuery AdminBigQuery Resource AdminBigQuery 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
Nella console Google Cloud , vai alla pagina BigQuery.
Nel menu di navigazione, fai clic su Gestione della capacità.
Fai clic sulla scheda Prenotazioni slot.
Trova la prenotazione che vuoi aggiornare.
Espandi l'opzione Azioni.
Fai clic su Modifica.
Nella finestra di dialogo Selettore dimensione massima prenotazione, inserisci la dimensione massima della prenotazione.
Nel campo Slot di base, inserisci il numero di slot di base.
Per espandere la sezione Impostazioni avanzate, fai clic sulla freccia di espansione .
(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.
Fai clic su Salva.
SQL
Per modificare le dimensioni di una prenotazione, utilizza l'istruzione DDL (Data Definition Language) ALTER RESERVATION SET OPTIONS.
Nella console Google Cloud , vai alla pagina BigQuery.
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 prenotazioneLOCATION: la posizione della prenotazione, ad esempioeurope-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 base da allocare 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.
Fai clic su Esegui.
Per saperne di più 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 progettoLOCATION: la posizione della prenotazioneNUMBER_OF_BASELINE_SLOTS: il numero di slot di riferimento da assegnare alla prenotazioneRESERVATION_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
Configurare 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 saperne di più, 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 allocati alla prenotazione.
bq update \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--ignore_idle_slots=true \
--reservation RESERVATION_NAME
Sostituisci quanto segue:
ADMIN_PROJECT_ID: l'ID progettoLOCATION: la posizione della prenotazioneRESERVATION_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 inattivi per una prenotazione:
SQL
Esegui una query sulla colonna ignore_idle_slots della
visualizzazione INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT.
Nella console Google Cloud , vai alla pagina BigQuery.
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:
ADMIN_PROJECT_ID: l'ID progetto del progetto di amministrazione proprietario delle risorse di prenotazioneLOCATION: la posizione delle prenotazioni
Fai clic su Esegui.
Per saperne di più 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:
ADMIN_PROJECT_ID: l'ID progetto del progetto di amministrazione che possiede le risorse di prenotazioneLOCATION: la posizione delle prenotazioni
Il campo ignoreIdleSlots contiene l'impostazione di configurazione.
Elimina prenotazioni
Se elimini una prenotazione, tutti i job in esecuzione che utilizzano slot della prenotazione non vengono eseguiti. 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 IAM (Identity and Access Management):
bigquery.reservations.deletesul progetto di amministrazione che mantiene la proprietà degli impegni.
Ognuno dei seguenti ruoli IAM predefiniti include questa autorizzazione:
BigQuery AdminBigQuery Resource AdminBigQuery Resource Editor
Per saperne di più sui ruoli IAM in BigQuery, vedi Ruoli e autorizzazioni predefiniti.
Eliminazione di una prenotazione
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nel menu di navigazione, fai clic su Gestione della capacità.
Fai clic sulla scheda Prenotazioni.
Trova la prenotazione che vuoi eliminare.
Espandi l'opzione Azioni.
Fai clic su Elimina.
Nella finestra di dialogo Elimina prenotazione, fai clic su Elimina.
SQL
Per eliminare una prenotazione, utilizza l'istruzione DDL DROP RESERVATION.
Nella console Google Cloud , vai alla pagina BigQuery.
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 prenotazioneLOCATION: la posizione della prenotazioneRESERVATION_NAME: l'ID della prenotazione
Fai clic su Esegui.
Per saperne di più 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 proprietario della risorsa di prenotazioneLOCATION: la posizione della prenotazioneRESERVATION_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
Controllare l'accesso alle prenotazioni
Puoi controllare quali utenti hanno accesso a prenotazioni specifiche. Per ignorare una prenotazione nella query, un utente deve disporre dell'autorizzazione reservations.use per la prenotazione.
Autorizzazioni obbligatorie
Per ottenere l'autorizzazione necessaria per specificare una determinata prenotazione per il tuo job, chiedi all'amministratore di concederti il ruolo IAM Editor risorse (roles/bigquery.resourceEditor) sulla 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 gestire l'accesso a una risorsa di prenotazione specifica, utilizza il comando bq
set-iam-policy.
Per gestire l'accesso a più risorse di prenotazione, utilizza la console Google Cloud per concedere il ruolo Editor risorse BigQuery al progetto, alla cartella o all'organizzazione. Quando concedi il ruolo, utilizza una condizione IAM per consentire l'accesso alle risorse di prenotazione quando sono soddisfatte le condizioni specificate.
Per controllare l'accesso alle prenotazioni, esegui una delle seguenti operazioni:
Console
Nella console Google Cloud , puoi consentire l'accesso a più risorse di prenotazione utilizzando una condizione.
Nella console Google Cloud , vai alla pagina IAM.
Seleziona un progetto, una cartella o un'organizzazione.
Per concedere il ruolo
bigquery.resourceEditora un'entità che ha un ruolo nelle risorse di prenotazione:Nella scheda Visualizza per entità, vai all'entità appropriata o utilizza l'opzione Filtra per trovare l'entità.
Fai clic su Modifica soggetto.
Nella pagina Assegna ruoli, fai clic su Aggiungi ruoli.
Nel campo Cerca ruoli, inserisci
bigquery.resourceEditor.Seleziona l'opzione Editor risorse BigQuery nei risultati di ricerca e poi fai clic su Applica.
Fai clic su Salva.
In alternativa, per concedere il ruolo
bigquery.resourceEditora un'entità che non ha un ruolo nelle risorse di prenotazione:Fai clic su Concedi l'accesso.
Nella pagina Aggiungi entità, nel campo Nuove entità, inserisci l'identificatore dell'entità, ad esempio
my-user@example.com.Fai clic su Aggiungi ruoli.
Nel campo Cerca ruoli, inserisci
bigquery.resourceEditor.Seleziona l'opzione Editor risorse BigQuery nei risultati di ricerca e poi fai clic su Applica.
Nella casella Editor risorse BigQuery, fai clic su Aggiungi condizione.
Nella pagina Aggiungi condizione:
Inserisci i valori nei campi Titolo e Descrizione.
In Generatore di condizioni, aggiungi la condizione. Ad esempio, per aggiungere una condizione che assegna il ruolo a tutti i nomi di prenotazione che terminano con
/reservation1, per Tipo di condizione, scegli Nome, per Operatore, scegli Termina con e per Valore, inserisci/reservation1.Fai clic su Salva.
Fai clic su Salva.
bq
Nello strumento a riga di comando bq, puoi concedere l'accesso a una singola risorsa di prenotazione.
Per concedere l'accesso a una prenotazione, utilizza il comando bq
set-iam-policy:
bq set-iam-policy --reservation RESOURCE FILE_NAME
Sostituisci quanto segue:
RESOURCE: l'identificatore della prenotazione. Ad esempio,project1:US.reservation1.FILE_NAME: il file contenente la policy in formato JSON. Il formato deve seguire la struttura dei criteri IAM per i criteri di autorizzazione. Ad esempio:{ "bindings": [ { "members": [ "user:my-user@example.com" ], "role": "roles/bigquery.resourceEditor" } ], "etag": "BwUjMhCsNvY=", "version": 1 }
Per saperne di più su IAM, consulta Gestire l'accesso ad altre risorse.
Dare la priorità agli slot inattivi con i gruppi di prenotazioni
Per richiedere assistenza o fornire un feedback su questa funzionalità, contatta bigquery-wlm-feedback@google.com.
Puoi controllare quali prenotazioni hanno accesso prioritario agli slot inattivi creando un gruppo di prenotazioni. Le prenotazioni all'interno di un gruppo di prenotazioni condividono gli slot inattivi tra loro prima che siano disponibili per altre prenotazioni nel progetto.
Prima di creare un gruppo di prenotazioni, devi prima abilitare la distribuzione equa basata sulle prenotazioni.
Autorizzazioni obbligatorie
Per ottenere le autorizzazioni necessarie per aggiornare una determinata prenotazione in modo da impostare il gruppo di prenotazioni, chiedi all'amministratore di concederti il ruolo IAM Reservation Editor (roles/bigquery.reservationEditor) sulla risorsa di prenotazione.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea gruppo di prenotazioni
Per creare un gruppo di prenotazioni:
bq
Per creare una prenotazione, utilizza il comando bq mk con il flag --reservation:
bq mk \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--alpha=reservation_groups \
--reservation_group \
RESERVATION_GROUP_NAME
Sostituisci quanto segue:
ADMIN_PROJECT_ID: l'ID progettoLOCATION: la posizione della prenotazione.RESERVATION_GROUP_NAME: il nome del gruppo di prenotazioni. 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.
Aggiungere una prenotazione a un gruppo di prenotazioni
Per aggiungere una prenotazione a un gruppo di prenotazioni, aggiorna la proprietà reservation_group della prenotazione:
bq
Per aggiornare la prenotazione e impostare il gruppo di prenotazioni, utilizza il comando bq update con il flag --reservation:
bq update \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--alpha=reservation_groups \
--reservation_group_name=RESERVATION_GROUP_NAME \
--reservation RESERVATION_NAME
Sostituisci quanto segue:
ADMIN_PROJECT_ID: l'ID progettoLOCATION: la posizione della prenotazioneRESERVATION_GROUP_NAME: il nome del gruppo di prenotazioni. 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.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.
Elenco delle prenotazioni che hanno un gruppo di prenotazioni
Per elencare le informazioni sul gruppo di prenotazioni per le tue prenotazioni:
bq
Per elencare le prenotazioni e includere le informazioni sul gruppo di prenotazioni, utilizza il comando bq ls con i flag --reservation e --alpha=reservation_groups:
bq ls \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--alpha=reservation_groups \
--reservation
Sostituisci quanto segue:
ADMIN_PROJECT_ID: l'ID progettoLOCATION: la posizione della prenotazione
Rimuovere una prenotazione da un gruppo di prenotazioni
Per rimuovere una prenotazione da un gruppo di prenotazioni, aggiorna la proprietà reservation_group della prenotazione in modo che sia la stringa vuota:
bq
Per rimuovere la prenotazione dal gruppo di prenotazioni, utilizza il comando bq update con il flag --reservation:
bq update \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--alpha=reservation_groups \
--reservation_group_name="" \
--reservation RESERVATION_NAME
Sostituisci quanto segue:
ADMIN_PROJECT_ID: l'ID progettoLOCATION: la posizione della prenotazioneNUMBER_OF_BASELINE_SLOTS: il numero di slot di riferimento da assegnare alla prenotazioneRESERVATION_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.
Per saperne di più sui gruppi di prenotazioni, consulta Gruppi di prenotazioni.
Risoluzione dei problemi
Quando crei o aggiorni una prenotazione, potresti riscontrare i seguenti errori:
- Errore:
Max reservation size can only be configured in multiples of 50, except when covered by excess commitments. - Errore:
Baseline slots can only be configured in multiples of 50, except when covered by excess commitments. - Gli slot vengono sempre scalati automaticamente a un multiplo di 50. Lo scale up si basa sull'utilizzo effettivo e viene arrotondato all'incremento di 50 slot più vicino. In assenza di un impegno o se l'impegno non può coprire gli aumenti, gli slot di base e di scalabilità automatica possono essere aumentati solo in multipli di 50.
Se
reservation size - baseline slotsnon è un multiplo di 50, la prenotazione non può essere scalata fino alla dimensione massima delle prenotazioni, il che genera questo errore.Risoluzione:
- Acquista altri impegni di capacità per coprire gli aumenti degli slot.
- Scegli slot di base e massimi che siano incrementi di 50.