Questa pagina fornisce alcuni esempi di come eseguire query sui dati di fatturazione Cloud esportati e archiviati in BigQuery.
Per ulteriori informazioni sull'esportazione dei dati di fatturazione in BigQuery, consulta la panoramica e le limitazioni.
Specificare il nome della tabella da utilizzare nelle query
In questi esempi, per eseguire query sui dati di fatturazione Cloud in BigQuery, devi specificare il nome della tabella nella clausola FROM
. Il nome della tabella viene determinato utilizzando tre valori: project.dataset.BQ_table_name.
- project è l'ID del progetto Google Cloud che hai configurato contenente il set di dati BigQuery.
- set di dati è il nome del set di dati BigQuery che hai configurato per contenere le tabelle BigQuery con i tuoi dati di fatturazione Cloud esportati.
- BQ_table_name è il nome della tabella BigQuery contenente i dati di fatturazione Cloud esportati su cui vuoi eseguire una query.
Esistono tre tabelle BigQuery che contengono
i dati di fatturazione Cloud:
- Tabella dei costi di utilizzo standard:
nel set di dati BigQuery, questa tabella è denominata
gcp_billing_export_v1_<BILLING_ACCOUNT_ID>
. - Tabella dettagliata dei costi di utilizzo:
nel set di dati BigQuery, questa tabella è denominata
gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
. - Tabella dei prezzi:
nel set di dati BigQuery, questa tabella è denominata
cloud_pricing_export
.
- Tabella dei costi di utilizzo standard:
nel set di dati BigQuery, questa tabella è denominata
Esempi di query per tipo di dati di fatturazione Cloud
Questa pagina fornisce esempi di query per i dati di costo di utilizzo standard, i dati di costo dettagliati sull'utilizzo e i dati sui prezzi.
Se hai scelto di esportare i dati di costo di utilizzo dettagliati, puoi utilizzare gli esempi di query Costo di utilizzo standard oltre agli esempi di query Costo di utilizzo dettagliato.
Dati sui costi di utilizzo standard | Dati dettagliati sui costi di utilizzo | Dati sui prezzi |
---|---|---|
Esempi di query sui costi di utilizzo standard | Esempi di query dettagliati sui costi di utilizzo | Esempi di query sui dati dei prezzi |
Esempi di query sui costi di utilizzo standard
Questa sezione fornisce esempi di come eseguire query sui dati di costo di utilizzo standard di Cloud Billing esportati in BigQuery.
Questi esempi di query funzionano anche con i dati dettagliati sui costi di utilizzo esportati in BigQuery, anche se non sono scritti per recuperare nessuna delle informazioni a livello di risorsa fornite con l'opzione di esportazione dettagliata dei costi di utilizzo.
Valori comuni utilizzati nelle query di esempio relative ai costi standard
Gli esempi di query in questa sezione utilizzano il seguente valore per Nome tabella:
project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX
Restituire i costi totali di una fattura
Le seguenti query mostrano due modi per visualizzare i valori di costo e di credito utilizzando i dati di fatturazione esportati.
- Il campo
total
somma direttamente il costo in virgola mobile e i valori del credito, il che può causare errori di arrotondamento in virgola mobile. - Il campo
total_exact
converte i costi e i valori del credito in micro prima della somma, quindi li converte in dollari dopo la somma, evitando l'errore di arrotondamento in virgola mobile.
Esempio 1: somma di tutti i costi per fattura
Questa query mostra il totale delle fatture di ogni mese, come somma di costi, tasse, aggiustamenti ed errori di arrotondamento standard.
SQL standard
SELECT invoice.month, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS total, (SUM(CAST(cost AS NUMERIC)) + SUM(IFNULL((SELECT SUM(CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))) AS total_exact FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY 1 ORDER BY 1 ASC ;
Ad esempio, il risultato della query precedente potrebbe essere:
Row | mese | totale | total_exact |
---|---|---|---|
1 | 201901 | 1005,004832999999984 | 1005,00 $ |
2 | 201902 | 992,3101739999999717 | 992,31 $ |
3 | 201903 | 1220,761089999999642 | 1220,76 $ |
Esempio 2: dettagli sui resi per tipo di costo, per mese di fatturazione
Questa query mostra i totali di ogni cost_type
per ogni mese. I tipi di costi includono costi standard, tasse, aggiustamenti ed errori di arrotondamento.
SQL standard
SELECT invoice.month, cost_type, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS total, (SUM(CAST(cost AS NUMERIC)) + SUM(IFNULL((SELECT SUM(CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))) AS total_exact FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY 1, 2 ORDER BY 1 ASC, 2 ASC ;
Ad esempio, il risultato della query precedente potrebbe essere:
Row | mese | cost_type | totale | total_exact |
---|---|---|---|---|
1 | 201901 | regolare | 1000,501209987994782 | 1000,50 $ |
2 | 201901 | rounding_error | –$0,500489920049387 | –$0,50 |
3 | 201901 | tasse | 10,000329958477891 | $ 10,00 |
4 | 201901 | aggiustamento | –$5,002572999387045 | –$5,00 |
Esempi di query con etichette
I seguenti esempi illustrano altri modi per eseguire query sui dati con etichette.
Per gli esempi di questa sezione, si suppone quanto segue:
- Hai due app (grapefruit-squeezer e chocolate-masher).
- Per ogni app, hai due ambienti (sviluppo e produzione).
- L'ambiente di sviluppo ha una piccola istanza per app.
- L'ambiente di produzione ha una piccola istanza nelle Americhe e una piccola in Asia.
- Ogni istanza è etichettata con l'app e l'ambiente.
- Hai una istanza senza etichette che usi per la sperimentazione.
Il tuo conto totale è di $ 24 con la seguente ripartizione:
Istanza | Etichette | Costo totale |
---|---|---|
Piccola istanza con una vCPU in esecuzione nelle Americhe | Nessun valore | $ 4 |
Piccola istanza con 1 vCPU in esecuzione nelle Americhe | app: cioccolato-masher ambiente: dev |
$ 2 |
Piccola istanza con 1 vCPU in esecuzione nelle Americhe | app: spremiagrumi-pompelmo ambiente: dev |
3 $ |
Piccola istanza con 1 vCPU in esecuzione nelle Americhe | app: cioccolato-masher ambiente: prod |
$ 3,25 |
Piccola istanza con una vCPU in esecuzione in Asia | app: cioccolato-masher ambiente: prod |
$ 3,75 |
Piccola istanza con 1 vCPU in esecuzione nelle Americhe | app: spremiagrumi-grapefruit ambiente: prod |
$ 3,50 |
Piccola istanza con una vCPU in esecuzione in Asia | app: spremiagrumi-grapefruit ambiente: prod |
$ 4,50 |
Esecuzione di query su ogni riga senza raggruppamento
La visualizzazione più granulare di questi costi si otterrebbe eseguendo una query su ogni riga senza raggruppamento. Supponi che tutti i campi, eccetto le etichette e la descrizione della SKU, siano gli stessi (progetto, servizio e così via).
SQL standard
SELECT sku.description, TO_JSON_STRING(labels) as labels, cost as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX`;
SQL precedente
TO_JSON_STRING not supported.
Riga | sku.description | etichette | costo |
---|---|---|---|
1 | Piccola istanza con una vCPU in esecuzione nelle Americhe | [] | $ 4 |
2 | Piccola istanza con una vCPU in esecuzione nelle Americhe | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}] | $ 2 |
3 | Piccola istanza con una vCPU in esecuzione nelle Americhe | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}] | $ 3 |
4 | Piccola istanza con una vCPU in esecuzione nelle Americhe | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | $ 3,25 |
5 | Piccola istanza con una vCPU in esecuzione in Asia | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | $ 3,75 |
6 | Piccola istanza con una vCPU in esecuzione nelle Americhe | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | $ 3,50 |
7 | Piccola istanza con una vCPU in esecuzione in Asia | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | $ 4,50 |
TOTALE | $ 24 |
Raggruppamento per mappa di etichetta sotto forma di stringa JSON
Questo è un modo rapido e semplice per ripartire i costi in base a ogni combinazione di etichette.
SQL standard
SELECT TO_JSON_STRING(labels) as labels, sum(cost) as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY labels;
SQL precedente
TO_JSON_STRING not supported.
Riga | etichette | costo |
---|---|---|
1 | [] | $ 4 |
2 | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}] | $ 2 |
3 | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}] | $ 3 |
4 | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | $ 7 |
5 | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | $ 8 |
TOTALE | $ 24 |
Raggruppamento per valore di etichetta per una chiave specifica
La ripartizione dei costi per i valori di una chiave di etichetta specifica è un caso d'uso comune. Se utilizzi un LEFT JOIN e inserisci il filtro per la chiave ("key") nella condizione JOIN (anziché WHERE), includi il costo che non contiene questa chiave, in modo da ottenere una visione completa del costo.
SQL standard
SELECT labels.value as environment, SUM(cost) as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(labels) as labels ON labels.key = "environment" GROUP BY environment;
SQL precedente
SELECT labels.value as environment, SUM(cost) as cost FROM [project:dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX] WHERE labels.key = "environment" OR labels.key IS NULL GROUP BY environment;
Riga | ambiente | costo |
---|---|---|
1 | prod | $ 15 |
2 | dev | $ 5 |
3 | null | $ 4 |
TOTALE | $ 24 |
Raggruppamento per coppie chiave/valore
Fai attenzione al momento di interpretare o esportare questi risultati. Una singola riga in questi esempi mostra una somma valida senza doppio conteggio, ma non dovrebbe essere combinata con altre righe, tranne eventualmente se la chiave è la stessa o se hai la certezza che le chiavi non verranno mai impostate sulla stessa risorsa.
SQL standard
SELECT labels.key as key, labels.value as value, SUM(cost) as cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(labels) as labels GROUP BY key, value;
SQL precedente
SELECT labels.key as key, labels.value as value, SUM(cost) FROM [project:dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX] GROUP BY key, value;
Riga | chiave | valore | costo |
---|---|---|---|
1 | null | null | $ 4 |
2 | app | chocolate-masher | $ 9 |
3 | app | grapefruit-squeezer | $ 11 |
4 | environment | dev | $ 5 |
5 | environment | prod | $ 15 |
TOTALE | $ 44 |
Nota come la somma totale sia maggiore dell'importo della tua fattura.
Query sugli sconti per impegno di utilizzo
Le seguenti query mostrano i modi per visualizzare le tariffe e i crediti associati agli sconti per impegno di utilizzo nei dati di fatturazione esportati. Per capire in che modo le tariffe e i crediti dell'impegno vengono attribuiti ai progetti e all'account di fatturazione Cloud, consulta Attribuzione degli sconti per impegno di utilizzo.
Visualizzazione delle tariffe dell'impegno
Per visualizzare le tariffe dell'impegno per i tuoi sconti per impegno di utilizzo nell'esportazione dei dati di fatturazione, utilizza la seguente query di esempio.
SQL standard
SELECT invoice.month AS invoice_month, SUM(cost) as commitment_fees FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` WHERE LOWER(sku.description) LIKE "commitment%" GROUP BY 1
Visualizzazione dei crediti dell'impegno
Per visualizzare i crediti dello sconto per impegno di utilizzo nell'esportazione dei dati di fatturazione, utilizza la seguente query di esempio.
SQL standard
SELECT invoice.month AS invoice_month, SUM(credits.amount) as CUD_credits FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(credits) AS credits WHERE credits.type = "COMMITTED_USAGE_DISCOUNT" GROUP BY 1
Usa i filtri della gerarchia delle risorse per esaminare la discendenza
Puoi utilizzare i filtri della gerarchia delle risorse per aggregare i costi in base agli elementi della gerarchia, ad esempio progetti, cartelle e organizzazioni. Questi esempi di query mostrano i metodi per sommare i costi filtrati in base agli elementi della gerarchia delle risorse e visualizzare le origini del progetto.
Esempio 1: filtrare per nome risorsa
Questo esempio mostra le query che raggruppano i costi per discendenza del progetto e filtrano solo i costi generati in un elemento della gerarchia specificato, identificati dal nome della risorsa relativo.
Metodo stringa
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq WHERE TO_JSON_STRING(project.ancestors) like "%resource_name\":\"folders/1234" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
Metodo UNNEST
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq, UNNEST(project.ancestors) as ancestor WHERE ancestor.resource_name = "folders/1234" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
Esempio 2: filtrare per nome visualizzato
Questo esempio mostra le query che raggruppano i costi per discendenza del progetto e filtrano solo i costi generati in un elemento della gerarchia specificato, identificati dal nome visualizzato fornito dall'utente.
Metodo di corrispondenza delle stringhe
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq WHERE TO_JSON_STRING(project.ancestors) like "%display_name\":\"MyFolderName%" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
Metodo UNNEST
SELECT invoice.month AS invoice_month, TO_JSON_STRING(project.ancestors) as ancestors, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` as bq, UNNEST(project.ancestors) as ancestor WHERE ancestor.display_name = "MyFolderName" GROUP BY invoice_month, ancestors ORDER BY invoice_month, ancestors
Esempi di query con tag
I seguenti esempi illustrano modi per eseguire query sui dati con i tag.
Calcolare i costi per mese di fatturazione con i tag
La seguente query mostra come utilizzare i costi di reso in base al mese di fatturazione per il tag cost_center
.
SELECT invoice.month AS invoice_month, tag.value AS cost_center, ROUND((SUM(CAST(cost AS NUMERIC)) + SUM(IFNULL((SELECT SUM (CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))), 2) AS net_cost FROM `ivory-vim-309221.billing_export_dataset.gcp_billing_export_resource_v1_018ADD_3CEBBB_A4DF22`, UNNEST(tags) AS tag WHERE tag.key = "cost_center" AND tag.namespace = "821092389413" GROUP BY invoice.month, tag.value ORDER BY invoice.month, tag.value;
Ad esempio, il risultato della query precedente potrebbe essere:
Row | invoice_month | cost_center | net_cost |
---|---|---|---|
1 | 202208 | android_mobile_apps | 9,93 |
2 | 202208 | ios_mobile_apps | 9,93 |
3 | 202209 | android_mobile_apps | 25,42 |
4 | 202209 | ios_mobile_apps | 25,4 |
5 | 202209 | personalizzazione | 16,08 |
Visualizza i costi delle risorse senza tag
Questa query mostra il totale della fattura per le risorse senza tag, raggruppate per mese di fatturazione.
SELECT invoice.month AS invoice_month, ROUND((SUM(CAST(cost AS NUMERIC)) + SUM(IFNULL((SELECT SUM(CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))), 2) AS net_cost FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` WHERE "color" NOT IN (SELECT key FROM UNNEST(tags)) GROUP BY invoice_month ORDER BY invoice_month;
Ad esempio, il risultato della query precedente potrebbe essere:
Row | invoice_month | net_cost |
---|---|---|
1 | 202202 | 0 |
2 | 202203 | 16,81 |
3 | 202204 | 54,09 |
4 | 202205 | 55,82 |
5 | 202206 | 54,09 |
6 | 202207 | 55,83 |
7 | 202208 | 31,49 |
Altri esempi di query
Query sui costi e sui crediti per progetto per un mese di fatturazione specificato
Se fornisci un mese di fatturazione specifico di giugno 2020 (nel formato AAAAMM), questa query restituirà una visualizzazione dei costi e dei crediti raggruppati per progetto, insieme alla visualizzazione delle etichette del progetto.
SQL standard
SELECT project.name, TO_JSON_STRING(project.labels) as project_labels, sum(cost) as total_cost, SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) as total_credits FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` WHERE invoice.month = "202006" GROUP BY 1, 2 ORDER BY 1;
SQL precedente
TO_JSON_STRING not supported.
Row | name | project_labels | total_cost | total_credits |
---|---|---|---|---|
1 | CTG - Dev | [{"key":"ctg_p_env","value":"dev"}] | 79.140979 | -4.763796 |
2 | CTG - Prod | [{"key":"ctg_p_env","value":"prod"},{"key":"ctg_team","value":"eng"}] | 32.466272 | -3.073356 |
3 | CTG - Sandbox | [{"key":"ctg_p_env","value":"dev"}] | 0 | 0 |
4 | CTG - Storage | [{"key":"ctg_p_env","value":"prod"},{"key":"ctg_team","value":"data"}] | 7.645793 | -0.003761 |
Esempi dettagliati di query sul costo di utilizzo
Questa sezione fornisce esempi di come eseguire query sui dati di costo di utilizzo dettagliati di fatturazione Cloud esportati in BigQuery.
Poiché lo schema del costo di utilizzo dettagliato include tutti i campi dello schema dei costi di utilizzo standard, anche gli esempi di query forniti per i dati standard esportati in BigQuery funzionano con i dati dettagliati esportati. Tieni presente che gli esempi di query standard non vengono scritti per recuperare le informazioni a livello di risorsa fornite con l'opzione di esportazione dei costi di utilizzo dettagliati. Quando crei query per i dati dettagliati, puoi utilizzare un esempio di query standard come modello, aggiornare il Nome tabella e aggiungere uno qualsiasi dei campi disponibili nello schema dei costi di utilizzo dettagliato.
Per ulteriori requisiti e limitazioni ai dati dettagliati esportati, consulta Schema dei dati di costo di utilizzo dettagliati.
Valori comuni utilizzati nelle query dettagliate sui costi di esempio
Gli esempi di query in questa sezione utilizzano il seguente valore per Nome tabella:
project.dataset.gcp_billing_export_resource_v1_XXXXXX_XXXXXX_XXXXXX
Restituire i costi a livello di risorsa in una fattura
Le seguenti query mostrano due modi per visualizzare i valori di costo e di credito a livello di risorsa in una fattura utilizzando i dati di fatturazione esportati.
- Il campo
total
somma direttamente il costo in virgola mobile e i valori del credito, il che può causare errori di arrotondamento in virgola mobile. - Il campo
total_exact
converte i costi e i valori del credito in micro prima della somma, quindi li converte in dollari dopo la somma, evitando l'errore di arrotondamento in virgola mobile.
Somma i costi per ogni risorsa, per fattura
Questa query mostra il totale della fattura per ogni resource.name
al mese, come somma di costi, tasse, aggiustamenti ed errori di arrotondamento standard. Tutti i costi non associati a un elemento a livello di risorsa vengono aggregati sotto il nome null
per il mese.
SQL standard
SELECT invoice.month, resource.name, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS total, (SUM(CAST(cost AS NUMERIC)) + SUM(IFNULL((SELECT SUM(CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))) AS total_exact FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY 1, 2 ORDER BY 1 ASC, 2 ASC ;
Ad esempio, il risultato della query precedente potrebbe essere:
Row | mese | name | totale | total_exact |
---|---|---|---|---|
1 | 201901 | null | 1005,004832999999984 | 1005,00 $ |
2 | 201901 | backend1 | 781,8499760000028 | 781,85 € |
3 | 201902 | null | $953,0034923645475983 | 953,03 $ |
4 | 201902 | backend1 | 992,3101739999999717 | 992,31 $ |
5 | 201902 | bitnami-launchpad-wordpress-1-wordpress | 1,2817819999999998 | 1,28 $ |
Dettagli sui resi in base al tipo di costo per ogni risorsa, per mese di fatturazione
Questa query mostra i totali per ogni cost_type
per ogni resource.name
al mese. I tipi di costo includono costi standard, tasse, aggiustamenti ed errori di arrotondamento. Gli eventuali costi non associati a un elemento a livello di risorsa vengono aggregati
sotto il nome null
del mese.
SQL standard
SELECT invoice.month, cost_type, resource.name, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS total, (SUM(CAST(cost AS NUMERIC)) + SUM(IFNULL((SELECT SUM(CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))) AS total_exact FROM `project.dataset.gcp_billing_export_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY 1, 2, 3 ORDER BY 1 ASC, 2 ASC, 3 ASC ;
Ad esempio, il risultato della query precedente potrebbe essere:
Row | mese | cost_type | name | totale | total_exact |
---|---|---|---|---|---|
1 | 201901 | regolare | null | 1000,501209987994782 | 1000,50 $ |
2 | 201901 | rounding_error | null | –$0,500489920049387 | –$0,50 |
3 | 201901 | tasse | null | 10,000329958477891 | $ 10,00 |
4 | 201901 | aggiustamento | null | –$5,002572999387045 | –$5,00 |
5 | 201901 | regolare | backend1 | 410,998795012082947 | 411,00 $ |
2 | 201901 | rounding_error | backend1 | –$0,2404900489920378 | –$0,24 |
3 | 201901 | tasse | backend1 | $4,105840329977189 | 4,11 $ |
Ottieni un'analisi dettagliata dei costi dei cluster Google Kubernetes Engine (GKE)
Questa sezione fornisce esempi su come filtrare i costi dei cluster GKE nei report di BigQuery Export. Per saperne di più sui costi dei cluster GKE, vedi Visualizzare l'analisi dettagliata dei costi dei cluster.
Filtra costi di GKE
Le query di esempio seguenti mostrano come filtrare e raggruppare i costi di GKE per i tipi di risorse supportati in base a nome del cluster, spazio dei nomi ed etichetta.
Costi dei cluster GKE prima dei crediti
SELECT SUM(cost) AS cost_before_credits, labels.value AS cluster_name FROM `project.dataset.gcp_billing_export_resource_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(labels) as labels ON labels.key = "goog-k8s-cluster-name" GROUP BY labels.value ;
Costi di GKE al netto dei crediti per spazio dei nomi
SELECT labels.value as namespace, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS cost_after_credits, FROM `project.dataset.gcp_billing_export_resource_v1_XXXXXX_XXXXXX_XXXXXX` LEFT JOIN UNNEST(labels) as labels ON labels.key = "k8s-namespace" GROUP BY namespace ;
Costi di GKE per SKU
SELECT project.id AS project_id, labels.value AS cluster_name, sku.id AS sku_id, sku.description AS sku_description, SUM(cost) AS cost FROM `project.dataset.gcp_billing_export_resource_v1_XXXXXX_XXXXXX_XXXXXX` JOIN UNNEST(labels) AS labels ON labels.key = "goog-k8s-cluster-name" GROUP BY cluster_name, project_id, sku_description, sku_id ;
Esempi di query sui dati sui prezzi
Questa sezione fornisce diversi esempi su come eseguire query sui dati dei prezzi di fatturazione Cloud esportati in BigQuery.
Valori comuni utilizzati nelle query sui prezzi di esempio
Gli esempi di query in questa sezione utilizzano i seguenti valori:
- Nome tabella:
project.dataset.cloud_pricing_export
- ID SKU:
2DA5-55D3-E679
(Cloud Run - Richieste)
Visualizzare i prezzi di listino per uno SKU specifico
Questo esempio mostra una semplice query che restituisce list_price
per ogni livello di prezzo per uno SKU specificato.
SQL standard
SELECT sku.id, sku.description, list_price.* FROM `project.dataset.cloud_pricing_export` WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND sku.id = "2DA5-55D3-E679" ;
_PARTITIONTIME
è un campo generato automaticamente da BigQuery
e rappresenta la data a cui appartengono i dati. Anziché _PARTITIONTIME
,
puoi utilizzare un campo generato esplicitamente dall'esportazione della fatturazione Cloud,
come
pricing_as_of_time
.
Ecco la stessa query configurata per utilizzare il campo pricing_as_of_time
:
SELECT sku.id, sku.description, list_price.* FROM `project.dataset.cloud_pricing_export` WHERE DATE(pricing_as_of_time) = "2020-07-20" AND sku.id = "2DA5-55D3-E679" ;
Risultati delle query
Row | id | description | pricing_unit | aggregation_info. aggregation_level |
aggregation_info. aggregation_interval |
tiered_rates. pricing_unit_quantity |
tiered_rates. start_usage_amount |
livelli_di_aliquota. usd_amount |
tiered_rates. account_currency_amount |
---|---|---|---|---|---|---|---|---|---|
1 | 2DA5-55D3-E679 | Richieste | COUNT | CONTO | MENSILE | 1000000 | 0 | 0 | 0 |
1000000 | 2000000 | 0.4 | 0.4 |
Visualizzare i prezzi di listino per uno SKU specifico e includere la descrizione del servizio
I due esempi in questa sezione mostrano query che restituiscono il valore list_price
per ogni livello di prezzo per uno SKU specificato e includono la descrizione dello SKU e la descrizione del servizio.
- L'esempio 1 restituisce uno SKU per riga, con i livelli di prezzo visualizzati come dati nidificati.
- L'esempio 2 mostra l'annullamento della nidificazione dei dati in modo da restituire una riga per SKU per livello di prezzo.
Esempio 1: restituisce dati nidificati
Questo esempio esegue una query su un singolo SKU per restituire i dati di list_price
. Questo SKU ha più livelli di prezzo.
I valori del campo del prezzo di listino vengono visualizzati in singole righe nidificate sotto la riga ID SKU.
SQL standard
SELECT sku.id AS sku_id, sku.description AS sku_description, service.id AS service_id, service.description as service_description, list_price.* FROM my-billing-admin-project.my_billing_dataset.cloud_pricing_export WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND sku.id = "2DA5-55D3-E679" ;
Risultati della query:
Row | sku_id | sku_description | service_id | service_description | aggregation_info. aggregation_level |
aggregation_info. aggregation_interval |
tiered_rates. pricing_unit_quantity |
tiered_rates. start_usage_amount |
livelli_di_aliquota. usd_amount |
tiered_rates. account_currency_amount |
---|---|---|---|---|---|---|---|---|---|---|
1 | 2DA5-55D3-E679 | Richieste | 152E-C115-5142 | Cloud Run | CONTO | MENSILE | 1000000 | 0 | 0 | 0 |
1000000 | 2000000 | 0.4 | 0.4 |
Esempio 2: restituisce dati non nidificati uniti alla stessa tabella
Questo esempio esegue una query su un singolo SKU per restituire list price
. Lo SKU ha più livelli di prezzo.
La query dimostra l'utilizzo dell'operatore UNNEST
per unire l'array tiered_rates
e unire i campi con la stessa tabella, ottenendo una riga per livello di prezzo.
SQL standard
SELECT sku.id AS sku_id, sku.description AS sku_description, service.id AS service_id, service.description as service_description, tier.* FROM `my-billing-admin-project.my_billing_dataset.cloud_pricing_export` as sku_pricing, UNNEST (sku_pricing.list_price.tiered_rates) as tier WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND sku.id = "2DA5-55D3-E679" ;
Risultati della query:
Row | sku_id | sku_description | service_id | service_description | pricing_unit_quantity | start_usage_amount | usd_amount | account_currency_amount |
---|---|---|---|---|---|---|---|---|
1 | 2DA5-55D3-E679 | Richieste | 152E-C115-5142 | Cloud Run | 1000000,0 | 0.0 | 0.0 | 0.0 |
2 | 2DA5-55D3-E679 | Richieste | 152E-C115-5142 | Cloud Run | 1000000,0 | 2000000,0 | 0.4 | 0.4 |
Utilizzare la tassonomia dei prodotti e la tassonomia geografica per eseguire query sugli SKU
- La tassonomia dei prodotti è un elenco di categorie di prodotto che si applicano allo SKU, ad esempio Serverless, Cloud Run o VM on demand.
- La tassonomia geografica è i metadati geografici che si applicano a uno SKU, composti da valori di tipo e regione.
Ottenere la tassonomia dei prodotti di uno SKU
Questo esempio mostra una query che restituisce l'elenco product_taxonomy
per uno SKU specificato, dove ID SKU = 2DA5-55D3-E679
(Cloud Run - Richieste).
SQL standard
SELECT sku.id AS sku_id, sku.description AS sku_description, service.id AS service_id, service.description as service_description, product_taxonomy FROM `project.dataset.cloud_pricing_export` WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND sku.id = "2DA5-55D3-E679" ;
Risultati della query:
Row | sku_id | sku_description | service_id | service_description | product_taxonomy |
---|---|---|---|---|---|
1 | 2DA5-55D3-E679 | Richieste | 152E-C115-5142 | Cloud Run | Piattaforma Google Cloud |
Serverless | |||||
Cloud Run | |||||
Altro |
Visualizzare tutti gli SKU per una tassonomia dei prodotti specifica
Questo esempio mostra una query che restituisce tutti gli SKU che corrispondono a un elemento product_taxonomy
specificato.
In questa query, specifichiamo Serverless come valore product taxonomy
.
SQL standard
SELECT sku.id AS sku_id, sku.description AS sku_description, service.id AS service_id, service.description as service_description, product_taxonomy FROM `project.dataset.cloud_pricing_export` WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND "Serverless" in UNNEST(product_taxonomy) LIMIT 10 ;
Risultati della query:
Row | sku_id | sku_description | service_id | service_description | product_taxonomy |
---|---|---|---|---|---|
1 | 0160-BD7B-4C40 | Traffico in uscita dalla rete di Cloud Tasks all'interno della regione | F3A6-D7B7-9BDA | Cloud Tasks | Piattaforma Google Cloud |
Serverless | |||||
Cloud Tasks | |||||
Altro | |||||
2 | FE08-0A74-7AFD | Traffico in uscita dall'API GOOGLE-API Cloud Tasks | F3A6-D7B7-9BDA | Cloud Tasks | Piattaforma Google Cloud |
Serverless | |||||
Cloud Tasks | |||||
Altro | |||||
3 | A81A-32A2-B46D | Archiviazione code di attività Salt Lake City | F17B-412E-CB64 | App Engine | Piattaforma Google Cloud |
Serverless | |||||
GAE | |||||
Altro | |||||
TaskQueue |
Ottieni tutti gli SKU per una tassonomia geografica e una tassonomia dei prodotti specifiche
Questo esempio mostra una query che restituisce tutti gli SKU che corrispondono a una regione specifica geo_taxonomy
e a una specifica product_taxonomy
, dove region
= us-east4 e product_taxonomy
= VM on demand.
SQL standard
SELECT sku.id AS sku_id, sku.description AS sku_description, service.id AS service_id, service.description as service_description, geo_taxonomy, product_taxonomy FROM `project.dataset.cloud_pricing_export` WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND "VMs On Demand" in UNNEST(product_taxonomy) AND geo_taxonomy.type = "REGIONAL" AND "us-east4" in UNNEST (geo_taxonomy.regions) ;
Risultati della query:
Row | sku_id | sku_description | service_id | service_description | geo_taxonomy.type | geo_taxonomy.regions | product_taxonomy |
---|---|---|---|---|---|---|---|
1 | 9174-81EE-425B | Premium single-tenancy per RAM di istanza single-tenancy in esecuzione in Virginia | 6F81 5844 456 A | Compute Engine | REGIONALE | us-east4 | Piattaforma Google Cloud |
Computing | |||||||
GCE | |||||||
VM on demand | |||||||
Memoria: per GB | |||||||
2 | C3B9-E891-85ED | RAM di istanza single-tenancy in esecuzione in Virginia | 6F81 5844 456 A | Compute Engine | REGIONALE | us-east4 | Piattaforma Google Cloud |
Computing | |||||||
GCE | |||||||
VM on demand | |||||||
Memoria: per GB | |||||||
3 | 6E2A-DCD9-87ED | RAM di istanza predefinita N1 in esecuzione in Virginia | 6F81 5844 456 A | Compute Engine | REGIONALE | us-east4 | Piattaforma Google Cloud |
Computing | |||||||
GCE | |||||||
VM on demand | |||||||
Memoria: per GB |
Unisci i dati sui prezzi con dati di costo di utilizzo dettagliati
Questa query mostra come unire le esportazioni dei dati sui prezzi e di costo per visualizzare informazioni dettagliate sui prezzi in linea con i tuoi costi. Puoi configurare questa query in modo da estrarre i dati esportati dai tuoi dati di costo di utilizzo dettagliati (come Exports
) e unire i dati di costo di utilizzo ai dati sui prezzi esportati (come Prices
).
Usa il nome della tabella dei costi di utilizzo dettagliato
per estrarre i dati di Exports
:
gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
Utilizza il nome della tabella dei prezzi per i dati Prices
:project.dataset.cloud_pricing_export
WITH Exports AS ( SELECT * FROM `project.dataset.gcp_billing_export_resource_v1_XXXXXX_XXXXXX_XXXXXX` ), Prices AS ( SELECT * FROM `project.dataset.cloud_pricing_export` ) SELECT Exports.sku.description AS sku_description, Exports.cost, Exports.usage, FlattenedPrices.pricing_unit_description, FlattenedPrices.account_currency_amount, FlattenedPrices.account_currency_code, FROM Exports JOIN (SELECT * FROM Prices CROSS JOIN UNNEST(Prices.list_price.tiered_rates)) AS FlattenedPrices ON Exports.sku.id = FlattenedPrices.sku.id AND Exports.price.tier_start_amount = FlattenedPrices.start_usage_amount WHERE DATE(Exports.export_time) = '2023-06-30' AND DATE(FlattenedPrices.export_time) = '2023-06-30' AND cost > 0 LIMIT 1000
Ad esempio, il risultato della query precedente potrebbe essere:
sku_description | costo | utilizzo | pricing_unit_description | account_currency_amount | account_currency_code |
---|---|---|---|---|---|
Capacità DP bilanciata | 0,001345 | { "usage": { "amount": "38654705664000.0", "unit": "byte-seconds", "amount_in_pricing_units": "0,01345895", "pricing_unit": "gibibyte month" } } | mese gibibyte | 0.1 | USD |
Capacità DP bilanciata | 0,001344 | { "usage": { "amount": "38654705664000.0", "unit": "byte-seconds", "amount_in_pricing_units": "0,01345895", "pricing_unit": "gibibyte month" } } | mese gibibyte | 0.1 | USD |
Capacità DP bilanciata | 0,001346 | { "usage": { "amount": "38654705664000.0", "unit": "byte-seconds", "amount_in_pricing_units": "0,01345895", "pricing_unit": "gibibyte month" } } | mese gibibyte | 0.1 | USD |
Argomenti correlati
Argomenti relativi ai dati di fatturazione Cloud esportati
- Configurare l'esportazione dei dati di fatturazione Cloud in BigQuery
- Informazioni sulle tabelle dei dati di fatturazione Cloud in BigQuery
- Visualizzare la spesa nel tempo con Looker Studio
Report su costi e prezzi disponibili nella console Google Cloud
- Visualizzare i report di fatturazione Cloud e le tendenze dei costi
- Visualizzare e scaricare i dettagli dei costi di una fattura o di un estratto conto
- Visualizzare e scaricare i prezzi dei servizi cloud di Google
- Comprendi i risparmi con i report sulla ripartizione dei costi
- Analizza l'efficacia degli sconti per impegno di utilizzo
- Visualizzare la cronologia di costi e pagamenti