Erweiterte BigQuery-Laufzeit verwenden

In diesem Dokument wird beschrieben, wie Sie die erweiterte BigQuery-Laufzeit aktivieren und deaktivieren und wie Sie die Auswirkungen der erweiterten Laufzeit auf die Abfrageleistung bewerten.

Rollen und Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle BigQuery-Administrator (roles/bigquery.admin) für Ihr Projekt oder Ihre Organisation zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Angeben einer Konfigurationseinstellung benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Features

Wenn Sie die erweiterte Laufzeit für ein BigQuery-Projekt aktivieren, werden Funktionen im Abfrageprozessor aktiviert, die die Abfragelatenz und den Slot-Verbrauch ohne zusätzliche Kosten reduzieren.

Verbesserte Vektorisierung

Die vektorisierte Ausführung ist ein Modell zur Verarbeitung von Abfragen, bei dem Spalten von Daten in Blöcken verarbeitet werden, die mit der CPU-Cachegröße übereinstimmen. Außerdem werden SIMD-Befehle (Single Instruction, Multiple Data) verwendet. Die erweiterte Vektorisierung erweitert die vektorisierte Abfrageausführung in BigQuery auf die folgenden Aspekte der Abfrageverarbeitung:

  • Durch die Verwendung spezieller Datenkodierungen im Capacitor-Speicherformat können Filterauswertungsvorgänge für die codierten Daten ausgeführt werden.
  • Spezialisierte Codierungen werden im Abfrageplan weitergegeben, sodass mehr Daten verarbeitet werden können, während sie noch codiert sind.
  • Durch die Implementierung von Expression Folding zum Auswerten deterministischer Funktionen und konstanter Ausdrücke kann BigQuery komplexe Prädikate in konstante Werte vereinfachen.

Optimierungen für kurze Abfragen

BigQuery führt Abfragen in der Regel in einer verteilten Umgebung mit einer Shuffle-Zwischenschicht aus. Durch die Optimierung kurzer Abfragen werden dynamisch Abfragen identifiziert, die als einzelne Phase ausgeführt werden können. Dadurch werden Latenz und Slot-Verbrauch reduziert. Spezialisierte Codierungen können effektiver verwendet werden, wenn eine Abfrage in einer einzigen Phase ausgeführt wird. Diese Optimierungen sind am effektivsten, wenn sie mit dem optionalen Modus zum Erstellen von Jobs verwendet werden, der die Latenz beim Starten und Warten von Jobs sowie beim Abrufen von Ergebnissen minimiert.

Die Berechtigung für die Optimierung kurzer Anfragen ist dynamisch und wird von den folgenden Faktoren beeinflusst:

  • Die voraussichtliche Größe des Datenscans.
  • Die erforderliche Datenverschiebung.
  • Die Selektivität von Abfragefiltern.
  • Art und physisches Layout der Daten im Speicher.
  • Die allgemeine Abfragestruktur.
  • Die Verlaufsstatistiken der bisherigen Abfrageausführungen.

Erweiterte Laufzeit aktivieren

Wenn Sie die erweiterte Laufzeit für Ihr Projekt oder Ihre Organisation aktivieren möchten, verwenden Sie die Anweisung ALTER PROJECT oder ALTER ORGANIZATION, um die Standardkonfiguration zu ändern. Legen Sie in der Anweisung das Argument query_runtime auf 'advanced' fest. Beispiel:

ALTER PROJECT PROJECT_NAME
SET OPTIONS (
  `region-LOCATION.query_runtime` = 'advanced'
);

Ersetzen Sie Folgendes:

  • PROJECT_NAME ist der Name des Projekts.
  • LOCATION: Der Standort des Projekts.

Es kann einige Minuten dauern, bis die Änderung wirksam wird.

Nachdem Sie die erweiterte Laufzeit aktiviert haben, wird sie für alle entsprechenden Abfragen im Projekt oder in der Organisation verwendet, unabhängig davon, welcher Nutzer den Abfragejob erstellt hat.

Erweiterte Laufzeit deaktivieren

Wenn Sie die erweiterte Laufzeit für Ihr Projekt oder Ihre Organisation deaktivieren möchten, verwenden Sie die Anweisung ALTER PROJECT oder ALTER ORGANIZATION, um die Standardkonfiguration zu ändern. Legen Sie in der Anweisung das Argument query_runtime auf NULL fest. Beispiel:

ALTER PROJECT PROJECT_NAME
SET OPTIONS (
  `region-LOCATION.query_runtime` = NULL
);

Ersetzen Sie Folgendes:

  • PROJECT_NAME ist der Name des Projekts.
  • LOCATION: Der Standort des Projekts.

Es kann einige Minuten dauern, bis die Änderung wirksam wird.

Abfrageleistung bewerten

Mit dem Administrative Job Explorer und den INFORMATION_SCHEMA-Ansichten können Sie die Auswirkungen der erweiterten Laufzeit auf die Abfrageausführungszeit und die Slot-Nutzung bewerten.

So bewerten Sie die Abfrageleistung mit und ohne aktivierte erweiterte Laufzeit:

  1. Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Öffnen Sie einen neuen Tab im Abfrageeditor.

  3. Verwendung von im Cache gespeicherten Abfrageergebnissen deaktivieren

  4. Geben Sie Ihre Testabfragen auf dem Tab „Abfrage“ ein oder kopieren Sie sie dorthin.

  5. Führen Sie Ihre Testabfragen einige Male aus, um die Baseline-Leistung zu ermitteln. Ermitteln Sie nach jeder Ausführung die Messwerte für die Abfrageleistung so:

    1. Details zur Abfrageausführung im Explorer für Administratorjobs ansehen
    2. Rufen Sie Leistungsdaten für Jobs aus der INFORMATION_SCHEMA.JOBS_BY_USER-Ansicht ab, indem Sie die folgende Abfrage auf einem neuen Abfragetab ausführen:

      SELECT
          job_id,
          end_time - start_time AS duration,
          total_slot_ms,
          query
      FROM
        `region-us`.INFORMATION_SCHEMA.JOBS_BY_USER
      WHERE
          creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
          AND job_type='QUERY'
          AND total_slot_ms IS NOT NULL
      ORDER BY
          creation_time DESC,
          query ASC
      LIMIT 1000;
      
  6. Aktivieren Sie die erweiterte Laufzeit.

  7. Wiederholen Sie Schritt 5.

  8. Vergleichen Sie die Messwerte für Abfragelatenz und Slot-Nutzung für die Testabfragen vor und nach der Aktivierung der erweiterten Laufzeit.