Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Übersicht über die BI Engine SQL-Schnittstelle

Informationen zur SQL-Schnittstelle in BI Engine

BigQuery BI Engine ist ein schneller In-Memory-Analysedienst, mit dem Nutzer komplexe Datasets in BigQuery bei Abfragereaktionszeiten von weniger als einer Sekunde und hochgradig parallel interaktiv analysieren können.

Die BI Engine SQL-Schnittstelle erweitert die BI Engine zur Einbindung in andere Business Intelligence-Tools (BI) wie Looker, Tableau, Power BI und benutzerdefinierte Anwendungen, um die Datenexploration und -analyse zu beschleunigen. Diese Seite bietet einen Überblick über die BI Engine SQL-Schnittstelle und die erweiterten Möglichkeiten, die sie der BI Engine bietet.

BI Engine-Architektur

Das folgende Diagramm zeigt die Architektur für BI Engine:

BI Engine-Architektur

BI Engine unterstützt Folgendes:

  1. BigQuery API: BI Engine ist direkt in die BigQuery API eingebunden. Jede BI-Lösung oder benutzerdefinierte Anwendung, die über Standardmechanismen wie REST oder JDBC- und ODBC-Treiber mit der BigQuery API arbeitet, kann BI Engine ohne Änderungen verwenden.
  2. Vektorisierte Laufzeit: Mit der BI Engine SQL-Schnittstelle führt BI Engine eine modernere Technik namens vektorisierte Verarbeitung ein. Die Verwendung der vektorisierten Verarbeitung in einer Ausführungs-Engine ermöglicht eine effizientere Nutzung der modernen CPU-Architektur, da immer mehrere Datenbatches ausgeführt werden. BI Engine verwendet auch erweiterte Datencodierungen, insbesondere die Ausführungslänge des Wörterbuchs, um die in der speicherinternen Ebene gespeicherten Daten weiter zu komprimieren.
  3. Metadaten: Die Metadaten speichern die Tabellen- und Ansichtsdefinitionen, die Schemadefinition und die detaillierten Berechtigungen.
  4. Reservierungen: BI Engine-Reservierungen verwalten die Speicherzuweisung auf Projektabrechnungsebene. BI Engine speichert nur Spalten und Partitionen im Cache, die abgefragt oder gescannt werden. Es wird nicht die gesamte Tabelle im Cache gespeichert.
  5. Verteilte speicherinterne Engine: BI Engine ist eine verteilte speicherinterne Ausführungs-Engine, mit der Kunden deutlich größere Speicherreservierungen zuweisen können.

Abfrageoptimierung und -beschleunigung

BigQuery und entsprechend auch BI Engine schlüsseln den Abfrageplan, der für eine SQL-Abfrage erzeugt wurde, in Unterabfragen auf. Eine Unterabfrage enthält eine Reihe von Vorgängen, z. B. das Scannen, Filtern oder Aggregieren von Daten, und ist häufig die Ausführungseinheit eines Shards.

Während alle unterstützten SQL-Abfragen von BigQuery von der BI Engine SQL-Schnittstelle korrekt ausgeführt werden, werden nur bestimmte Unterabfragen optimiert. Insbesondere ist BI Engine SQL-Schnittstelle am besten für Blatt-Unterabfragen optimiert, die die Daten aus dem Speicher scannen und Vorgänge wie Filtern, Computing, Aggregation, Reihenfolge und bestimmte Join-Typen ausführen. Andere Unterabfragen, die von BI Engine noch nicht vollständig beschleunigt wurden, werden zur Ausführung auf BigQuery zurückgesetzt.

Aufgrund dieser selektiven Optimierung profitieren einfachere Business-Intelligence- oder Dashboard-Abfragen am meisten von BI Engine (was zu weniger Unterabfragen führt), da der Großteil der Ausführungszeit für Blatt-Unterabfragen, die Rohdaten verarbeiten, aufgewendet wird.

Wenn Sie eine Abfrage ausführen, deren Ergebnisse Ihre BI Engine-Kapazität überschreiten, sorgt die automatische Anpassungsfunktion von BI Engine dafür, dass die Abfrage in BigQuery-Slots ausgeführt wird. Wenn BigQuery-Slots zum Ausführen einer Abfrage verwendet werden, erfolgt die Abrechnung des Abfragejobs mit einem der beiden BigQuery-Preismodellen: On-Demand oder Pauschalpreis. Wenn die Abfrage in Slots ausgeführt wird, gelten alle Kontingente und Limits für Abfragejobs in BigQuery.

Beschränkungen

