Auf dieser Seite finden Sie einen Überblick über die Spalten-Engine für Spanner und eine Beschreibung ihrer Verwendung.
In operativen Datenbanken werden Daten häufig extrahiert, transformiert und in ein OLAP-System (Online Analytical Processing) für die Analyse geladen (ETL-Prozess). Dieses System ist oft Teil eines Data Warehouse. Mit Data Boost trennt Spanner bereits die analytische Rechenleistung, was für Transaktionsstabilität sorgt.
Die spaltenbasierte Engine ist eine Speichertechnik, die von Analysesystemen verwendet wird, um Scans im Vergleich zu batchbasierten Scans zu beschleunigen. Mit der spaltenbasierten Spanner-Engine können Sie Analysen mit deutlich verbesserter Leistung für die neuesten Betriebsdaten ausführen. Die spaltenbasierte Engine von Spanner steigert die Scanleistung um das bis zu 200-Fache. ETL ist nicht mehr erforderlich und die strikte Konsistenz bleibt erhalten.
Das Ressi-Format von Spanner verwendet ein spaltenweises PAX-Layout (Partition Attributes Across) für effiziente Scans innerhalb eines Datenblocks. Bei diesem Format werden jedoch alle Spalten einer Zeile in einem bestimmten Block platziert, um schnelle Suchvorgänge für einzelne Zeilen zu ermöglichen. Im Gegensatz zu Ressi werden bei der Spanner-Säulenmodul Ausführungen von Blöcken einer einzelnen Spalte zugewiesen. Dieser Ansatz ist für sequenzielle Scans effizienter, da Spanner nur die in der Abfrage referenzierten Spalten lesen muss.
Spanner erstellt die spaltenorientierte Darstellung im Hintergrund (als Teil von Verdichtungen) und führt sie zur Abfragezeit automatisch mit den neuesten Aktualisierungen zusammen, um eine hohe Konsistenz zu gewährleisten. Für Abfragen, die nicht von der spaltenorientierten Speicherung profitieren, kann weiterhin PAX verwendet werden.
Die folgenden Arbeitslasten profitieren von der Verwendung der spaltenorientierten Engine:
- Beim operativen Reporting werden aktuelle Betriebsdaten verwendet, um Business Intelligence-Informationen zu gewinnen.
- Mit Served Analytics können Dashboards und benutzerdefinierte Drilldowns mit interaktiver Latenz erstellt werden.
- Bei föderierten Analysen werden Daten aus Spanner und anderen Quellen in BigQuery nahtlos kombiniert.
Spanner-Instanzsicherungen enthalten nicht das spaltenorientierte Format.
Best Practices für die Verwendung der spaltenorientierten Engine
In diesem Abschnitt werden Best Practices für die Verwendung der spaltenorientierten Engine beschrieben.
Optimierung großer Scans
Die spaltenbasierte Engine optimiert Abfragen, bei denen große Datenmengen gescannt werden. Bei kleineren Datenscans oder Abfragen mit schnell erfüllten LIMIT
-Klauseln sind zeilenbasierte Scans möglicherweise effizienter.
Wichtige Spalten
Wenn Sie SELECT *
verwenden, liest Spanner alle Spalten aus dem spaltenorientierten Speicher. Geben Sie nur die erforderlichen Spalten an, um die Leistung zu maximieren. Beispiel: SELECT column1, column2 FROM ...
Identifizierung von Leistungsengpässen
Die spaltenbasierte Engine ist effektiv für scangebundene Arbeitslasten. Um einen scangebundenen Arbeitslast zu identifizieren, prüfen Sie den Abfrageplan auf eine hohe Latenz im Knoten Tabellenscan. Wenn Ihre Abfrage nicht scangebunden ist, sollten Sie zuerst andere Optimierungen vornehmen. Die spaltenorientierte Engine kann später Vorteile bieten, wenn Ihre Optimierungen die Abfrage scangebunden machen.
Optimale spaltenbasierte Abdeckung
Nachdem Sie die spaltenorientierte Engine für eine Datenbank aktiviert haben, die bereits Daten enthält, werden die Daten durch den automatischen Komprimierungsprozess von Spanner asynchron im Hintergrund in spaltenorientierten Speicher konvertiert. Wie stark Ihre Abfrage davon profitiert, sehen Sie im Abfrageplan im Prozentsatz des Anteils der spaltenbasierten Lesevorgänge.
Verwaltung von Daten mit hoher Churn-Rate
Hohe Schreibraten durch Aktualisierungen oder zufällige Einfügungen können sich auf die Leistung der spaltenorientierten Engine auswirken. Bei Append-only-Arbeitslasten sind die Auswirkungen der Verwendung der spaltenorientierten Engine minimal. Die Komprimierung ist ein Hintergrundprozess, der in der Regel über mehrere Tage verteilt ist. Sie kann jedoch früher erfolgen, wenn die Größe der Datenbank erheblich zunimmt. Alternativ können Sie das Schema so gestalten, dass Schreibvorgänge auf Split-Ebene nur angehängt werden. Weitere Informationen finden Sie unter Nach Zeitstempeln geordnete Daten in Cloud Spanner unterteilen.
Preise
Die Abrechnung für die spaltenbasierte Spanner-Engine basiert auf der Speichernutzung. Nachdem Sie die Spanner-Spalten-Engine aktiviert und Spanner die Datenkomprimierung abgeschlossen hat, steigt die Speichernutzung, um die neue spaltenweise Darstellung zu berücksichtigen. Die spaltenbasierte Engine bietet Speichermesswerte, mit denen Sie die Auswirkungen auf den Speicher überwachen können. Weitere Informationen finden Sie unter Messwerte für die spaltenweise Datenspeicherung.
Die Spanner-Spalten-Engine ist nicht vom Overhead von 8 Byte pro Zelle betroffen.
Vorschau Einschränkungen
- Sie müssen explizite Hinweise verwenden, um spaltenweise Lesevorgänge für Abfragen zu aktivieren, die Sie direkt an Spanner oder mit BigQuery
EXTERNAL_QUERY
senden. Weitere Informationen finden Sie unter Spaltenweise Daten abfragen. - Die spaltenorientierte Engine unterstützt nur die GoogleSQL-Schnittstelle.
- Bei Scans ohne selektive Filter ist die Verbesserung möglicherweise geringer.
Nächste Schritte
- Weitere Informationen zum Aktivieren der spaltenorientierten Engine
- Spaltenorientierte Daten abfragen
- Spaltenorientierte Engine überwachen