Stima e controllo dei costi
Questa pagina descrive come stimare i costi ed elenca le best practice per il controllo dei costi in BigQuery. BigQuery offre due tipi di modelli di prezzi: on demand e basato sulla capacità. Per informazioni sui prezzi, vedi Prezzi di BigQuery.
Con BigQuery, puoi stimare il costo di esecuzione di una query, calcolare il byte elaborato da varie query e ottenere una stima dei costi mensili in base all'utilizzo previsto. Per controllare i costi, devi inoltre seguire le best practice per l'ottimizzazione del calcolo delle query e l'archiviazione in BigQuery. Per le best practice specifiche per i costi, consulta Controllare i costi delle query.
Per monitorare i costi delle query e l'utilizzo di BigQuery, analizza gli audit log di BigQuery.
Stima i costi delle query
BigQuery offre vari metodi per stimare i costi:
- Utilizza l'opzione Prova di prova delle query per stimare i costi prima di eseguire una query utilizzando il modello di prezzi on demand.
- Calcola il numero di byte elaborati dai vari tipi di query.
- Ottieni il costo mensile in base all'utilizzo previsto utilizzando il Calcolatore prezzi di Google Cloud.
Calcolo delle dimensioni delle query on demand
Per calcolare il numero di byte elaborati dai vari tipi di query utilizzando il modello di fatturazione on demand, consulta le seguenti sezioni:
Esegui query su formati a colonne su Cloud Storage
Se i tuoi dati esterni sono archiviati in formato ORC o Parquet, il numero di byte addebitati è limitato alle colonne lette da BigQuery. Poiché i tipi di dati di un'origine dati esterna sono convertiti dalla query in tipi di dati BigQuery, il numero di byte letti è calcolato in base alle dimensioni dei tipi di dati BigQuery. Per informazioni sulle conversioni dei tipi di dati, consulta le seguenti pagine:
Utilizzare il Calcolatore prezzi di Google Cloud
Il Calcolatore prezzi di Google Cloud può aiutarti a creare una stima dei costi mensili complessivi per BigQuery in base all'utilizzo previsto.
On demand
Per stimare i costi con il Calcolatore prezzi di Google Cloud quando utilizzi il modello di prezzi on demand, segui questi passaggi:
- Apri il Calcolatore prezzi di Google Cloud.
- Fai clic su BigQuery.
- Fai clic sulla scheda On demand.
- In Nome tabella, digita il nome della tabella. Ad esempio,
airports
. - In Prezzi dell'archiviazione, inserisci la dimensione stimata della tabella nei campi di archiviazione. Devi solo stimare l'archiviazione fisica o quella logica, a seconda del modello di fatturazione per l'archiviazione del set di dati.
- In Prezzi delle query, inserisci i byte stimati letti dalla prova o dallo strumento di convalida delle query.
- Fai clic su Aggiungi alla stima.
- La stima è visualizzata a destra. Tieni presente che puoi salvare o inviare la stima via email.
Per ulteriori informazioni, vedi i prezzi on demand.
Versioni
Per stimare i costi con il Calcolatore prezzi di Google Cloud quando utilizzi il modello di prezzi basato sulla capacità con le versioni di BigQuery, segui questi passaggi:
- Apri il Calcolatore prezzi di Google Cloud.
- Fai clic su BigQuery.
- Fai clic sulla scheda Versioni.
- Scegli la posizione in cui vengono utilizzati gli slot.
- Scegli la tua edizione.
- Scegli Numero massimo di slot, Slot di riferimento, Impegno facoltativo e Utilizzo stimato della scalabilità automatica.
- Scegli la località in cui archiviare i dati.
- Inserisci le tue stime dell'utilizzo dello spazio di archiviazione per Archiviazione attiva, Archiviazione a lungo termine, Inserimenti di streaming e Letture streaming. Devi solo stimare l'archiviazione fisica o quella logica, a seconda del modello di fatturazione per l'archiviazione del set di dati.
- Fai clic su Aggiungi alla stima.
Per ulteriori informazioni, consulta i prezzi basati sulla capacità.
Costi delle query di controllo
Per ottimizzare i costi delle query, assicurati di disporre di archiviazione ottimizzata e computing delle query. Per altri metodi per controllare il costo delle query, consulta le sezioni seguenti:
Controlla il costo delle query prima di eseguirle
Best practice: prima di eseguire le query, visualizza l'anteprima per stimare i costi.
Le query vengono fatturate in base al numero di byte letti. Per stimare i costi prima di eseguire una query:
- Utilizza lo strumento di convalida delle query nella console Google Cloud.
- Utilizza il Calcolatore prezzi di Google Cloud.
- Esegui una prova per le query.
Utilizzare lo strumento di convalida delle query
Quando inserisci una query nella console Google Cloud, lo strumento di convalida delle query verifica la sintassi delle query e fornisce una stima del numero di byte letti. Puoi utilizzare questa stima per calcolare il costo delle query nel Calcolatore prezzi.
Se la query non è valida, lo strumento di convalida delle query mostra un messaggio di errore. Ad esempio:
Not found: Table myProject:myDataset.myTable was not found in location US
Se la query è valida, lo strumento di convalida delle query fornisce una stima del numero di byte necessari per elaborare la query. Ad esempio:
This query will process 623.1 KiB when run.
Esegui una prova
Per eseguire una prova, segui questi passaggi:
Console
Vai alla pagina di BigQuery.
Inserisci la query nell'editor di query.
Se la query è valida, viene visualizzato automaticamente un segno di spunta insieme alla quantità di dati che verrà elaborata dalla query. Se la query non è valida, viene visualizzato un punto esclamativo insieme a un messaggio di errore.
bq
Inserisci una query come la seguente utilizzando il flag --dry_run
.
bq query \ --use_legacy_sql=false \ --dry_run \ 'SELECT COUNTRY, AIRPORT, IATA FROM `project_id`.dataset.airports LIMIT 1000'
Per una query valida, il comando produce la seguente risposta:
Query successfully validated. Assuming the tables are not modified, running this query will process 10918 bytes of data.
API
Per eseguire una prova utilizzando l'API, invia un job di query con dryRun
impostato su true
nel tipo JobConfiguration.
Go
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Go di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
PHP
Prima di provare questo esempio, segui le istruzioni per la configurazione di PHP nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API PHP di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Python
Imposta la proprietà
QueryJobConfig.dry_run
su True
.
Client.query()
restituisce sempre un
QueryJob
completato quando viene fornita una configurazione di query dry run.
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Evita di eseguire query per esplorare i dati della tabella
Best practice: non eseguire query per esplorare o visualizzare l'anteprima dei dati della tabella.
Se stai sperimentando o esplorando i tuoi dati, puoi utilizzare le opzioni di anteprima della tabella per visualizzare i dati gratuitamente e senza influire sulle quote.
BigQuery supporta le seguenti opzioni di anteprima dei dati:
- Nella pagina dei dettagli della tabella della console Google Cloud, fai clic sulla scheda Anteprima per campionare i dati.
- Nello strumento a riga di comando bq, utilizza il comando
bq head
e specifica il numero di righe da visualizzare in anteprima. - Nell'API, utilizza
tabledata.list
per recuperare i dati della tabella da un insieme specificato di righe. - Evita di utilizzare
LIMIT
nelle tabelle non in cluster. Per le tabelle non in cluster, una clausolaLIMIT
non riduce i costi di elaborazione.
Limita il numero di byte fatturati
Best practice: utilizza l'impostazione Numero massimo di byte fatturati per limitare i costi delle query.
Puoi limitare il numero di byte fatturati per una query utilizzando l'impostazione Numero massimo di byte fatturati. Quando imposti il numero massimo di byte fatturati, il numero di byte letti dalla query viene stimato prima dell'esecuzione della query. Se il numero di byte stimati supera il limite, la query non va a buon fine senza dover sostenere alcun addebito.
Per le tabelle in cluster, la stima del numero di byte fatturati per una query è un limite superiore e può essere superiore al numero effettivo di byte fatturati dopo l'esecuzione della query. Pertanto, in alcuni casi, se imposti il numero massimo di byte fatturati, una query su una tabella in cluster può avere esito negativo, anche se i byte effettivi fatturati non supererebbero l'impostazione del numero massimo di byte fatturati.
Se una query non va a buon fine a causa dell'impostazione del numero massimo di byte fatturati, viene restituito un errore simile al seguente:
Error: Query exceeded limit for bytes billed: 1000000. 10485760 or higher
required.
Per impostare il numero massimo di byte fatturati:
Console
- In Editor di query, fai clic su Altro > Impostazioni query > Opzioni avanzate.
- Nel campo Numero massimo di byte fatturati, inserisci un numero intero.
- Fai clic su Salva.
bq
Utilizza il comando bq query
con il flag --maximum_bytes_billed
.
bq query --maximum_bytes_billed=1000000 \ --use_legacy_sql=false \ 'SELECT word FROM `bigquery-public-data`.samples.shakespeare'
API
Imposta la proprietà maximumBytesBilled
in JobConfigurationQuery
o
QueryRequest
.
Evita di utilizzare LIMIT
nelle tabelle non in cluster
Best practice: per le tabelle non in cluster, non utilizzare una clausola LIMIT
come metodo di controllo dei costi.
Per le tabelle non in cluster, l'applicazione di una clausola LIMIT
a una query non influisce sulla quantità di dati letti. Ti viene addebitato il costo per la lettura di tutti i byte
nell'intera tabella come indicato dalla query, anche se la query restituisce solo
un sottoinsieme. Con una tabella in cluster, una clausola LIMIT
può ridurre il numero di byte scansionati, perché l'analisi si interrompe quando viene analizzato un numero sufficiente di blocchi per ottenere il risultato. Ti vengono addebitati solo i byte analizzati.
Visualizza i costi utilizzando una dashboard ed esegui query sugli audit log
Best practice: crea una dashboard per visualizzare i dati di fatturazione in modo da poter apportare modifiche all'utilizzo di BigQuery. Valuta anche la possibilità di trasmettere i flussi di controllo a BigQuery per analizzare i pattern di utilizzo.
Puoi esportare i dati di fatturazione in BigQuery e visualizzarli in uno strumento come Looker Studio. Per un tutorial sulla creazione di una dashboard di fatturazione, consulta Visualizzare la fatturazione di Google Cloud utilizzando BigQuery e Looker Studio.
Puoi anche trasmettere i flussi di audit log a BigQuery e analizzare i log per i pattern di utilizzo, come i costi delle query per utente.
Materializza i risultati della query in più fasi
Best practice: se possibile, materializza i risultati della query in fasi.
Se crei una query multifase di grandi dimensioni, ogni volta che la esegui, BigQuery legge tutti i dati richiesti dalla query. Ti vengono addebitati tutti i dati letti ogni volta che viene eseguita la query.
Suddividi invece la query in fasi, in cui ogni fase materializza i risultati della query scrivendoli in una tabella di destinazione. L'esecuzione di query sulla tabella di destinazione più piccola riduce la quantità di dati letti e riduce i costi. Il costo dell'archiviazione dei risultati materializzati è molto inferiore al costo dell'elaborazione di grandi quantità di dati.
Usa la scadenza per le tabelle di destinazione
Best practice: se scrivi risultati di query di grandi dimensioni in una tabella di destinazione, utilizza la scadenza predefinita della tabella per rimuovere i dati quando non sono più necessari.
Conservare set di risultati di grandi dimensioni in uno spazio di archiviazione BigQuery ha un costo. Se non hai bisogno dell'accesso permanente ai risultati, utilizza la scadenza predefinita della tabella per eliminare automaticamente i dati.
Per ulteriori informazioni, vedi i prezzi dello spazio di archiviazione.
Passaggi successivi
- Scopri i prezzi di BigQuery.
- Scopri come ottimizzare le query.
- Scopri come ottimizzare lo spazio di archiviazione.
Per informazioni su fatturazione, avvisi e visualizzazione dei dati, consulta i seguenti argomenti: