Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

BigQuery-Optimierungen (Query-Liste)

By Sayle MatthewsJan 30, 20235 min read

Diese Seite ist auch in English, Español, Français, Italiano, 日本語 und Português verfügbar.

Einstieg in die Kosten- und Performance-Optimierung von BigQuery

Überblick

Hier finden Sie alle Queries aus dem GitHub-Repository zu dieser Artikelserie – jeweils mit einer kurzen Beschreibung. Beachten Sie: Es gibt jeweils eine Query für die INFORMATION_SCHEMA-Views sowie zwei für die BigQuery-Audit-Log-Sinks. Bei Letzteren existiert eine allgemeine Variante, im Dateinamen mit "_general" gekennzeichnet, die alle Projekte im Sink durchsucht, und eine projektbezogene Variante ohne zusätzlichen Suffix im Dateinamen.

Ich pflege die Liste laufend und ergänze neue Queries. Wünsche dazu gerne in den Kommentaren – ich nehme sie auf, sobald es die Zeit erlaubt.

So lesen Sie diese Liste

Da Medium Tabellen nicht nativ unterstützt – die eigentlich naheliegende Darstellung für diese Daten –, habe ich die Inhalte als Aufzählung aufbereitet: ein guter Kompromiss zwischen Lesbarkeit und Eleganz.

In der ersten Zeile steht der Dateiname fett und kursiv, darunter folgt eine Beschreibung der Query, und ganz unten finden Sie die Links als Aufzählungspunkte.

Die Query-Liste

  • billing_recommendation_per_query.sql

Gibt für jede Query im Zeitraum eine Empfehlung aus, ob sie im Flat-Rate- oder On-Demand-Abrechnungsmodell effizienter läuft. Die Empfehlung basiert auf Slot-Anzahl und gescannten Bytes.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • concurrent_queries_by_minute.sql

Erzeugt eine minutengenaue Zeitreihe über das Intervall und gibt die Anzahl der parallel laufenden Queries im jeweiligen Zeitraum zurück.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • concurrent_queries_by_second.sql

Erzeugt eine sekundengenaue Zeitreihe über das Intervall und gibt die Anzahl der parallel laufenden Queries im jeweiligen Zeitraum zurück.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • general_job_information.sql

Liefert eine Auswahl allgemeiner Informationen zu jedem Job, der im Zeitraum ausgeführt wurde.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • load_job_information.sql

Liefert allgemeine Informationen zu jedem Load-Job, der im Zeitraum ausgeführt wurde.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • load_slots_per_minute.sql

Erzeugt eine minutengenaue Zeitreihe über das Intervall und gibt die Anzahl der von Load-Jobs im jeweiligen Zeitraum genutzten Slots zurück.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • load_slots_per_second.sql

Erzeugt eine sekundengenaue Zeitreihe über das Intervall und gibt die Anzahl der von Load-Jobs im jeweiligen Zeitraum genutzten Slots zurück.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • longest_running_queries.sql

Liefert alle im Intervall ausgeführten Queries inklusive Preisdaten, sortiert von der längsten zur kürzesten Laufzeit.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • looker_job_information.sql

Liefert allgemeine Informationen zu jedem im Zeitraum ausgeführten Job, der mit einem Looker-Service-Account verknüpft war.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • query_counts.sql

Liefert jede im Zeitraum ausgeführte Query samt Anzahl der Ausführungen, sortiert von den häufigsten zu den seltensten.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • query_job_information.sql

Liefert allgemeine Informationen zu jedem Query-Job, der im Zeitraum ausgeführt wurde.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • query_slots_per_minute.sql

Erzeugt eine minutengenaue Zeitreihe über das Intervall und gibt die Anzahl der von Query-Jobs im jeweiligen Zeitraum genutzten Slots zurück.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • query_slots_per_second.sql

Erzeugt eine sekundengenaue Zeitreihe über das Intervall und gibt die Anzahl der von Query-Jobs im jeweiligen Zeitraum genutzten Slots zurück.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • slots_by_day.sql

Erzeugt eine tagesgenaue Zeitreihe über das Intervall und gibt die Anzahl der von allen Jobs im jeweiligen Zeitraum genutzten Slots zurück.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • slots_by_hour.sql

Erzeugt eine stundengenaue Zeitreihe über das Intervall und gibt die Anzahl der von allen Jobs im jeweiligen Zeitraum genutzten Slots zurück.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • slots_by_minute.sql

Erzeugt eine minutengenaue Zeitreihe über das Intervall und gibt die Anzahl der von allen Jobs im jeweiligen Zeitraum genutzten Slots zurück.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • slots_by_minute_and_user.sql

Erzeugt eine minutengenaue Zeitreihe über das Intervall und gibt die Anzahl der von allen Jobs im jeweiligen Zeitraum genutzten Slots zurück – gruppiert nach dem ausführenden User.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • slots_by_second.sql

Erzeugt eine sekundengenaue Zeitreihe über das Intervall und gibt die Anzahl der von allen Jobs im jeweiligen Zeitraum genutzten Slots zurück.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • table_query_counts.sql

Liefert die Anzahl der Jobs, die im angegebenen Zeitraum auf eine Tabelle zugegriffen haben. Hinweis: Wird eine vorhandene Tabelle von keinem Job angesprochen, taucht sie in dieser Query nicht auf.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • top_billed_labels.sql

Liefert die Kosten pro Label, das im angegebenen Zeitraum auf Jobs angewendet wurde – sortiert von den teuersten Labels nach unten.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • top_billed_queries.sql

Liefert die im angegebenen Zeitraum ausgeführten Query-Jobs, sortiert nach abgerechneten Kosten von teuer nach günstig.

Hinweis: Diese Liste kann Duplikate enthalten, wenn ein Job mehrfach mit denselben Parametern ausgeführt wurde.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • top_billed_queries_deduplicated.sql

Liefert die im angegebenen Zeitraum ausgeführten Query-Jobs, sortiert nach abgerechneten Kosten von teuer nach günstig.

Hinweis: Dieser Job dedupliziert Jobs und liefert nur eine Zeile pro Job. Er läuft deutlich langsamer als die obige Query.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • top_complex_queries.sql

Liefert Query-Jobs, sortiert von der komplexesten zur einfachsten. Komplexität ist hier definiert als die Anzahl der Slots, die zur vollständigen Verarbeitung benötigt wurden.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • top_cost_users.sql

Liefert die User, die Jobs gestartet haben, samt der jeweils verursachten Kosten – sortiert von hoch nach niedrig. Hinweis: Service-Accounts sind dabei mit enthalten.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • top_costly_queries.sql

Liefert die im angegebenen Zeitraum ausgeführten Query-Jobs samt Gesamtkosten – mehrfache Ausführungen fließen in die Kostenberechnung ein. Sortiert von teuer nach günstig.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General