Introduzione alle prenotazioni

Le prenotazioni BigQuery consentono di passare tra prezzi on demand e prezzi a costo fisso. Con il modello a costo fisso, acquisti una capacità di elaborazione delle query dedicata. Puoi allocare questa capacità all'interno della tua organizzazione riservando pool di capacità per diversi progetti o parti diverse dell'organizzazione. Puoi anche combinare i due modelli di fatturazione sfruttando i prezzi on demand e a costo fisso.

Panoramica

BigQuery offre due modelli di prezzi per l'analisi:

Per impostazione predefinita, la fatturazione viene effettuata in base al modello di determinazione dei prezzi on demand. Utilizzando Prenotazioni BigQuery, puoi passare al prezzo a costo fisso acquistando gli impegni. Gli impegni vengono acquistati in unità di slot BigQuery. Il costo di tutti i byte elaborati è incluso nel prezzo a costo fisso.

I vantaggi dell'utilizzo di Prenotazioni BigQuery includono:

  • Prevedibilità. Il modello a costo fisso offre costi prevedibili e coerenti. Sai fin dall'inizio quanto spendi.

  • Flessibilità. Sei tu a scegliere la capacità di acquisto. Ti viene addebitata una tariffa fissa al secondo finché non elimini l'impegno di capacità. Puoi combinare entrambi i modelli di fatturazione. Ad esempio, potresti eseguire alcuni carichi di lavoro con prezzi on demand e altri con prezzi a costo fisso.

    BigQuery offre un piano a costo fisso a una tariffa scontata, se acquisti un impegno minimo mensile o annuale.

  • Gestione del carico di lavoro. Dopo aver acquistato gli slot, puoi assegnarli ai carichi di lavoro. In questo modo, un carico di lavoro dispone di un pool dedicato di risorse di calcolo BigQuery disponibili per l'uso. Allo stesso tempo, se un carico di lavoro non utilizza tutti gli slot assegnati, gli slot non utilizzati vengono condivisi automaticamente tra gli altri carichi di lavoro.

  • Acquisto centralizzato: puoi acquistare e allocare slot per l'intera organizzazione. Non è necessario acquistare slot per ogni progetto che utilizza BigQuery.

Impegni

Concetti sulle prenotazioni.

Un impegno di capacità è un acquisto di capacità di calcolo BigQuery per un periodo di tempo minimo. Gli impegni vengono misurati in slot BigQuery, che sono un'unità di capacità di calcolo. Uno slot rappresenta una CPU virtuale utilizzata da BigQuery. In genere, se acquisti più slot, puoi eseguire più query simultanee, mentre le query complesse possono essere eseguite più rapidamente.

BigQuery offre diversi piani di impegno tra cui scegliere. Dipendono principalmente dal costo e dalla durata minima dell'impegno. Per informazioni sui prezzi attuali, consulta la sezione Prezzi a costo fisso.

  • Impegno annuale. Hai sottoscritto un impegno di 365 giorni. Puoi scegliere se rinnovare o passare a un tipo di impegno diverso dopo 365 giorni.

  • Impegno mensile. Hai acquistato un impegno minimo di 30 giorni. Dopo 30 giorni, puoi eliminare il piano in qualsiasi momento.

  • Slot flessibili. acquisti un impegno di 60 secondi. Puoi eliminarlo in qualsiasi momento dopo 60 secondi. Gli slot flessibili sono un ottimo modo per verificare il rendimento dei carichi di lavoro con fatturazione a costo fisso prima di acquistare un impegno a lungo termine. Inoltre, sono utili per gestire la domanda ciclica o stagionale o per eventi con un carico elevato, ad esempio il periodo fiscale.

Qualsiasi piano tu selezioni, i tuoi slot non scadono al termine del periodo di impegno. Conserva gli slot e ti vengono addebitati i costi finché non li elimini. Puoi anche modificare il tipo di piano dopo la durata minima.

