Introduzione alle prenotazioni precedenti
Le prenotazioni di BigQuery ti consentono di passare dai prezzi on demand ai prezzi basati sulla capacità. Con i prezzi basati sulla capacità, paghi la capacità di elaborazione delle query dedicata o con scalabilità automatica anziché pagare ogni query singolarmente.
Le prenotazioni ti consentono di allocare la capacità di query, misurata in slot, a diversi carichi di lavoro o a diverse parti della tua organizzazione.
La creazione di un impegno di capacità è facoltativa quando si utilizzano prenotazioni che sfruttano le versioni di BigQuery, ma può far risparmiare sui costi per i carichi di lavoro in stato stazionario.
Panoramica
BigQuery offre due modelli di prezzo per il calcolo (l'analisi):
Prezzi on demand: paga i dati analizzati dalle query. Hai una capacità di elaborazione delle query fissa per progetto e il costo si basa sul numero di byte elaborati da ogni query.
Prezzi basati sulla capacità: paga la capacità di elaborazione delle query dedicata o con scalabilità automatica, misurata in slot, per un periodo di tempo. Più query condividono la stessa capacità dello slot.
Per impostazione predefinita, la fatturazione viene effettuata in base al modello di determinazione dei prezzi on demand. Con le prenotazioni, puoi passare ai prezzi basati sulla capacità, utilizzare la scalabilità automatica degli slot e acquistare impegni di capacità scontati. Non è previsto alcun costo per i byte elaborati quando utilizzi il modello basato sulla capacità.
Puoi combinare entrambi i modelli di fatturazione. Ad esempio, potresti eseguire alcuni carichi di lavoro con prezzi on demand e altri con prezzi basati sulla capacità. Poiché il modello di fatturazione è specificato per progetto, dovrai utilizzare più progetti per i job di query.
Vantaggi delle prenotazioni
I vantaggi dell'utilizzo delle prenotazioni di BigQuery includono:
Prevedibilità. I prezzi basati sulla capacità offrono costi prevedibili e coerenti. Puoi specificare in anticipo il budget massimo per i costi e usufruire anche degli impegni per gli slot, che offrono una capacità continua dedicata a una tariffa scontata.
Flessibilità. Scegli la quantità di capacità dedicata da allocare a un carico di lavoro o lascia che BigQuery scali automaticamente la capacità in base ai requisiti del carico di lavoro. La fatturazione viene effettuata in base agli slot consumati con incrementi minimi di un secondo.
Gestione del carico di lavoro. Per ogni carico di lavoro è disponibile un pool specificato di risorse di calcolo BigQuery. Allo stesso tempo, se un workload non utilizza tutti gli slot dedicati, gli slot inutilizzati vengono condivisi automaticamente tra gli altri workload.
Acquisto centralizzato:puoi acquistare e allocare gli slot per l'intera organizzazione. Non è necessario acquistare slot per ogni progetto che utilizza BigQuery.
Prenotazioni
La capacità di BigQuery viene misurata in slot, che rappresentano le CPU virtuali utilizzate dalle query. In genere, se esegui il provisioning di più slot, puoi eseguire più query contemporaneamente e le query complesse possono essere eseguite più velocemente.
Gli slot vengono allocati in pool chiamati prenotazioni. Le prenotazioni ti consentono di allocare gli slot in modo appropriato per la tua organizzazione.
Ad esempio, puoi creare una prenotazione denominata prod
per i carichi di lavoro di produzione e una prenotazione separata denominata test
per i test. In questo modo, i job di test non competono per le risorse necessarie ai carichi di lavoro di produzione. In alternativa, puoi creare prenotazioni per reparti diversi della tua organizzazione.
Le prenotazioni possono includere slot di riferimento, che vengono sempre allocati, nonché slot con scalabilità automatica, che vengono aggiunti o rimossi dinamicamente in base alle esigenze del tuo carico di lavoro.
Se acquisti impegni per gli slot prima di creare una prenotazione, viene creata automaticamente una prenotazione denominata default
. La prenotazionedefault
non ha nulla di speciale: è stata creata per comodità. Puoi decidere se hai bisogno di prenotazioni aggiuntive o se utilizzare semplicemente la prenotazione predefinita.
Per utilizzare gli slot allocati, devi assegnare uno o più progetti a una prenotazione, come descritto nella sezione successiva.
Una prenotazione è il livello più basso a cui puoi specificare l'allocazione degli slot. L'allocazione degli slot all'interno di una prenotazione è gestita dal programmatore BigQuery.
Compiti
Per utilizzare gli slot allocati, devi assegnare a una prenotazione uno o più progetti, cartelle o organizzazioni. Ogni livello nella gerarchia delle risorse eredita l'assegnazione dal livello superiore. In altre parole, se un progetto o una cartella non è assegnata, eredita l'assegnazione della eventuale cartella o organizzazione principale. Per ulteriori informazioni sulla gerarchia delle risorse, consulta Organizzare le risorse BigQuery.
Quando un job viene avviato da un progetto assegnato a una prenotazione, utilizza gli slot della prenotazione. Se un progetto non è assegnato a una prenotazione (direttamente o per ereditarietà dalla cartella o dall'organizzazione principale), i job al suo interno utilizzano i prezzi on demand.
I compiti None
rappresentano l'assenza di un compito. I progetti assegnati a
None
utilizzano i prezzi on demand. Il caso d'uso più comune per le assegnazioni a None
è assegnare un'organizzazione alla prenotazione e disattivare alcuni progetti o alcune cartelle da quella prenotazione assegnandole a None
. Per ulteriori informazioni, consulta Assegnare un progetto a Nessuno.
Quando crei un compito, specifichi il tipo di job per il compito:
QUERY
: utilizza questa prenotazione per i job di query, tra cui query SQL, DDL, DML e BigQuery ML.PIPELINE
: utilizza questa prenotazione per i job di caricamento ed estrazione.Per impostazione predefinita, i job di caricamento ed estrazione sono gratuiti e utilizzano un pool di slot condiviso. BigQuery non offre garanzie sulla capacità disponibile di questo pool condiviso o sulla velocità effettiva visualizzata. Se carichi grandi quantità di dati, il job potrebbe attendere che gli slot diventino disponibili. In questo caso, ti consigliamo di acquistare slot dedicati e di assegnarvi i job della pipeline. Ti consigliamo di creare un'altra prenotazione dedicata con la condivisione degli slot inattivi disattivata.
Quando i job di caricamento vengono assegnati a una prenotazione, perdono l'accesso al pool gratuito. Monitora il rendimento per assicurarti che i job dispongano di una capacità sufficiente. In caso contrario, il rendimento potrebbe essere addirittura peggiore rispetto all'utilizzo del pool gratuito.
BACKGROUND
: utilizza questa prenotazione quando scegli di utilizzare la tua prenotazione per eseguire i job di gestione dell'indice di ricerca BigQuery o i job in background di BigQuery Change Data Capture (CDC). Utilizza questa prenotazione anche quando replichi i database di origine in BigQuery con le operazioni di applicazione in background di Datastream. Le prenotazioni diBACKGROUND
non sono disponibili nella versione Standard.ML_EXTERNAL
: utilizza questa prenotazione per le query BigQuery ML che utilizzano servizi esterni a BigQuery. Per ulteriori informazioni, consulta Assegnare slot ai carichi di lavoro BigQuery ML. Le prenotazioni diML_EXTERNAL
non sono disponibili nella versione Standard.
Non puoi assegnare gli slot a compiti specifici. Lo schedulatore di BigQuery gestisce l'allocazione degli slot per le assegnazioni in una prenotazione.
Impegni
Un impegno di capacità è l'acquisto di una quantità fissa di capacità di calcolo di BigQuery per una durata minima. Gli impegni di capacità sono facoltativi per le prenotazioni create con un'edizione, ma possono far risparmiare sui costi per i carichi di lavoro in stato stabile.
BigQuery offre diversi piani di impegno tra cui scegliere. Differiscono principalmente per costo e durata minima dell'impegno. Per informazioni sui prezzi attuali, consulta Prezzi del vincolo di capacità.
Impegno annuale. Acquisti un impegno di 365 giorni. Puoi scegliere se rinnovare o passare a un altro tipo di piano con impegno dopo 365 giorni.
Impegno mensile. Acquisti un impegno minimo di 30 giorni. Dopo 30 giorni, puoi eliminare il piano in qualsiasi momento.
Spazi flessibili. Acquisti un impegno di 60 secondi. Puoi eliminarlo in qualsiasi momento dopo 60 secondi. Gli slot flessibili sono un buon modo per testare il rendimento dei tuoi carichi di lavoro con la fatturazione a tariffa fissa, prima di acquistare un impegno a lungo termine. Sono inoltre utili per gestire la domanda ciclica o stagionale o per eventi con un carico elevato come la stagione fiscale.
Indipendentemente dal piano selezionato, gli slot non scadono al termine del periodo di impegno. Mantieni gli slot e ti vengono addebitati fino a quando non li elimini. Puoi anche modificare il tipo di piano dopo la durata minima.
Gli slot sono soggetti alla disponibilità di capacità. Quando tenti di acquistare impegni per gli slot, il completamento di questo acquisto non è garantito. Tuttavia, se l'acquisto dell'impegno va a buon fine, la capacità è garantita fino all'eliminazione dell'impegno.
Per ulteriori dettagli su questi piani, vedi Piani di impegno.
Allocazione di slot all'interno delle prenotazioni
BigQuery alloca la capacità dello slot all'interno di una singola prenotazione utilizzando un algoritmo chiamato pianificazione equa.
Il programmatore BigQuery applica la condivisione equa degli slot tra i progetti con query in esecuzione all'interno di una prenotazione e poi all'interno dei job di un determinato progetto. Il programmatore garantisce l'equità finale. Potrebbero verificarsi brevi periodi in cui alcuni job ricevono una quota sproporzionata di slot, ma lo schedulatore alla fine corregge questo problema. Lo scopo dello scheduler è trovare un equilibrio tra un'espulsione troppo aggressiva delle attività in esecuzione (che comporta un'inutile perdita di tempo dello slot) e un'espulsione troppo permissiva (che comporta un'allocazione sproporzionata del tempo dello slot ai job con attività in esecuzione prolungata).
Se un job importante ha costantemente bisogno di più slot di quelli che riceve dall'organizzatore, valuta la possibilità di creare una prenotazione aggiuntiva con un numero garantito di slot e di assegnarlo a quella prenotazione. Per saperne di più, consulta Gestione dei carichi di lavoro.
Slot inattivi
In un determinato momento, alcuni slot potrebbero essere inattivi. ad esempio:
- Impegni di slot non allocati a nessuna prenotazione.
- Slot allocati a un riferimento di prenotazione, ma non attualmente in uso.
Per impostazione predefinita, le query in esecuzione in una prenotazione utilizzano automaticamente gli slot inattivi di altre prenotazioni all'interno dello stesso progetto di amministrazione. Ciò significa che un job può essere eseguito sempre, a condizione che sia disponibile la capacità. La capacità inutilizzata può essere immediatamente prelevata dalla prenotazione assegnata in origine, in base alle esigenze, indipendentemente dalla priorità della query che richiede le risorse. Ciò avviene automaticamente in tempo reale.
Per disattivare questa funzionalità e forzare una prenotazione a utilizzare solo gli slot
allocati, imposta ignore_idle_slots
su true
. Le prenotazioni con ignore_idle_slots
impostato su true
non ricevono slot inattivi.
Non puoi condividere gli slot inattivi tra prenotazioni di versioni diverse. Puoi condividere solo gli slot di riferimento o quelli assegnati. Gli slot con scalabilità automatica potrebbero essere temporaneamente disponibili, ma non sono condivisibili in quanto potrebbero essere ridotti.
Finché ignore_idle_slots
è false, una prenotazione può avere un conteggio di slot di
0
e avere comunque accesso agli slot inutilizzati. Se utilizzi solo la prenotazione default
, ti consigliamo di configurarla in questo modo. Puoi quindi
assegnare un progetto o una cartella
a questa prenotazione, che utilizzerà solo gli slot inutilizzati.
Le attribuzioni di tipo ML_EXTERNAL
sono un'eccezione al comportamento descritto
in precedenza. Gli slot utilizzati dai job di creazione di modelli esterni BigQuery ML non sono preemibili, ovvero gli slot in una prenotazione con tipi di assegnazione sia ml_external che query
sono disponibili per altri job di query solo quando non sono occupati dai job ML_EXTERNAL
.
Inoltre, questi job non utilizzano gli slot inattivi di altre prenotazioni.
Limitazioni
- Le prenotazioni acquistate non possono essere condivise con altre organizzazioni.
- Devi creare una prenotazione e un progetto di amministrazione distinta per ogni organizzazione.
- Ogni organizzazione può avere un massimo di 10 progetti di amministrazione con impegni attivi in un'unica località.
- La capacità inutilizzata non può essere condivisa tra organizzazioni o tra diversi progetti di amministrazione all'interno di un'unica organizzazione.
- Gli impegni sono una risorsa regionale. Gli impegni acquistati in una o più regioni non possono essere utilizzati in altre regioni o in più regioni. Gli impegni non possono essere spostati da una regione all'altra o tra regioni e più regioni.
- Gli impegni acquistati in un progetto di amministrazione non possono essere spostati in un progetto di amministrazione diverso.
- Gli impegni acquistati con una versione non possono essere utilizzati con le prenotazioni di un'altra versione.
- Gli slot inattivi non vengono condivisi tra le prenotazioni di versioni diverse.
- Gli slot con scalabilità automatica non sono condivisibili perché vengono ridotti quando non sono più necessari.
Quote
La quota di slot è il numero massimo di slot che puoi acquistare in una località. Non ti viene addebitato alcun costo per le quote, ma solo per le prenotazioni e gli impegni. Per ulteriori informazioni, consulta le quote e i limiti per le prenotazioni. Per informazioni su come aumentare la quota di slot, consulta Richiedere un aumento della quota.
Prezzi
Per informazioni sui prezzi delle prenotazioni, consulta la sezione Prezzi a costo fisso.
Passaggi successivi
Per iniziare a utilizzare le prenotazioni BigQuery, consulta Iniziare a utilizzare le prenotazioni
Per decidere quale modello di fatturazione utilizzare, consulta Scegliere un modello di fatturazione.