Was ist BI Engine?

BigQuery BI Engine ist ein schneller In-Memory-Analysedienst, der viele SQL-Abfragen in BigQuery beschleunigt. Dazu werden die am häufigsten verwendeten Daten auf intelligente Weise im Cache gespeichert. BI Engine kann SQL-Abfragen von jeder Quelle beschleunigen, einschließlich solcher, die von Datenvisualisierungstools geschrieben wurden, und kann im Cache gespeicherte Tabellen für eine kontinuierliche Optimierung verwalten. So können Sie die Abfrageleistung ohne manuelle Feinabstimmung oder Data Tiering verbessern. Mithilfe von Clustering und Partitionierung können Sie die Leistung großer Tabellen mit BI Engine weiter optimieren.

Wenn Ihr Dashboard beispielsweise nur die Daten des letzten Quartals anzeigt, sollten Sie Ihre Tabellen nach Zeit partitionieren, sodass nur die neuesten Partitionen in den Speicher geladen werden. Sie können auch die Vorteile von materialisierten Ansichten und BI Engine kombinieren. Dies funktioniert besonders gut, wenn die materialisierten Ansichten verwendet werden, um Daten zu verknüpfen und zu vereinfachen, um ihre Struktur für BI Engine zu optimieren.

BI Engine bietet folgende Vorteile:

  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 Wörterbuch- und Laufzeitlängencodierungen, um die in der speicherinternen Ebene gespeicherten Daten weiter zu komprimieren.
  3. Nahtlose Integration: BI Engine funktioniert mit BigQuery-Features und -Metadaten, einschließlich autorisierter Ansichten, Spalten- und Zeilensicherheit sowie Datenmaskierung.
  4. Reservierungen: BI Engine-Reservierungen verwalten die Speicherzuweisung auf Projektebene. BI Engine speichert bestimmte Spalten oder Partitionen im Cache, die abgefragt werden, wobei diejenigen in Tabellen priorisiert werden, die als bevorzugt markiert werden.

Informationen zur SQL-Schnittstelle in BI Engine

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

BI Engine-Anwendungsfälle

BI Engine kann viele SQL-Abfragen erheblich beschleunigen, einschließlich solcher, die für BI-Dashboards verwendet werden. Beschleunigen ist am effektivsten, wenn Sie die Tabellen ermitteln, die für Ihre Abfragen wichtig sind, und diese dann als bevorzugte Tabellen markieren. Erstellen Sie zur Verwendung von BI Engine eine Reservierung, die die für BI Engine vorgesehene Speicherkapazität definiert. Sie können BigQuery anhand der Nutzungsmuster des Projekts festlegen lassen, welche Tabellen im Cache gespeichert werden, oder bestimmte Tabellen markieren, um zu verhindern, dass anderer Traffic die Beschleunigung stört.

BI Engine ist in folgenden Anwendungsfällen nützlich:

  • Verwenden Sie BI-Tools zum Analysieren Ihrer Daten: Die BI Engine SQL-Schnittstelle kann BigQuery-Abfragen beschleunigen, unabhängig davon, ob sie in der BigQuery-Konsole, der Clientbibliothek oder über eine API oder einen ODBC- oder JDBC-Connector ausgeführt werden. Dies kann die Leistung von Dashboards, die über eine integrierte Verbindung (API) oder Connectors verbunden sind, erheblich verbessern.
  • Sie haben bestimmte Tabellen, die am häufigsten abgefragt werden: Mit BI Engine können Sie bestimmte bevorzugte Tabellen beschleunigen. Dies ist hilfreich, wenn Sie eine Teilmenge von Tabellen haben, die häufiger abgefragt oder für Dashboards mit hoher Sichtbarkeit verwendet werden.

BI Engine erfüllt in den folgenden Fällen möglicherweise nicht Ihre Anforderungen:

  • Sie verwenden in Ihren Abfragen Platzhalter: Abfragen, die auf Platzhaltertabellen verweisen, werden von BI Engine nicht unterstützt und profitieren nicht von einer Beschleunigung.

  • Sie verlassen sich stark auf BigQuery-Features, die von BI Engine nicht unterstützt werden: BI Engine unterstützt beim Verbinden von Business Intelligence-Tools (BI) mit BigQuery die meisten SQL-Funktionen und Operatoren. Es gibt nicht unterstützte Features, darunter externe Tabellen und benutzerdefinierte Nicht-SQL-Funktionen.

Überlegungen zu BI Engine

Berücksichtigen Sie bei der Konfiguration von BI Engine Folgendes:

Für bestimmte Abfragen beschleunigen

Sie können dafür sorgen, dass ein bestimmter Satz von Abfragen immer beschleunigt wird, indem Sie ein separates Projekt mit einer BI Engine-Reservierung erstellen. Dazu müssen Sie dafür sorgen, dass die BI Engine-Reservierung in diesem Projekt groß genug ist, um die Größe aller in diesen Abfragen verwendeten Tabellen zu erfüllen, und diese Tabellen als bevorzugte Tabellen für BI Engine festlegen. In diesem Projekt sollten nur die Abfragen ausgeführt werden, die beschleunigt werden müssen.

Joins minimieren

BI Engine funktioniert am besten mit vorab verknüpften oder vorab aggregierten Daten und mit Daten in einer kleinen Anzahl von Joins. Dies gilt insbesondere, wenn eine Seite des Join groß ist und die anderen wesentlich kleiner sind, z. B. wenn Sie eine große Faktentabelle abfragen, die mit einer kleinen Dimensionstabelle verknüpft ist. Sie können BI Engine mit materialisierten Ansichten kombinieren, die Joins ausführen, um eine einzelne große, flache Tabelle zu erzeugen. Auf diese Weise müssen nicht für jede Abfrage dieselben Joins ausgeführt werden.

Auswirkungen von BI Engine verstehen

Sie können besser verstehen, wie Ihre Arbeitslasten von BI Engine profitieren, indem Sie die Nutzungsstatistiken in Cloud Monitoring prüfen oder INFORMATION_SCHEMA in BigQuery abfragen. Deaktivieren Sie die Option Im Cache gespeicherte Ergebnisse verwenden in BigQuery, um einen möglichst genauen Vergleich zu erhalten. Weitere Informationen finden Sie unter Im Cache gespeicherte Abfrageergebnisse verwenden.

Kontingente und Limits

Informationen zu Kontingenten und Limits für BI Engine finden Sie unter BigQuery-Kontingente und -Limits.

Preise

Informationen zur BI Engine-Preisgestaltung finden Sie auf der Seite BigQuery Preisgestaltung.

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.

Nächste Schritte