In der folgenden Liste wird erläutert, wie und wann eine Abfrage bei der Verwendung von BI Engine beschleunigt wird:

  • In Unterabfragen auf Blattebene ist die Beschleunigung auf Google Standard-SQL-Funktionen und -Operatoren beschränkt {: track-type="tasks" track-name="internalLink" track-metadata-position="body" }.
  • Für die Größe und Anzahl von Zeilen gelten folgende Beschränkungen:
    • Einfache Abfragen, die nur auf eine Tabelle verweisen (z. B. GROUP-BY- oder FILTER-Abfragen), werden hauptsächlich durch die Reservierungsgröße begrenzt.
    • Bei Joins ist die Beschleunigung auf Unterabfragen auf Blattebene mit INNER- und LEFT OUTER-Joins beschränkt, wobei eine große (Fakten-)Tabelle mit bis zu 4 kleinen und nicht partitionierten (Dimensions-)Tabellen verknüpft wird, jeweils mit bis zu 5 Millionen Zeilen oder 5 GB für die referenzierten Spalten.
  • Abfragen, die auf Platzhaltertabellen verweisen, werden nicht unterstützt.

Monitoring und Diagnose

In diesem Abschnitt wird erläutert, wie Sie Statistiken zu BI Engine finden und wie BI Engine in Cloud Monitoring eingebunden ist.

Beschleunigungsstatistiken

Detaillierte Statistiken zu BI Engine sind über die Job Statistics API verfügbar. Mit dem bq-Befehlszeilentool können Sie Statistiken abrufen, die mit beschleunigten BI Engine-Abfragen verknüpft sind.

Wenn die BI Engine-Beschleunigung aktiviert ist, können Sie eine Abfrage in einem der folgenden drei Modi ausführen:


DISABLED
BI Engine deaktiviert die Beschleunigung. biEngineReasons gibt einen detaillierteren Grund an. Die Abfrage wurde mit der BigQuery-Ausführungs-Engine ausgeführt.

PARTIAL
Ein Teil der Abfrage wurde mit BI Engine beschleunigt. Wie unter Abfrageoptimierung und -beschleunigung beschrieben, wird ein Abfrageplan im Allgemeinen in mehrere Unterabfragen unterteilt. BI Engine unterstützt die gängigen Typen von Unterabfragemustern, die normalerweise in Dashboards verwendet werden. Wenn die Abfrage aus mehreren Unterabfragen besteht, von denen nur wenige unter die unterstützten Anwendungsfälle fallen, führt BI Engine die verbleibenden Unterabfragen mit der normalen BigQuery-Engine aus. Diese verbleibenden Unterabfragen erhalten nicht die BI Engine-Beschleunigung. In diesem Fall gibt BI Engine einen PARTIAL-Beschleunigungscode zurück und verwendet biEngineReasons, um den Grund für die Beschleunigung anderer Unterabfragen zu füllen.

 FULL
 
Die gesamte Abfrage wurde mit BI Engine beschleunigt.

Führen Sie folgenden Befehl des bq-Befehlszeilentools aus, um die Statistiken abzurufen, die mit beschleunigten BI Engine-Abfragen verknüpft sind:

bq show --format=prettyjson -j job_id

Wenn das Projekt für die BI Engine-Beschleunigung aktiviert ist, erzeugt die Ausgabe das neue Feld biEngineStatistics. Hier ist ein Beispiel für einen Jobbericht:

 "statistics": {
    "creationTime": "1602175128902",
    "endTime": "1602175130700",
    "query": {
      "biEngineStatistics": {
        "biEngineMode": "DISABLED",
        "biEngineReasons": [
          {
            "code": "UNSUPPORTED_SQL_TEXT",
            "message": "Detected unsupported join type"
          }
        ]
      },

Weitere Informationen zum Feld BiEngineStatistics finden Sie in der Jobreferenz.

Beschleunigungsstatistiken in INFORMATION_SCHEMA

BI Engine-Beschleunigungsstatistiken können als Teil von INFORMATION_SCHEMA.JOBS_BY_*-Ansichten über die Spalte bi_engine_statistics abgefragt werden. Diese Abfrage gibt beispielsweise die bi_engine_stats für alle Jobs Ihrer Projekte für die letzten 24 Stunden zurück:

select creation_time, job_id, bi_engine_statistics
from `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
where creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP()
  and job_type = "QUERY"

Verwenden Sie das folgende Format, um in der Ansicht INFORMATION_SCHEMA die Regionalität für project-id, region und views anzugeben:

`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.VIEW

Cloud Monitoring

BI Engine lässt sich in Cloud Monitoring einbinden, um wichtige Metriken zu Monitoring- und Benachrichtigungszwecken anzuzeigen. Folgende Messwerte werden überwacht:

Ressourcentyp Messwertname Beschreibung
Projekt Reservierung Gesamtbytes In einem Cloud-Projekt zugewiesene Gesamtkapazität.
Projekt Reservierung von benutzten Bytes In einem Cloud-Projekt verwendete Gesamtkapazität.

Preise

Die BI Engine-Preise werden auf der BI Engine-Preisseite beschrieben.

Unterstützte Regionen

Wie BigQuery ist BI Engine eine regionale und eine multiregionale Ressource. BI Engine verarbeitet Ihre Daten in derselben Region, in der sich Ihre Daten in BigQuery befinden. Die BigQuery BI Engine SQL-Schnittstelle wird in denselben Regionen wie BigQuery unterstützt. Weitere Informationen zu regionalen BigQuery-Standorten finden Sie unter BigQuery-Datensatzstandorte.