
Business Intelligence/6. Juni 2023 -Aktualisiert am 3. April 2024/3 Min. Lesezeit
Kostenüberwachung von Abfragen in BigQuery

In diesem Artikel wollen wir auf das Thema Kostensteuerung und Überwachung der Kosten bei Google Clouds Dienst BigQuery eingehen. Besonders bei komplexen Projekten und über die Projektgrenzen hinweg kann es schwierig sein, immer den Überblick zu behalten. Im Folgenden schauen wir uns die generellen Möglichkeiten an und vertiefen dann den Einblick auf die Kostenanalyse laufender Abfragen und wie diese effektiv dargestellt werden können.
Wie kann ich die Kosten bei der Nutzung von BigQuery überwachen?
Google bietet bereits eine Reihe von Methoden und Werkzeugen an, um die Kosten im Blick zu behalten. Diese werden im Folgenden kurz dargestellt:
- Überprüfung des Billing reports: Die erste Anlaufstelle für die Überwachung der anfallenden Kosten bei der Nutzung von Cloud Services. Neben erweiterten Filtermöglichkeiten gibt es auch ein Forecasting der Kosten basierend auf den historischen Daten.
- Verwendung von Budget Notifications: Eine andere Möglichkeit, um die Kosten zu überwachen, ist die Verwendung von Budget Notifications, die über ein Pub/Sub Topic laufen. Damit können Events bei Budgetüberschreitungen automatisiert verarbeitet werden, um z.B. kosteneinsparende Anpassungen an der Infrastruktur vorzunehmen.
- Identifikation von Kostentreibern: Bei der Überwachung der Kosten ist es wichtig, die Faktoren zu identifizieren, die die Ausgaben beeinflussen. Werden große Datenmengen vorgehalten, die gar nicht mehr benötigt werden oder auf eine kostengünstige Speicherlösung verschoben werden könnten? Existieren regelmäßig laufende ineffiziente Abfragen, die große Datenmengen verarbeiten?
- Optimierung der Abfragen: Eine der effektivsten Möglichkeiten, um Kosten in BigQuery zu reduzieren, ist die Optimierung der getätigten Abfragen. Dies beinhaltet die Minimierung der verarbeiteten Datenmenge und die Reduzierung der Komplexität. Ebenfalls können die zu Grunde liegenden Datenstrukturen über Partitionierung oder Clustering optimiert werden, um Kosten zu reduzieren.
Allerdings müssen für diesen Punkt die getätigten Abfragen strukturiert, analysiert und veranschaulicht werden, um Optimierungspotenziale zu identifizieren. Wie das funktioniert, beschreiben wir in folgendem Absatz.
Wie kann ich konkret die Kosten meiner Abfragen im Blick behalten?
Um die Abfragen zu analysieren, benutzen wir die Daten aus dem INFORMATION_SCHEMA - hierzu haben wir bereits mehr Informationen in einem früheren Blogartikel dargestellt. Zusammengefasst können über die Daten in dieser Tabelle pro ausgeführtem SQL-Statement die ungefähren Kosten ermittelt und über Filterkriterien weiter analysiert werden. Über verschiedene Projekte hinweg lassen sich die Daten mit einem einfachen UNION ALL verbinden und in einer View anzeigen.
Die so generierte View kann in darauf aufbauenden Reportings genutzt werden. Im einfachsten Fall bietet sich dafür Looker Studio an:

Auf diese Weise können die Kosten einzelner Projekte gegenübergestellt und die Abfragen identifiziert werden, die das größte Optimierungspotenzial aufweisen. Mit Filtern über Zeiträume und auf Benutzerebene können Unterscheidungen zwischen Systemabfragen und individuellen Nutzern sowie Vergleiche der Kosten im Vormonat schnell umgesetzt werden. Im einfachsten Fall erkennt man dadurch bei welchen Tabellen z.B. noch passende Partitionierungen nachgezogen werden sollten oder dass eine automatisierte Abfrage häufiger läuft als eigentlich notwendig.
Was kann ich noch tun, um Kosten bei der Nutzung von BigQuery zu reduzieren?
Durch die Anwendung der hier gezeigten Methode können die Kosten von Abfragen im Blick behalten und optimiert werden. Dadurch kann man auch nicht mehr von plötzlichen Kostensteigerungen überrascht werden und bleibt in der Lage frühzeitig agieren zu können.