Auf dieser Seite finden Sie eine Übersicht über die spaltenbasierte Engine für Spanner und eine Beschreibung ihrer Verwendung.
In Betriebsdatenbanken werden Daten in der Regel extrahiert, transformiert und in ein OLAP-System (Online Analytical Processing) geladen, um sie zu analysieren. Dieses System ist oft Teil eines Data Warehouse. Mit Data Boost für Spanner, Spanner trennt bereits die analytische Rechenleistung, was die Transaktionsstabilität gewährleistet.
Die spaltenbasierte Engine ist eine Speichertechnik, mit der Analysesysteme Scans im Vergleich zu Batch-basierten Scans beschleunigen können. Mit der spaltenbasierten Engine von Spanner können Sie Analysen mit deutlich verbesserter Leistung für die neuesten Betriebsdaten ausführen. Die spaltenbasierte Engine von Spanner erhöht die Scanleistung um das bis zu 200‑Fache. ETL-Vorgänge sind nicht mehr erforderlich und die strikte Konsistenz bleibt erhalten.
Das Ressi-Format von Spanner verwendet ein spaltenweises Layout mit Partition Attributes Across (PAX) für effiziente Scans innerhalb eines Datenblocks. Bei diesem Format werden jedoch alle Spalten einer Zeile in einem bestimmten Block zusammengefasst, um schnelle Suchen nach einzelnen Zeilen zu ermöglichen. Im Gegensatz zu Ressi werden bei der spaltenbasierten Engine von Spanner Läufe von Blöcken einer einzelnen Spalte zugewiesen. Dieser Ansatz ist für sequenzielle Scans effizienter, da Spanner nur die Spalten lesen muss, auf die in der Abfrage verwiesen wird.
Spanner erstellt die spaltenbasierte Darstellung im Hintergrund (im Rahmen von Komprimierungen) und führt sie zur Abfragezeit automatisch mit den neuesten Aktualisierungen zusammen, um eine strikte Konsistenz zu gewährleisten. Für Abfragen, die nicht von der spaltenbasierten Speicherung profitieren, kann weiterhin PAX verwendet werden.
Zu den Arbeitslasten, die von der Verwendung der spaltenbasierten Engine profitieren, gehören:
- Betriebsberichte: Sie können aktuelle Business Intelligence-Daten aus den neuesten Betriebsdaten extrahieren.
- Bereitgestellte Analysen: Sie können Dashboards und benutzerdefinierte Drilldowns mit interaktiver Latenz erstellen.
- Föderierte Analysen: Sie können Daten aus Spanner und anderen Quellen nahtlos in BigQuery kombinieren.
Spanner-Instanzsicherungen enthalten nicht das spaltenbasierte Format.
Best Practices für die Verwendung der spaltenbasierten Engine
In diesem Abschnitt werden Best Practices für die Verwendung der spaltenbasierten Engine beschrieben.
Optimierung großer Scans
Die spaltenbasierte Engine optimiert Abfragen, bei denen große Datenmengen gescannt werden. Bei kleineren Datenscans oder Abfragen mit LIMIT-Klauseln, die schnell erfüllt werden, sind zeilenbasierte Scans möglicherweise effizienter.
Wichtige Spalten
Wenn Sie SELECT * verwenden, liest Spanner alle Spalten aus dem spaltenbasierten Speicher. Um die Leistung zu maximieren, geben Sie nur die erforderlichen Spalten an. Beispiel: SELECT column1, column2 FROM ....
Leistungsengpässe identifizieren
Die spaltenbasierte Engine ist für scanlastige Arbeitslasten effektiv. Um eine scanlastige Arbeitslast zu identifizieren, prüfen Sie den Abfrageplan auf eine hohe Latenz im Knoten Table scan (Tabellenscan). Wenn Ihre Abfrage nicht scanlastig ist, priorisieren Sie zuerst andere Optimierungen. Die spaltenbasierte Engine kann später Vorteile bieten, wenn Ihre Optimierungen die Abfrage scanlastig machen.
Optimale spaltenbasierte Abdeckung
Nachdem Sie die spaltenbasierte 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 den spaltenbasierten Speicher konvertiert. Wie stark Ihre Abfrage profitiert, sehen Sie im Abfrageplan am Prozentsatz unter Columnar read share (Anteil der spaltenbasierten Lesevorgänge).
Daten mit hoher Fluktuation verwalten
Hohe Schreibraten durch Aktualisierungen oder zufällige Einfügungen können sich auf die Leistung der spaltenbasierten Engine auswirken. Bei Arbeitslasten, bei denen nur angehängt wird, sind die Auswirkungen der spaltenbasierten Engine minimal. Die Komprimierung ist ein Hintergrundprozess, der in der Regel mehrere Tage dauert, aber schneller abgeschlossen sein kann, wenn die Größe der Datenbank erheblich zunimmt. Alternativ können Sie das Schema so gestalten, dass Schreibvorgänge, bei denen nur angehängt wird, auf der Aufteilungsebene bevorzugt werden. Weitere Informationen finden Sie unter Sharding von nach Zeitstempel sortierten Daten in Spanner.
Arbeitslastisolation
Es gibt zwei Methoden, mit denen Sie analytische Abfragen von Transaktionen isolieren können:
- Verwenden Sie gezielte Lesevorgänge, um Lesevorgänge an schreibgeschützte Replikate weiterzuleiten.
- Verwenden Sie Data Boost für föderierte Abfragen.
Preise
Die Abrechnung für die spaltenbasierte Engine von Spanner basiert auf der Speichernutzung. Nachdem Sie die spaltenbasierte Engine von Spanner aktiviert haben und die Datenkomprimierung abgeschlossen ist, steigt die Speichernutzung, da die neue spaltenbasierte Darstellung berücksichtigt wird. Die spaltenbasierte Engine bietet Speichermesswerte, mit denen Sie die Auswirkungen auf den Speicher beobachten können. Weitere Informationen finden Sie unter Messwerte für die spaltenbasierte Datenspeicherung.
Die spaltenbasierte Engine von Spanner ist nicht von dem Overhead von 8 Byte pro Zelle betroffen.
Vorschau Einschränkungen
- Die spaltenbasierte Engine unterstützt nur die GoogleSQL-Schnittstelle.
Nächste Schritte
- Spaltenbasierte Engine aktivieren
- Spaltenbasierte Daten abfragen
- Erfahren Sie, wie Sie die spaltenbasierte Engine überwachen.