Gli slot sono soggetti a disponibilità. Quando provi ad acquistare impegni di slot, il successo di questo acquisto non è garantito. Tuttavia, una volta che l'acquisto dell'impegno ha esito positivo, la tua capacità è garantita fino a quando non elimini l'impegno.

Per maggiori dettagli su questi piani, consulta la sezione Piani di impegno.

Prenotazioni

Dopo aver acquistato gli slot, puoi assegnarli a bucket diversi, chiamati prenotazioni. Le prenotazioni consentono di assegnare gli slot in modo logico per la tua organizzazione.

Ad esempio, potresti 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 diversi reparti della tua organizzazione.

Una prenotazione di nome default viene creata automaticamente quando acquisti slot. Non c'è niente di speciale nella prenotazione di default: è stato creato per comodità. Puoi decidere se hai bisogno di prenotazioni aggiuntive o usare la prenotazione predefinita.

Per utilizzare gli slot acquistati, devi assegnare un progetto a una prenotazione, come descritto nella sezione successiva.

Una prenotazione è il livello più basso in cui puoi specificare l'allocazione degli slot. L'allocazione degli slot per le assegnazioni all'interno di una prenotazione viene gestita dallo scheduler di BigQuery.

Assegnazioni

Per utilizzare gli slot acquistati, 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 sono assegnati, tale progetto o cartella eredita l'assegnazione della cartella o dell'organizzazione principale, se presente. Per ulteriori informazioni sulla gerarchia delle risorse, consulta Organizzazione delle risorse BigQuery.

