In diesem Dokument finden Sie einige Beispiele zum Abfragen der Cloud Billing-Daten, die nach BigQuery exportiert und dort gespeichert wurden.
Weitere Informationen zum Exportieren Ihrer Abrechnungsdaten in BigQuery finden Sie unter Übersicht und Einschränkungen.
SQL-Abfrage aus einem Abrechnungsbericht generieren
Wenn Sie schnell eine SQL-Abfrage schreiben möchten, die die entsprechenden Ergebnisse in BigQuery als Ergebnisse in einem Abrechnungsbericht zurückgibt, können Sie das Feature Abfrage generieren unter Abrechnungsberichte verwenden, das in der Google Cloud Console verfügbar ist.
Tabellennamen angeben, der in Abfragen verwendet werden soll
Zum Abfragen der exportierten Cloud Billing-Daten in BigQuery müssen Sie in diesen Beispielen den vollständigen Pfad zum Tabellennamen in der Klausel FROM angeben. Der Tabellenname wird mit drei durch Punkte getrennten Werten ermittelt:
project-ID.dataset_name.BQ_table_name
project-IDist die ID des Google Cloud von Ihnen eingerichteten Projekts, das Ihr BigQuery-Dataset enthält.dataset_nameist der Name des von Ihnen eingerichteten BigQuery-Datasets, das die BigQuery-Tabellen mit Ihren exportierten Cloud Billing-Daten enthalten soll.BQ_table_nameist der Name der BigQuery-Tabelle, die die exportierten Cloud Billing-Daten enthält, die Sie abfragen möchten.Den BigQuery-Tabellen, die die exportierten Cloud Billing-Daten enthalten, wird automatisch ein Name zugewiesen, der auf dem von Ihnen aktivierten Exporttyp basiert:
Tabelle mit Standardnutzungskosten: In Ihrem BigQuery-Dataset heißt diese Tabelle
gcp_billing_export_v1_<BILLING-ACCOUNT-ID>.Tabelle mit detaillierten Nutzungskosten: In Ihrem BigQuery-Dataset heißt diese Tabelle
gcp_billing_export_resource_v1_<BILLING-ACCOUNT-ID>.Preistabelle: Diese Tabelle heißt in Ihrem BigQuery-Dataset
cloud_pricing_export.
Angenommen, Sie haben ein Cloud-Rechnungskonto, das für den Export detaillierter Nutzungskostendaten konfiguriert ist, und die Komponenten der Abrechnungsexport konfiguration sind folgende:
project-ID:my-billing-projectdataset_name:my_billing_datasetBQ_table_name:gcp_billing_export_resource_v1_<BILLING-ACCOUNT-ID>BILLING-ACCOUNT-ID:010101-F0FFF0-10X10X– Dies ist die ID des Cloud-Rechnungskonto, das die zu exportierenden Abrechnungsdaten enthält. Rechnungskonto-ID ermitteln
Basierend auf den Beispielwerten würden Sie die FROM-Klausel so schreiben:
my-billing-project.my_billing_dataset.gcp_billing_export_resource_v1_010101-F0FFF0-10X10X
Beispielabfragen nach Cloud Billing-Datentyp
FOCUS-Nutzungskostendaten
Tipps und Anleitungen zur Verwendung von SQL zum Ausführen von Abfragen für Ihren Export von FOCUS-Abrechnungsdaten finden Sie in den FOCUS-Beispielanwendungsfällen auf der Website der FinOps Foundation:
FOCUS v1.2-Anwendungsfälle | FOCUS v1.1-Anwendungsfälle | FOCUS v1.0-Anwendungsfälle
Standardnutzungskosten, detaillierte Nutzungskosten und Preisdaten
In diesem Abschnitt finden Sie Beispielabfragen für standardmäßige Nutzungskosten, detaillierte Nutzungskosten und Preisdaten.
Wenn Sie sich für den Export detaillierter Nutzungskostendaten entschieden haben, können Sie zusätzlich zu den Beispielen für detaillierte Nutzungskostenabfragen auch die Beispiele für Standard-Nutzungskostenabfragen verwenden.
Abfragebeispiele für Standardnutzungskosten
In diesem Abschnitt wird anhand von Beispielen gezeigt, wie Sie die in BigQuery exportierten Cloud Billing-Standardnutzungskosten abfragen.
Diese Abfragebeispiele funktionieren auch mit detaillierten Nutzungskosten, die nach BigQuery exportiert werden, allerdings sind sie nicht zum Abrufen der Informationen auf Ressourcenebene geschrieben, die mit der Exportoption zu detaillierten Nutzungskosten bereitgestellt wird.
Häufige Werte, die in den Abfragebeispiele für Standardkosten verwendet werden
In den Abfragebeispielen in diesem Abschnitt wird als Tabellenname der folgende Wert verwendet:
project-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX
Gesamtkosten einer Rechnung zurückgeben
Die folgenden Abfragen zeigen zwei Möglichkeiten, wie Sie sich Kosten und Guthaben anhand von exportierten Abrechnungsdaten anzeigen lassen können.
- Im Feld
totalwerden die Gleitkommawerte für Kosten und Gutschriften direkt summiert. Dadurch kann es zu Rundungsfehlern kommen. - Das Feld
total_exactwandelt die Kosten- und Gutschriftswerte vor dem Summieren in "Micros" um. Nach dem Summieren werden diese wieder in Dollar umgewandelt und so Rundungsfehler mit Gleitkommazahlen vermieden.
Beispiel 1: Summe aller Kosten pro Rechnung
Diese Abfrage zeigt die Rechnungssumme für jeden Monat als Summe der regelmäßigen Kosten, Steuern, Korrekturen und Rundungsfehler.
Standard-SQL
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-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX` GROUP BY 1 ORDER BY 1 ASC ;
Das Ergebnis der vorherigen Abfrage kann beispielsweise so aussehen:
| Zeile | Monat | Gesamt | Summe (genau) |
|---|---|---|---|
| 1 | 201901 | 1005,004832999999984 $ | 1005,00 $ |
| 2 | 201902 | 992,3101739999999717 $ | 992,31 $ |
| 3 | 201903 | 1220,761089999999642 $ | 1220,76 $ |
Beispiel 2: Details zu den zurückgegebenen Daten nach Kostenart pro Rechnungsmonat
Diese Abfrage ergibt die Gesamtsummen für jeden cost_type pro Monat. Kostenarten umfassen regelmäßige Kosten, Steuern, Korrekturen und Rundungsfehler.
Standard-SQL
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-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX` GROUP BY 1, 2 ORDER BY 1 ASC, 2 ASC ;
Das Ergebnis der vorherigen Abfrage kann beispielsweise so aussehen:
| Zeile | Monat | Kostenart | Gesamt | Summe (genau) |
|---|---|---|---|---|
| 1 | 201901 | regulär | 1000,501209987994782 $ | 1000,50 $ |
| 2 | 201901 | Rundungsfehler | -0,500489920049387 $ | -0,50 $ |
| 3 | 201901 | Steuer | 10,000329958477891 $ | 10,00 $ |
| 4 | 201901 | Korrektur | -5,002572999387045 $ | -5,00 $ |
Abfragebeispiele mit Labels
Die folgenden Beispiele zeigen andere Möglichkeiten zum Abfragen von Daten mit Labels.
Bei den Beispielen in diesem Abschnitt wird Folgendes angenommen:
- Sie haben zwei Anwendungen (grapefruit-squeezer und chocolate-masher).
- Für jede Anwendung gibt es zwei Umgebungen (Entwicklung und Produktion).
- Die Entwicklungsumgebung hat eine kleine Instanz pro Anwendung.
- Die Produktionsumgebung hat eine kleine Instanz in Nord- und Südamerika und eine kleine Instanz in Asien.
- Jede Instanz trägt den Namen der Anwendung und der Umgebung.
- Sie haben eine Instanz ohne Labels, die Sie für Tests verwenden.
Ihre Rechnung beträgt insgesamt 24 $ und setzt sich so zusammen:
| Instanz | Labels | Gesamtkosten |
|---|---|---|
| Kleine Instanz mit einer VCPU in Amerika | Keine | 4 $ |
| Kleine Instanz mit einer VCPU in Amerika | app: chocolate-masher environment: dev |
2 $ |
| Kleine Instanz mit einer VCPU in Amerika | app: grapefruit-squeezer environment: dev |
3 $ |
| Kleine Instanz mit einer VCPU in Amerika | app: chocolate-masher environment: prod |
3,25 $ |
| Kleine Instanz mit einer VCPU in Asien | app: chocolate-masher environment: prod |
3,75 $ |
| Kleine Instanz mit einer VCPU in Amerika | app: grapefruit-squeezer environment: prod |
3,50 $ |
| Kleine Instanz mit einer VCPU in Asien | app: grapefruit-squeezer environment: prod |
4,50 $ |
Jede Zeile einzeln abfragen
Die detaillierteste Kostenansicht erhalten Sie, indem Sie jede Zeile einzeln abfragen, ohne Gruppierungen vorzunehmen. Gehen wir davon aus, dass mit Ausnahme von Labels und der SKU-Beschreibung alle Felder wie Projekt, Produkt usw. identisch sind.
Standard-SQL
SELECT sku.description, TO_JSON_STRING(labels) as labels, cost as cost FROM `project-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX`;
Legacy-SQL
TO_JSON_STRING not supported.
| Zeile | sku.description | Labels | Kosten |
|---|---|---|---|
| 1 | Kleine Instanz mit einer VCPU in Amerika | [] | 4 $ |
| 2 | Kleine Instanz mit einer VCPU in Amerika | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"dev"}] | 2 $ |
| 3 | Kleine Instanz mit einer VCPU in Amerika | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"dev"}] | 3 $ |
| 4 | Kleine Instanz mit einer VCPU in Amerika | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | 3,25 $ |
| 5 | Kleine Instanz mit einer VCPU in Asien | [{"key":"app","value":"chocolate-masher"},{"key":"environment","value":"prod"}] | 3,75 $ |
| 6 | Kleine Instanz mit einer VCPU in Amerika | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | 3,50 $ |
| 7 | Kleine Instanz mit einer VCPU in Asien | [{"key":"app","value":"grapefruit-squeezer"},{"key":"environment","value":"prod"}] | 4,50 $ |
| GESAMT | 24 $ |
Nach Labelzuordnung als JSON-String gruppieren
Mit dieser Methode können Sie die Kosten nach Labelkombination aufschlüsseln.
Standard-SQL
SELECT TO_JSON_STRING(labels) as labels, sum(cost) as cost FROM `project-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX` GROUP BY labels;
Legacy-SQL
TO_JSON_STRING not supported.
| Zeile | Labels | Kosten |
|---|---|---|
| 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 $ |
| GESAMT | 24 $ |
Nach Labelwert für einen bestimmten Schlüssel gruppieren
Häufig werden die Kosten nach den Werten eines bestimmten Labelschlüssels aufgeschlüsselt. Wenn Sie einen LEFT JOIN verwenden und den Schlüsselfilter in die JOIN-Bedingung (anstatt in WHERE) einfügen, werden Kosten berücksichtigt, die diesen Schlüssel nicht enthalten. So erhalten Sie einen vollständigen Überblick über Ihre Kosten.
Standard-SQL
SELECT labels.value as environment, SUM(cost) as cost FROM `project-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX` LEFT JOIN UNNEST(labels) as labels ON labels.key = "environment" GROUP BY environment;
Legacy-SQL
SELECT labels.value as environment, SUM(cost) as cost FROM [project-ID:dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX] WHERE labels.key = "environment" OR labels.key IS NULL GROUP BY environment;
| Zeile | Umgebung | Kosten |
|---|---|---|
| 1 | prod | 15 $ |
| 2 | dev | 5 $ |
| 3 | null | 4 $ |
| GESAMT | 24 $ |
Nach Schlüssel/Wert-Paar gruppieren
Behalten Sie dies beim Interpretieren oder Exportieren der Ergebnisse im Hinterkopf. Eine einzelne Zeile zeigt hier eine gültige Summe ohne doppelte Zählung. Sie sollte jedoch nicht mit anderen Zeilen kombiniert werden, es sei denn, beide haben denselben Schlüssel oder die Schlüssel werden definitiv nicht in derselben Ressource verwendet.
Standard-SQL
SELECT labels.key as key, labels.value as value, SUM(cost) as cost FROM `project-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX` LEFT JOIN UNNEST(labels) as labels GROUP BY key, value;
Legacy-SQL
SELECT labels.key as key, labels.value as value, SUM(cost) FROM [project-ID:dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX] GROUP BY key, value;
| Zeile | Schlüssel | Wert | Kosten |
|---|---|---|---|
| 1 | null | null | 4 $ |
| 2 | App | chocolate-masher | 9 $ |
| 3 | App | grapefruit-squeezer | 11 $ |
| 4 | Umgebung | dev | 5 $ |
| 5 | Umgebung | prod | 15 $ |
| GESAMT | 44 $ |
Beachten Sie, dass die Gesamtsumme größer als auf der Rechnung ist.
Abfragen mit Rabatten für zugesicherte Nutzung
Die folgenden Abfragen zeigen, wie die Gebühren und Gutschriften aufgerufen werden können, die mit Rabatten für zugesicherte Nutzung in exportierten Abrechnungsdaten verknüpft sind. Um zu verstehen, wie Ihre Zusicherungsgebühren und -Gutschriften Ihrem Cloud-Rechnungskonto und Ihren Projekten zugeordnet werden, siehe Zuweisung von Rabatten für zugesicherte Nutzung.
Zusicherungsgebühren ansehen
Verwenden Sie die folgende Beispielabfrage, um die Zusicherungsgebühren für Ihre Rabatte für zugesicherte Nutzung in Ihrem Abrechnungsdatenexport aufzurufen.
Standard-SQL
SELECT invoice.month AS invoice_month, SUM(cost) as commitment_fees FROM `project-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX` WHERE LOWER(sku.description) LIKE "commitment%" GROUP BY 1
Gutschriften für Zusicherungen ansehen
Mit der folgenden Beispielabfrage können Sie das Guthaben für Rabatte für zugesicherte Nutzung im Abrechnungsdatenexport ansehen.
Standard-SQL
SELECT invoice.month AS invoice_month, SUM(credits.amount) as CUD_credits FROM `project-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX` LEFT JOIN UNNEST(credits) AS credits WHERE credits.type = "COMMITTED_USAGE_DISCOUNT" GROUP BY 1
Filter für die Ressourcenhierarchie zur Überprüfung der Herkunft verwenden
Sie können Ressourcenhierarchiefilter verwenden, um Kosten nach Hierarchieelementen wie Projekten, Ordnern und Organisationen zusammenzufassen. Diese Abfragebeispiele zeigen Methoden für die Summierung von Kosten, die nach Elementen der Ressourcenhierarchie gefiltert sind, und für die Anzeige der Projektherkunft.
Beispiel 1: Nach Ressourcenname filtern
In diesem Beispiel werden Abfragen demonstriert, die Kosten nach Projektherkunft gruppieren und nur Kosten herausfiltern, die unter einem bestimmten Hierarchieelement entstanden sind, das durch den relativen Ressourcennamen identifiziert wird.
String-Methode
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-ID.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
UNNEST-Methode
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-ID.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
Beispiel 2: Nach Anzeigenamen filtern
In diesem Beispiel werden Abfragen demonstriert, die Kosten nach Projektherkunft gruppieren und nur nach Kosten filtern, die unter einem bestimmten Hierarchieelement erzeugt wurden, das durch den vom Nutzer angegebenen Anzeigenamen identifiziert wird.
Stringabgleich-Methode
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-ID.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
UNNEST-Methode
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-ID.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
Abfragebeispiele mit Tags
Die folgenden Beispiele zeigen, wie Sie Ihre Daten mit Tags abfragen können.
Kosten nach Rechnungsmonat mit Tags berechnen
Die folgende Abfrage zeigt, wie Sie die Kosten nach Rechnungsmonat für das Tag cost_center zurückgeben können.
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 `project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX`, 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;
Das Ergebnis der vorherigen Abfrage kann beispielsweise so aussehen:
| Zeile | 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 | Personalisierung | 16,08 |
Kosten für Ressourcen ohne Tags ansehen
Diese Abfrage zeigt die Rechnungssumme für Ressourcen ohne Tags, gruppiert nach Rechnungsmonat.
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-ID.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;
Das Ergebnis der vorherigen Abfrage kann beispielsweise so aussehen:
| Zeile | 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 |
Weitere Abfragebeispiele
Abfragekosten und Gutschriften nach Projekt für einen bestimmten Rechnungsmonat
Durch die Angabe eines bestimmten Rechnungsmonats, z. B. Juni 2020 (im Format JJJJMM), gibt diese Abfrage eine Ansicht der nach Projekt gruppierten Kosten und Gutschriften zurück und zeigt Projektlabels an.
Standard-SQL
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-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX` WHERE invoice.month = "202006" GROUP BY 1, 2 ORDER BY 1;
| Zeile | 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 |
Kosten abfragen, um Korrekturen oder verspätet monetarisierte Nutzung für einen bestimmten Rechnungsmonat anzusehen
Durch die Angabe eines bestimmten Rechnungsmonats und das Filtern nach dem Datum, an dem das Nutzungsdatum vor dem Rechnungsmonat aufgetreten ist, gibt diese vereinfachte Abfrage Kostensummen für Korrekturen oder verspätet monetarisierte Nutzung (Gebühren, die auf einer früheren Rechnung hätten stehen müssen) zurück.
Standard-SQL
SELECT SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS total FROM `project-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX` WHERE invoice.month = '202403' AND DATE(TIMESTAMP_TRUNC(usage_start_time, Day, 'US/Pacific')) < '2024-03-01';
Das Ergebnis der vorherigen Abfrage kann beispielsweise so aussehen:
| Zeile | Gesamt |
|---|---|
| 1 | 3.531752 |
Kostendetails abfragen, um Korrekturen oder verspätet monetarisierte Nutzung nach Dienst für einen bestimmten Rechnungsmonat anzusehen
Dieses Beispiel zeigt eine Abfrage, die eine Kostenaufschlüsselung nach Dienst für Rechnungsgebühren zurückgibt, wobei das Nutzungsdatum vor dem Rechnungsmonat liegt. Diese Abfrage gibt die Kosten- und Gutschriftsummen nach Dienst für Korrekturen oder verspätet monetarisierte Nutzung (Gebühren, die auf einer früheren Rechnung hätten stehen müssen) zurück.
In diesem Abfragebeispiel filtert die Klausel WHERE nach allen Gebühren mit einem Rechnungsmonat im März 2024 (im Format JJJJMM) und verfeinert die Ergebnisse dann weiter, um nur diejenigen Gebühren für den Rechnungsmonat zurückzugeben, die ein Nutzungsdatum vor dem 1. März 2024 haben.
SELECT DATE(TIMESTAMP_TRUNC(usage_start_time, Day, 'US/Pacific')) AS `Day`, service.description AS `Service Description`, SUM(CAST(cost_at_list AS NUMERIC)) AS `List cost`, SUM(CAST(cost AS NUMERIC)) - SUM(CAST(cost_at_list AS NUMERIC)) AS `Negotiated savings`, SUM(IFNULL((SELECT SUM(CAST(c.amount AS numeric)) FROM UNNEST(credits) c WHERE c.type IN ('SUSTAINED_USAGE_DISCOUNT', 'DISCOUNT', 'SPENDING_BASED_DISCOUNT', 'COMMITTED_USAGE_DISCOUNT', 'FREE_TIER', 'COMMITTED_USAGE_DISCOUNT_DOLLAR_BASE', 'SUBSCRIPTION_BENEFIT', 'RESELLER_MARGIN')), 0)) AS `Discounts`, SUM(IFNULL((SELECT SUM(CAST(c.amount AS numeric)) FROM UNNEST(credits) c WHERE c.type IN ('CREDIT_TYPE_UNSPECIFIED', 'PROMOTION')), 0)) AS `Promotions and others`, SUM(CAST(cost_at_list AS NUMERIC)) + SUM(IFNULL((SELECT SUM(CAST(c.amount AS numeric)) FROM UNNEST(credits) c WHERE c.type IN ('SUSTAINED_USAGE_DISCOUNT', 'DISCOUNT', 'SPENDING_BASED_DISCOUNT', 'COMMITTED_USAGE_DISCOUNT', 'FREE_TIER', 'COMMITTED_USAGE_DISCOUNT_DOLLAR_BASE', 'SUBSCRIPTION_BENEFIT', 'RESELLER_MARGIN')), 0)) + SUM(CAST(cost AS NUMERIC)) - SUM(CAST(cost_at_list AS NUMERIC))+ SUM(IFNULL((SELECT SUM(CAST(c.amount AS numeric)) FROM UNNEST(credits) c WHERE c.type IN ('CREDIT_TYPE_UNSPECIFIED', 'PROMOTION')), 0)) AS `Subtotal` FROM `project-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX` WHERE invoice.month = '202403' AND DATE(TIMESTAMP_TRUNC(usage_start_time, Day, 'US/Pacific')) < '2024-03-01' GROUP BY Day, service.description ORDER BY Day DESC, Subtotal DESC;
Das Ergebnis der vorherigen Abfrage kann beispielsweise so aussehen:
| Zeile | Tag | Dienstbeschreibung | Listenpreiskosten | Ausgehandelte Einsparungen | Rabatte | Startguthaben und andere Gutschriften | Zwischensumme |
|---|---|---|---|---|---|---|---|
| 1 | 2024-02-29 | Compute Engine | 4,39916 | 0 | -1,00916 | 0 | 3,39000 |
| 2 | 2024-02-29 | Support | 0,131969 | 0 | 0 | 0 | 0,131969 |
| 3 | 2024-02-29 | BigQuery | 0,005502 | 0 | 0 | 0 | 0,005502 |
| 4 | 2024-02-29 | Netzwerk | 0,010972 | 0 | -0,006691 | 0 | 0,004281 |
Abfragebeispiele zu detaillierten Nutzungskosten
Dieser Abschnitt enthält Beispiele für die Abfrage von detaillierten Cloud Billing-Nutzungskosten, die nach BigQuery exportiert werden.
Da das Schema der detaillierten Nutzungskosten alle Felder aus dem Schema der Standardnutzungskosten umfasst, funktionieren die nach BigQuery exportierten Standarddaten auch mit den exportierten detaillierten Daten. Die Abfragebeispiele für Standardnutzungskosten sind nicht zum Abrufen von Informationen auf Ressourcenebene geschrieben, die mit der Exportoption für detaillierte Nutzungskosten bereitgestellt werden. Beim Erstellen von Abfragen für die detaillierten Daten können Sie ein Standardabfragebeispiel als Vorlage verwenden, den Tabellennamen aktualisieren und alle Felder hinzufügen, die im Schema der detaillierten Nutzungskosten verfügbar sind.
Weitere Anforderungen und Einschränkungen für die exportierten detaillierten Daten finden Sie im Schema der detaillierten Nutzungskosten.
Allgemeine Werte, die in den Abfragebeispielen zu detaillierten Nutzungskosten verwendet werden
In den Abfragebeispielen in diesem Abschnitt wird als Tabellenname der folgende Wert verwendet:
project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX
Kosten auf Ressourcenebene einer Rechnung zurückgeben
Die folgenden Abfragen zeigen zwei Möglichkeiten, wie Sie sich Kosten und Gutschriften auf Ressourcenebene in einer Rechnung mithilfe von exportierten Abrechnungsdaten anzeigen lassen können.
- Im Feld
totalwerden die Gleitkommawerte für Kosten und Gutschriften direkt summiert. Dadurch kann es zu Rundungsfehlern kommen. - Das Feld
total_exactwandelt die Kosten- und Gutschriftswerte vor dem Summieren in "Micros" um. Nach dem Summieren werden diese wieder in Dollar umgewandelt und so Rundungsfehler mit Gleitkommazahlen vermieden.
Summe der Kosten für jede Ressource pro Rechnung
Diese Abfrage zeigt die Rechnungssumme für jeden resource.name pro Monat als Summe der regelmäßigen Kosten, Steuern, Korrekturen und Rundungsfehler. Alle Kosten, die keinem Element auf Ressourcenebene zugeordnet sind, werden unter dem Namen null für den Monat zusammengefasst.
Standard-SQL
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-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX` GROUP BY 1, 2 ORDER BY 1 ASC, 2 ASC ;
Das Ergebnis der vorherigen Abfrage kann beispielsweise so aussehen:
| Zeile | Monat | Name | Gesamt | Summe (genau) |
|---|---|---|---|---|
| 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 $ |
Details zu den zurückgegebenen Daten nach Kostenart für jede Ressource und pro Rechnungsmonat
Diese Abfrage ergibt die Gesamtsummen für jeden cost_type für jeden resource.name pro Monat. Kostenarten umfassen regelmäßige Kosten, Steuern, Korrekturen und Rundungsfehler. Alle Kosten, die keinem Element auf Ressourcenebene zugeordnet sind, werden unter dem Namen null für den Monat zusammengefasst.
Standard-SQL
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-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX` GROUP BY 1, 2, 3 ORDER BY 1 ASC, 2 ASC, 3 ASC ;
Das Ergebnis der vorherigen Abfrage kann beispielsweise so aussehen:
| Zeile | Monat | Kostenart | Name | Gesamt | Summe (genau) |
|---|---|---|---|---|---|
| 1 | 201901 | regulär | Null | 1000,501209987994782 $ | 1000,50 $ |
| 2 | 201901 | Rundungsfehler | Null | -0,500489920049387 $ | -0,50 $ |
| 3 | 201901 | Steuer | Null | 10,000329958477891 $ | 10,00 $ |
| 4 | 201901 | Korrektur | Null | -5,002572999387045 $ | -5,00 $ |
| 5 | 201901 | regulär | backend1 | 410.998795012082947 $ | 411.00 $ |
| 2 | 201901 | Rundungsfehler | backend1 | –0,2404900489920378 $ | –0,24 $ |
| 3 | 201901 | Steuer | backend1 | 4,105840329977189 $ | 4,11 $ |
Aufschlüsselung der GKE-Clusterkosten (Google Kubernetes Engine) abrufen
Dieser Abschnitt enthält Beispiele zum Filtern von GKE-Clusterkosten in Ihren BigQuery-Exportberichten. Weitere Informationen zu den GKE-Clusterkosten finden Sie unter Aufschlüsselung der Clusterkosten ansehen.
GKE-Kosten filtern
Die folgenden Beispielabfragen zeigen, wie Sie Ihre GKE-Kosten für unterstützte Ressourcentypen nach Clustername, Namespace und Label filtern und gruppieren können.
Kosten für GKE-Cluster vor Gutschriften
SELECT SUM(cost) AS cost_before_credits, labels.value AS cluster_name FROM `project-ID.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 ;
GKE-Kosten nach Gutschriften nach Namespace
SELECT labels.value as namespace, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS cost_after_credits, FROM `project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX` LEFT JOIN UNNEST(labels) as labels ON labels.key = "k8s-namespace" GROUP BY namespace ;
GKE-Kosten nach 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-ID.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 ;
Beispiele für Preisdatenabfragen
Dieser Abschnitt enthält verschiedene Beispiele zur Abfrage der Cloud Billing-Preisdaten, die nach BigQuery exportiert wurden.
Gängige Werte in den Beispielpreisabfragen
In den Abfragebeispielen in diesem Abschnitt werden die folgenden Werte verwendet:
- Tabellenname:
project-ID.dataset.cloud_pricing_export - SKU ID:
2DA5-55D3-E679(Cloud Run – Abfragen)
Preise für eine bestimmte Artikelnummer abrufen
Dieses Beispiel zeigt eine einfache Abfrage, die den list_price für jede Preisstufe für eine bestimmte SKU zurückgibt.
Standard-SQL
SELECT sku.id, sku.description, list_price.* FROM `project-ID.dataset.cloud_pricing_export` WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND sku.id = "2DA5-55D3-E679" ;
_PARTITIONTIME ist ein von BigQuery automatisch generiertes Feld und stellt das Datum dar, zu dem die Daten gehören. Statt _PARTITIONTIME können Sie ein Feld verwenden, das vom Cloud Billing-Export explizit generiert wird, wie z. B. pricing_as_of_time.
Nachfolgend sehen Sie dieselbe Abfrage, die für die Verwendung des Feldes pricing_as_of_time konfiguriert ist:
SELECT sku.id, sku.description, list_price.* FROM `project-ID.dataset.cloud_pricing_export` WHERE DATE(pricing_as_of_time) = "2020-07-20" AND sku.id = "2DA5-55D3-E679" ;
Abfrageergebnisse
| Zeile | id | Beschreibung | pricing_unit | aggregation_info. aggregation_level |
aggregation_info. aggregation_interval |
tiered_rates. pricing_unit_quantity |
tiered_rates. start_usage_amount |
tiered_rates. usd_amount |
tiered_rates. account_currency_amount |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 2DA5-55D3-E679 | Anfragen | COUNT | KONTO | MONATLICH | 1000000 | 0 | 0 | 0 |
| 1000000 | 2000000 | 0,4 | 0,4 |
Listenpreise für eine bestimmte Artikelnummer einschließlich Dienstbeschreibung
Die beiden Beispiele in diesem Abschnitt zeigen Abfragen, die den list_price für jede Preisstufe für eine bestimmte Artikelnummer zurückgeben und die Artikelnummerbeschreibung und die Dienstbeschreibung umfassen.
- Beispiel 1 gibt eine Artikelnummer pro Zeile zurück, wobei die Preisstufen als verschachtelte Daten dargestellt werden.
- Beispiel 2 zeigt das Aufheben der Verschachtelung der Daten. Es wird eine Zeile pro Artikelnummer pro Preisstufe zurückgegeben.
Beispiel 1: Verschachtelte Daten
In diesem Beispiel wird eine einzelne Artikelnummer abgefragt, um list_price zurückzugeben. Diese Artikelnummer hat mehrere Preisstufen.
Die Werte des Listenpreisfelds werden in einzelnen Zeilen angezeigt, die unter der Zeile mit der Artikelnummer-ID verschachtelt sind.
Standard-SQL
SELECT sku.id AS sku_id, sku.description AS sku_description, service.id AS service_id, service.description as service_description, list_price.* FROM project-ID.dataset.cloud_pricing_export WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND sku.id = "2DA5-55D3-E679" ;
Abfrageergebnisse:
| Zeile | 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 |
tiered_rates. usd_amount |
tiered_rates. account_currency_amount |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2DA5-55D3-E679 | Anfragen | 152E-C115-5142 | Cloud Run | KONTO | MONATLICH | 1000000 | 0 | 0 | 0 |
| 1000000 | 2000000 | 0,4 | 0,4 |
Beispiel 2: Unverschachtelte Daten, die mit derselben Tabelle verknüpft sind
In diesem Beispiel wird eine einzelne Artikelnummer abgefragt, um list price zurückzugeben. Die Artikelnummer hat mehrere Preisstufen.
Die Abfrage zeigt die Verwendung des Operators UNNEST zum Vereinfachen des tiered_rates-Arrays und Verbinden der Felder mit derselben Tabelle, sodass eine Zeile pro Preisstufe entsteht.
Standard-SQL
SELECT sku.id AS sku_id, sku.description AS sku_description, service.id AS service_id, service.description as service_description, tier.* FROM `project-ID.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" ;
Abfrageergebnisse:
| Zeile | sku_id | sku_description | service_id | service_description | pricing_unit_quantity | start_usage_amount | usd_amount | account_currency_amount |
|---|---|---|---|---|---|---|---|---|
| 1 | 2DA5-55D3-E679 | Anfragen | 152E-C115-5142 | Cloud Run | 1000000.0 | 0,0 | 0,0 | 0,0 |
| 2 | 2DA5-55D3-E679 | Anfragen | 152E-C115-5142 | Cloud Run | 1000000.0 | 2000000.0 | 0,4 | 0,4 |
Produkt-Taxonomie und Geo-Taxonomie zur Abfrage von Artikelnummern verwenden
- Die Produkt-Taxonomie ist eine Liste von Produktkategorien, die für die SKU gelten, z. B. Serverlos, Cloud Run oder VMs on Demand.
- Geo-Taxonomie sind die geografischen Metadaten, die für eine Artikelnummer gelten und aus Typ- und Regionswerten bestehen.
Produkt-Taxonomie einer Artikelnummer abrufen
Dieses Beispiel zeigt eine Abfrage, bei der die Liste product_taxonomy für eine bestimmte Artikelnummer zurückgegeben wird, wobei die Artikelnummer-ID = 2DA5-55D3-E679 (Cloud Run – Abfragen) lautet.
Standard-SQL
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-ID.dataset.cloud_pricing_export` WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND sku.id = "2DA5-55D3-E679" ;
Abfrageergebnisse:
| Zeile | sku_id | sku_description | service_id | service_description | product_taxonomy |
|---|---|---|---|---|---|
| 1 | 2DA5-55D3-E679 | Anfragen | 152E-C115-5142 | Cloud Run | GCP |
| Serverlos | |||||
| Cloud Run | |||||
| Andere |
Alle Artikelnummern für eine bestimmte Produkt-Taxonomie abrufen
In diesem Beispiel wird eine Abfrage gezeigt, die alle Artikelnummern zurückgibt, die einem angegebenen product_taxonomy entsprechen.
Legen Sie in dieser Abfrage Serverless als Wert für product taxonomy fest.
Standard-SQL
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-ID.dataset.cloud_pricing_export` WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND "Serverless" in UNNEST(product_taxonomy) LIMIT 10 ;
Abfrageergebnisse:
| Zeile | sku_id | sku_description | service_id | service_description | product_taxonomy |
|---|---|---|---|---|---|
| 1 | 0160-BD7B-4C40 | Cloud Tasks-Netzwerk für intraregional ausgehenden Traffic | F3A6-D7B7-9BDA | Cloud Tasks | GCP |
| Serverlos | |||||
| Cloud Tasks | |||||
| Andere | |||||
| 2 | FE08-0A74-7AFD | Ausgehender Cloud Tasks GOOGLE-API-Traffic | F3A6-D7B7-9BDA | Cloud Tasks | GCP |
| Serverlos | |||||
| Cloud Tasks | |||||
| Andere | |||||
| 3 | A81A-32A2-B46D | Speicher-Aufgabenwarteschlange Salt Lake City | F17B-412E-CB64 | App Engine | GCP |
| Serverlos | |||||
| GAE | |||||
| Andere | |||||
| TaskQueue |
Alle Artikelnummern für eine bestimmte geografische Taxonomie und Produkt-Taxonomie abrufen
In diesem Beispiel wird eine Abfrage gezeigt, die alle Artikelnummern zurückgibt, die mit einer bestimmten geo_taxonomy-Region und einem bestimmten product_taxonomy übereinstimmen, wobei region = us-east4 und product_taxonomy = VMs auf Abruf ist.
Standard-SQL
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-ID.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) ;
Abfrageergebnisse:
| Zeile | sku_id | sku_description | service_id | service_description | geo_taxonomy.type | geo_taxonomy.regions | product_taxonomy |
|---|---|---|---|---|---|---|---|
| 1 | 9174-81EE-425B | Premium für einzelne Mandanten für Instanz-RAM für einzelnen Mandanten in Virginia | 6F81-5844-456A | Compute Engine | REGIONAL | us-east4 | GCP |
| Compute | |||||||
| GCE | |||||||
| VMs on demand | |||||||
| Arbeitsspeicher: pro GB | |||||||
| 2 | C3B9-E891-85ED | Instanz-RAM für einzelne Mandanten in Virginia | 6F81-5844-456A | Compute Engine | REGIONAL | us-east4 | GCP |
| Compute | |||||||
| GCE | |||||||
| VMs on demand | |||||||
| Arbeitsspeicher: pro GB | |||||||
| 3 | 6E2A-DCD9-87ED | Vordefinierter N1-Instanz-RAM in Virginia | 6F81-5844-456A | Compute Engine | REGIONAL | us-east4 | GCP |
| Compute | |||||||
| GCE | |||||||
| VMs on demand | |||||||
| Arbeitsspeicher: pro GB |
Preisdaten mit detaillierten Nutzungskosten verknüpfen
Diese Abfrage zeigt, wie Sie Preis- und Kostendatenexporte zusammenführen, um detaillierte Preisinformationen im Einklang mit Ihren Kosten zu sehen. Sie können diese Abfrage so konfigurieren, dass sie exportierte Daten aus Ihren detaillierten Nutzungskostendaten (als Exports) abruft und Ihre Nutzungskostendaten mit den exportierten Preisdaten (als Prices) zusammenführt.
Verwenden Sie den Namen der Tabelle mit detaillierten Nutzungskosten, um die Daten Exports abzurufen:
gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
Verwenden Sie Ihren Preistabellennamen für die Prices-Daten: project-ID.dataset.cloud_pricing_export
WITH Exports AS ( SELECT * FROM `project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX` ), Prices AS ( SELECT * FROM `project-ID.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
Das Ergebnis der vorherigen Abfrage kann beispielsweise so aussehen:
| sku_description | Kosten | Nutzung | pricing_unit_description | account_currency_amount | account_currency_code |
|---|---|---|---|---|---|
| Kapazität für abgestimmte nichtflüchtige Speicher | 0,001345 | { "usage": { "amount": "38654705664000.0", "unit": "byte-seconds", "amount_in_pricing_units": "0.01345895", "pricing_unit": "gibibyte month" } } | Gibibyte-Monat | 0,1 | USD |
| Kapazität für abgestimmte nichtflüchtige Speicher | 0,001344 | { "usage": { "amount": "38654705664000.0", "unit": "byte-seconds", "amount_in_pricing_units": "0.01345895", "pricing_unit": "gibibyte month" } } | Gibibyte-Monat | 0,1 | USD |
| Kapazität für abgestimmte nichtflüchtige Speicher | 0,001346 | { "usage": { "amount": "38654705664000.0", "unit": "byte-seconds", "amount_in_pricing_units": "0.01345895", "pricing_unit": "gibibyte month" } } | Gibibyte-Monat | 0,1 | USD |
Mit Systemlabels abfragen
Systemlabels für Reservierungen in Google Cloud bieten eine bessere Übersicht über die Nutzung Ihrer Reservierungen. So können Sie nachvollziehen, welche Instanzen welche Reservierungen nutzen, und die Kosten für genutzte und ungenutzte Kapazität direkt in BigQuery analysieren.
In diesen Beispielen werden zwei Systemlabels verwendet:
compute.googleapis.com/reservation_namecompute.googleapis.com/reservation_project_id
Diese Labels sind in Cloud Billing-Datensätzen sowohl für Instanzen, die eine Reservierung nutzen, als auch für den nicht genutzten Teil einer Reservierung vorhanden.
In den folgenden Beispielen wird gezeigt, wie Sie den BigQuery-Abrechnungsexport abfragen, um den Reservierungsverbrauch mithilfe von Systemlabels zu analysieren.
Hinweis
Wenn Sie Abfragen mit Systemlabels durchführen möchten, muss der Cloud Billing-Export nach BigQuery aktiviert sein, insbesondere der Export von detaillierten Nutzungskostendaten. Dieser Export enthält die Informationen auf Ressourcenebene, einschließlich Systemlabels, die zum Anzeigen der neuen Reservierungs-Labels erforderlich sind.
Informationen zum Einrichten oder Überprüfen des BigQuery-Exports finden Sie in der folgenden Dokumentation:
- Übersicht über den Export von Abrechnungsdaten in BigQuery
- Export von Abrechnungsdaten in BigQuery einrichten
- Schema für den detaillierten Datenexport
Ihr BigQuery-Dataset muss für den detaillierten Export konfiguriert sein. Der Tabellenname hat normalerweise das Format gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>.