Utilizzare le prenotazioni degli slot
L'API BigQuery Reservation ti consente di acquistare slot dedicati (chiamati impegni), creare pool di slot (chiamati prenotazioni) e assegnare progetti, cartelle e organizzazioni a queste prenotazioni.
Le prenotazioni ti 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
crea una prenotazione denominata prod
e assegna a questo i tuoi carichi di lavoro di produzione
prenotazione. Per ulteriori informazioni, vedi
Prenotazioni.
Crea prenotazioni
Autorizzazioni obbligatorie
Per creare una prenotazione, devi disporre della seguente autorizzazione Identity and Access Management (IAM):
bigquery.reservations.create
nel progetto di amministrazione che mantiene la proprietà degli impegni.
Ciascuno dei seguenti ruoli IAM predefiniti include autorizzazione:
BigQuery Resource Editor
BigQuery Resource Admin
Per ulteriori informazioni sui ruoli IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.
Creare una prenotazione con slot dedicati
Seleziona una delle seguenti opzioni:
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro 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 a discesa Località, seleziona la località. Se selezioni un BigQuery Omni località, la tua 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 Introduzione a BigQuery di Google Cloud.
Nell'elenco Selettore dimensione massima prenotazione, seleziona la dimensione massima della prenotazione.
(Facoltativo) Nel campo Slot di riferimento, inserisci il numero di valori di riferimento slot machine per la prenotazione.
Il numero di slot con scalabilità automatica disponibili è determinato sottraendo il valore degli Slot di riferimento dalla Prenotazione massima dimensioni. Ad esempio, se crei una prenotazione con base di 100 slot e una dimensione massima della prenotazione di 400, la prenotazione include 300 con scalabilità automatica. Per saperne di più sugli slot di riferimento, consulta Utilizzare le prenotazioni con gli slot di riferimento e con la scalabilità automatica.
Per disattivare la condivisione degli slot inattivi e utilizza solo la capacità degli slot specificata, fai clic su Ignora gli slot inattivi pulsante di attivazione/disattivazione.
Per espandere la sezione Impostazioni avanzate, fai clic sulla freccia di espansione
.(Facoltativo) Per impostare la concorrenza target dei job, attiva l'opzione Ignora la concorrenza automatica target dei job e inserisci la Contemporaneità 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
: il località della prenotazione. Se selezioni un BigQuery Omni località, la tua versione è limitata alla versione Enterprise.RESERVATION_NAME
: il nome della prenotazioneDeve iniziare e terminare con una lettera minuscola o un numero e contenere solo lettere minuscole, numeri e trattini.
NUMBER_OF_BASELINE_SLOTS
: il numero di riferimento di slot da allocare alla prenotazione. Non puoi impostare l'opzioneslot_capacity
e l'opzioneedition
nella stessa prenotazione.EDITION
: la versione della prenotazione. L'assegnazione di una prenotazione a una versione comporta modifiche alle funzionalità e ai prezzi. Per ulteriori informazioni, consulta Introduzione alle versioni di BigQuery.NUMBER_OF_AUTOSCALING_SLOTS
: il numero di slot di scalabilità automatica assegnati alla prenotazione. Questo valore è uguale al valore della dimensione massima della prenotazione meno il numero di slot di riferimento.
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire 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 \ RESERVATION_NAME
Sostituisci quanto segue:
ADMIN_PROJECT_ID
: l'ID progettoLOCATION
: il località della prenotazione. Se selezioni una posizione BigQuery Omni, l'opzione di versione è limitata alla versione Enterprise.NUMBER_OF_BASELINE_SLOTS
: il numero di slot di riferimento da allocare alla prenotazioneRESERVATION_NAME
: il nome della prenotazioneEDITION
: la versione della prenotazione. L'assegnazione di una prenotazione a una versione comporta modifiche alle funzionalità e ai prezzi. Per ulteriori informazioni, consulta Introduzione alle versioni di BigQuery.NUMBER_OF_AUTOSCALING_SLOTS
: il numero di slot di scalabilità automatica assegnati alla prenotazione. Corrisponde al valore della dimensione massima di prenotazione meno il numero di slot di riferimento.
Per informazioni sul flag --ignore_idle_slots
, consulta
Slot inattivi. Il valore predefinito
è false
.
Terraform
Utilizza la
google_bigquery_reservation
risorsa.
Per eseguire l'autenticazione in BigQuery, configura il valore predefinito dell'applicazione Credenziali. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Nell'esempio seguente viene creata una prenotazione denominata my-reservation
:
Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle seguenti sezioni.
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 farlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti in Terraform di configurazione del deployment.
Prepara la directory
Ogni file di configurazione Terraform deve avere una directory dedicata (inoltre chiamato modulo principale).
-
In Cloud Shell, crea una directory e un nuovo
all'interno di quella directory. Il nome file deve contenere
.tf
, ad esempiomain.tf
. In questo tutorial, il file è denominatomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice di esempio in ogni sezione o passaggio.
Copia il codice di esempio nel file
main.tf
appena creato.Facoltativamente, copia il codice da GitHub. Opzione consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
Se vuoi, per utilizzare la versione più recente del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform sta per creare o
aggiornare corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il seguente comando e inserendo
yes
al prompt:terraform apply
Attendi che Terraform mostri il messaggio "Applicazione completata".
- Apri il progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Python
Aggiorna prenotazioni
Puoi apportare i seguenti aggiornamenti a una prenotazione:
- Modifica la dimensione della prenotazione aggiungendo o rimuovendo slot.
- Configura se le query in questa prenotazione utilizzano slot inattivi.
- Modifica la quantità di slot di base o con scalabilità automatica allocati a una prenotazione.
- Imposta la contemporaneità di destinazione dei job.
Per cambiare la versione di una prenotazione, devi prima elimina la prenotazione, quindi crea una prenotazione con la versione aggiornata.
Autorizzazioni obbligatorie
Per aggiornare una prenotazione, devi disporre della seguente autorizzazione IAM (Gestione di identità e accessi):
bigquery.reservations.update
il progetto di amministrazione che mantenga la proprietà degli impegni.
Ciascuno dei seguenti ruoli IAM predefiniti include autorizzazione:
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
Per ulteriori informazioni sui ruoli IAM in BigQuery, vedi Autorizzazioni e ruoli 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 pannello di navigazione, vai alla sezione Gestione della capacità.
Fai clic sulla scheda Prenotazioni slot.
Trova la prenotazione da aggiornare.
Espandi
Azioni.Fai clic su Modifica.
Nella finestra di dialogo Selettore Dimensione massima prenotazione, inserisci la dimensione massima della prenotazione.
Nel campo Slot di riferimento, inserisci il numero di slot di riferimento.
Per espandere la sezione Impostazioni avanzate, fai clic sull'icona
freccia di espansione.Facoltativo: per impostare la contemporaneità target dei job, fai clic su Override attiva la contemporaneità dei job di destinazione automatica e inserisci il valore Target Contemporaneità dei job.
Fai clic su Salva.
SQL
Per modificare le dimensioni di una prenotazione, utilizza il metodo
Dichiarazione DDL (Data Definition Language) di 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 del progetto di amministrazione proprietario della risorsa di prenotazioneLOCATION
: il location della prenotazione, ad esempioeurope-west9
.RESERVATION_NAME
: il nome del prenotazione. Deve iniziare e terminare con una lettera minuscola o un numero e contenere solo lettere minuscole, numeri e trattini.NUMBER_OF_BASELINE_SLOTS
: il numero di slot di riferimento da allocare alla prenotazione.NUMBER_OF_AUTOSCALING_SLOTS
: il numero di slot di scalabilità automatica assegnati alla prenotazione. Corrisponde al valore della dimensione massima di prenotazione meno il numero di slot di riferimento.
Fai clic su
Esegui.
Per ulteriori 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
--reservation
flag:
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
: il località della prenotazioneNUMBER_OF_BASELINE_SLOTS
: il numero di slot di riferimento da allocare alla prenotazioneRESERVATION_NAME
: il nome della prenotazioneNUMBER_OF_AUTOSCALING_SLOTS
: il numero di slot di scalabilità automatica assegnati alla prenotazione. Questo valore è uguale al valore della dimensione massima della prenotazione meno il numero di slot di riferimento.
Python
Configura se le query utilizzano slot inattivi
Il flag --ignore_idle_slots
consente di controllare se le query sono in esecuzione in una prenotazione
può utilizzare slot inattivi di altre prenotazioni. Per ulteriori informazioni, vedi
Slot inattivi. Puoi aggiornare
configurazione su una prenotazione esistente.
Per aggiornare una prenotazione, utilizza il comando bq update
con il flag --reservation
. L'esempio seguente 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
Elenca la configurazione degli slot inattivi
Per visualizzare l'impostazione relativa agli 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 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 del progetto di amministrazione proprietario delle risorse di prenotazioneLOCATION
: la posizione delle prenotazioni
Fai clic su
Esegui.
Per ulteriori 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:
ADMIN_PROJECT_ID
: l'ID del progetto di amministrazione che possiede le risorse di prenotazioneLOCATION
: la posizione delle prenotazioni
Il campo ignoreIdleSlots
contiene l'impostazione di configurazione.
Elimina prenotazioni
Quando elimini una prenotazione, tutti i job attualmente in esecuzione con slot della prenotazione avrà esito negativo. Per evitare errori, consenti ai job in esecuzione completa prima di eliminare la prenotazione.
Autorizzazioni obbligatorie
Per eliminare una prenotazione, è necessaria la seguente autorizzazione IAM (Gestione di identità e accessi):
bigquery.reservations.delete
il progetto di amministrazione che mantenga la proprietà degli impegni.
Ogni uno dei seguenti ruoli IAM predefiniti include questa autorizzazione:
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
Per ulteriori informazioni sui ruoli IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.
Eliminazione di una prenotazione
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro di navigazione, vai alla sezione Gestione della capacità.
Fai clic sulla scheda Prenotazioni.
Trova la prenotazione che vuoi eliminare.
Espandi
Azioni.Fai clic su Elimina.
Nella finestra di dialogo Elimina prenotazione, fai clic su Elimina.
SQL
Per eliminare una prenotazione, utilizza
DROP RESERVATION
Istruzione DDL.
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor 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 ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
bq
Per eliminare una prenotazione, utilizza il comando bq rm
con --reservation
Segnala:
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
: il località della prenotazioneRESERVATION_NAME
: il nome della prenotazione
Python