Quando viene avviato un job da un progetto assegnato a una prenotazione, il job utilizza gli slot di quella prenotazione. Se un progetto non è assegnato a una prenotazione (direttamente o ereditando dalla cartella o dall'organizzazione principale), i lavori in quel progetto utilizzano il prezzo on demand.

None assegnazioni rappresentano l'assenza di un compito. I progetti assegnati a None utilizzano prezzi on demand. Il caso d'uso comune delle assegnazioni di None consiste nell'assegnare un'organizzazione alla prenotazione e disattivare alcuni progetti o cartelle di tale prenotazione assegnandoli a None. Per ulteriori informazioni, consulta la pagina Assegnare un progetto a Nessuno.

Quando crei un compito, devi specificarne il tipo:

  • QUERY: utilizza questa prenotazione per i job di query, tra cui le query SQL, DDL, DML e BigQuery ML.

  • PIPELINE: utilizza questa prenotazione per caricare, estrarre e gestire altri job di pipeline.

    Per impostazione predefinita, i job di caricamento ed estrazione sono senza costi e utilizzano un pool condiviso di slot. Non fornisce alcuna garanzia in merito alla capacità disponibile di questo pool condiviso o alla velocità effettiva che vedi. Se carichi grandi quantità di dati, il job potrebbe attendere fino a quando non saranno disponibili slot. In tal caso, potresti acquistare slot dedicati e assegnare loro job di pipeline. Ti consigliamo di creare un'ulteriore prenotazione dedicata con la condivisione degli slot inattivi disattivata.

    Se i job di caricamento vengono assegnati a una prenotazione, non potranno più accedere al pool gratuito. Monitora le prestazioni per assicurarti che i job abbiano una capacità sufficiente. In caso contrario, le prestazioni potrebbero essere effettivamente peggiori rispetto all'uso del pool gratuito.

  • ML_EXTERNAL: utilizza questa prenotazione per le query BigQuery ML che utilizzano servizi esterni a BigQuery.

    Alcune query di BigQuery ML utilizzano servizi esterni a BigQuery. Per utilizzare gli slot riservati con questi servizi esterni, crea un'assegnazione con tipo di job ML_EXTERNAL. Per ulteriori informazioni, consulta la pagina relativa all'assegnazione di slot ai carichi di lavoro di BigQuery ML.

Non puoi assegnare slot a assegnazioni specifiche. Lo scheduler BigQuery gestisce l'allocazione degli slot per le assegnazioni in una prenotazione.

Pianificazione slot

Gli slot sono distribuiti equamente tra i progetti e quindi all'interno dei job nel progetto.

Lo scheduler BigQuery applica la stessa condivisione degli slot tra i progetti con query in esecuzione all'interno di una prenotazione e all'interno dei job di un determinato progetto. Lo scheduler fornisce un'equità finale. Potrebbero esistere brevi periodi in cui alcuni job ricevono una quota sproporzionata di slot, ma lo scheduler alla fine corregge questo problema. L'obiettivo dello scheduler è trovare un mezzo tra essere troppo aggressivi per l'eliminazione delle attività in esecuzione (che comporta uno spreco di tempo per lo slot) e un approccio troppo permissivo (che si traduce in job con attività di lunga durata che ottengono una quota sproporzionata del tempo dello slot).

Se un job importante ha sempre bisogno di più slot rispetto a quanto riceve dallo scheduler, valuta la possibilità di creare una prenotazione aggiuntiva con un numero garantito di slot e di assegnare il job a quella prenotazione. Per ulteriori informazioni, consulta la sezione Gestione del carico di lavoro.

Slot inattivi

Alcuni slot potrebbero essere inattivi in qualsiasi momento. che possono includere:

  • Slot non assegnati a una prenotazione.
  • Slot assegnati a una prenotazione ma non in uso.

Per impostazione predefinita, le query in esecuzione in una prenotazione utilizzano automaticamente gli slot inattivi di altre prenotazioni. Ciò significa che un job può essere eseguito sempre finché c'è una capacità. Le query avviate con gli slot on demand utilizzeranno gli slot inattivi di altre prenotazioni prima di compensare la differenza con gli slot on demand. La capacità inattiva è immediatamente prerilasciabile nella prenotazione originale assegnata, secondo necessità, indipendentemente dalla priorità della query che richiede le risorse. Questa operazione viene eseguita automaticamente in tempo reale.

Per disabilitare questa funzionalità e forzare una prenotazione per utilizzare solo gli slot di cui è stato eseguito il provisioning, imposta ignore_idle_slots su true. Le prenotazioni con ignore_idle_slots impostato su true non ricevono slot inattivi.

Finché ignore_idle_slots è falso, una prenotazione può avere un numero di slot pari a 0 e avere comunque accesso agli slot inutilizzati. Se utilizzi solo la prenotazione default, ti consigliamo di configurarla in questo modo.

Le assegnazioni di tipo ML_EXTERNAL sono un'eccezione al comportamento descritto in precedenza. Gli slot utilizzati dai job di creazione esterna dei modelli BigQuery ML non sono prerilasciabili, ovvero non sono disponibili per altri job in esecuzione nella prenotazione fino al rilascio. Inoltre, questi job non utilizzano slot inattivi di altre prenotazioni.

Limitazioni

  • Le prenotazioni acquistate non possono essere condivise con altre organizzazioni.
  • Devi creare una prenotazione separata e un progetto di amministrazione separato per ogni organizzazione.
  • Esiste un limite di cinque progetti di amministrazione per ciascuna organizzazione che possono avere un impegno attivo in una determinata località.
  • Non è possibile condividere la capacità inattiva tra organizzazioni o tra progetti di amministrazione diversi all'interno di una singola organizzazione.
  • Gli impegni sono una risorsa specifica per area geografica. Gli impegni acquistati in una o più regioni non possono essere utilizzati in altre. Non è possibile spostare gli impegni tra regioni o tra regioni e più regioni.

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 gli impegni acquistati. Per ulteriori informazioni, consulta le quote e i limiti per le prenotazioni. Per informazioni su come aumentare la quota degli slot, consulta Richiedere un aumento di quota.

Prezzi

Per informazioni sui prezzi delle prenotazioni, consulta la sezione Prezzi a costo fisso.

Passaggi successivi