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 anhand von drei durch Punkte getrennten Werten ermittelt:
project-ID.dataset_name.BQ_table_name
project-ID
ist die ID des von Ihnen eingerichteten Google Cloud-Projekts, das Ihr BigQuery-Dataset enthält.dataset_name
ist der Name des von Ihnen eingerichteten BigQuery-Datasets, das die BigQuery-Tabellen mit Ihren exportierten Cloud Billing-Daten enthalten soll.BQ_table_name
ist 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. Dieser hängt vom aktivierten Exporttyp ab:
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 Abrechnungsexportkonfiguration sind folgende:
project-ID
:my-billing-project
dataset_name
:my_billing_dataset
BQ_table_name
:gcp_billing_export_resource_v1_<BILLING-ACCOUNT-ID>
BILLING-ACCOUNT-ID
:010101-F0FFF0-10X10X
– die ID des Cloud-Rechnungskonto, das die zu exportierenden Abrechnungsdaten enthält. Informationen zum Ermitteln der Rechnungskonto-ID
Anhand der Beispielwerte würde die FROM
-Klausel so geschrieben:
my-billing-project.my_billing_dataset.gcp_billing_export_resource_v1_010101-F0FFF0-10X10X
Beispielabfragen nach Cloud Billing-Datentyp
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
total
werden die Gleitkommawerte für Kosten und Gutschriften direkt summiert. Dadurch kann es zu Rundungsfehlern kommen. - Das Feld
total_exact
wandelt 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 Apps („grapefruit-squeezer“ und „chocolate-masher“).
- Für jede Anwendung haben Sie zwei Umgebungen: „dev“ (Entwicklung) und „prod“ (Produktion).
- In der Entwicklungsumgebung ist eine kleine Instanz pro Anwendung vorhanden.
- In der Produktionsumgebung ist eine kleine Instanz in Amerika und eine kleine Instanz in Asien vorhanden.
- Jede Instanz trägt den Namen der Anwendung und der Umgebung.
- Sie haben eine Instanz ohne Label, die Sie zum Experimentieren 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 jeder 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. Kosten ohne diesen Schlüssel können Sie durch LEFT JOIN
und Eingabe des Schlüsselfilters als JOIN
-Bedingung (anstelle von WHERE
) einbeziehen. Sie erhalten auf diese Weise eine vollständige Übersicht Ihrer 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 Möglichkeiten zum Abfragen von Daten mit Tags.
Kosten nach Rechnungsmonat mit Tags berechnen
In der folgenden Abfrage wird gezeigt, wie Sie Rücksendekosten nach Rechnungsmonat für das cost_center
-Tag verwenden 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 nicht getaggter Ressourcen ansehen
Diese Abfrage zeigt die Rechnungssumme für nicht getaggte Ressourcen, 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 die spät monetarisierte Nutzung für einen bestimmten Rechnungsmonat aufzurufen
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 spät monetarisierte Nutzung nach Dienst für einen bestimmten Rechnungsmonat aufzurufen
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 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
total
werden die Gleitkommawerte für Kosten und Gutschriften direkt summiert. Dadurch kann es zu Rundungsfehlern kommen. - Das Feld
total_exact
wandelt 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 BigQuery-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 Feld, das von BigQuery automatisch generiert wird. Es 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 Artikelnummer 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.
In dieser Abfrage ist Serverlos als Wert product taxonomy
angegeben.
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
In dieser Abfrage wird gezeigt, 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 |
---|---|---|---|---|---|
Ausgeglichene PD-Kapazität | 0,001345 | { "usage": { "amount": "38654705664000.0", "unit": "byte-seconds", "amount_in_pricing_units": "0.01345895", "pricing_unit": "gibibyte month" } } | Gibibyte-Monat | 0,1 | USD |
Ausgeglichene PD-Kapazität | 0,001344 | { "usage": { "amount": "38654705664000.0", "unit": "byte-seconds", "amount_in_pricing_units": "0.01345895", "pricing_unit": "gibibyte month" } } | Gibibyte-Monat | 0,1 | USD |
Ausgeglichene PD-Kapazität | 0,001346 | { "usage": { "amount": "38654705664000.0", "unit": "byte-seconds", "amount_in_pricing_units": "0.01345895", "pricing_unit": "gibibyte month" } } | Gibibyte-Monat | 0,1 | USD |
Weitere Informationen
Themen im Zusammenhang mit exportierten Cloud Billing-Daten
- Cloud Billing-Datenexport nach BigQuery einrichten
- Cloud Billing-Datentabellen in BigQuery
- Ausgaben im Zeitverlauf mit Looker Studio visualisieren
Kosten- und Preisberichte in der Google Cloud Console
- Cloud Billing-Berichte und Kostentrends aufrufen
- Kostendetails Ihrer Rechnung oder Ihres Kontoauszugs aufrufen und herunterladen
- Preise für die Cloud-Dienste von Google ansehen und herunterladen
- Informationen zu Einsparungen mit Kostenaufschlüsselungsberichten
- Wirksamkeit der Rabatte für zugesicherte Nutzung analysieren
- Kosten- und Zahlungsverlauf aufrufen