Spanner-Spalten-Engine – Übersicht

Auf dieser Seite finden Sie einen Überblick über die spaltenbasierte 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). Dieses System ist oft Teil eines Data Warehouse. Mit Data Boost für Spanner trennt Spanner bereits das analytische Computing, 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 spaltenorientierte 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 Layout für Partition Attributes Across (PAX) 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 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 in der Abfrage referenzierten Spalten lesen muss.

Spanner erstellt die spaltenbasierte Darstellung im Hintergrund (als Teil von Verdichtungen) und führt sie zur Abfragezeit automatisch mit den neuesten Updates zusammen, um strikte Konsistenz zu gewährleisten. Für Abfragen, die nicht von der spaltenbasierten Speicherung profitieren, kann weiterhin PAX verwendet werden.

Arbeitslasten, die von der Verwendung der spaltenbasierten Engine profitieren, sind unter anderem:

  • Bei der operativen Berichterstellung 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.

Cloud 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 spaltenorientierte Engine optimiert Abfragen, die große Datenmengen scannen. 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 für scangebundene Arbeitslasten effektiv. Um einen scangebundenen Arbeitslast zu identifizieren, prüfen Sie den Abfrageplan auf eine hohe Latenz im Knoten Tabellenscan. Wenn Ihre Anfrage nicht an einen Scan gebunden ist, sollten Sie zuerst andere Optimierungen vornehmen. Die spaltenorientierte Engine kann später Vorteile bieten, wenn Ihre Optimierungen die Abfrage scangebunden machen.

Optimale Spaltenabdeckung

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 Schreibvorgänge durch Aktualisierungen oder zufällige Einfügungen können sich auf die Leistung der spaltenorientierten Engine auswirken. Bei Arbeitslasten, bei denen nur angehängt wird, sind die Auswirkungen der Verwendung der spaltenorientierten Engine minimal. Die Komprimierung ist ein Hintergrundprozess, der sich in der Regel über mehrere Tage erstreckt. Wenn die Größe der Datenbank jedoch erheblich zunimmt, kann sie auch schneller erfolgen. Alternativ können Sie das Schema so gestalten, dass nur Anhänge auf der Splitebene möglich sind. Weitere Informationen finden Sie unter Sharding of timestamp-ordered data in Spanner.

Arbeitslastisolation

Es gibt zwei Methoden, mit denen Sie Analyseanfragen von Transaktionen isolieren können:

Preise

Die Abrechnung für die Spanner-Spalten-Engine basiert auf der Speichernutzung. Nachdem Sie die spaltenorientierte Spanner-Engine aktiviert haben und die Datenkomprimierung abgeschlossen ist, steigt die Speichernutzung, da die neue spaltenorientierte Darstellung berücksichtigt wird. Die spaltenbasierte Engine bietet Speichermesswerte, mit denen Sie die Auswirkungen auf den Speicherplatz überwachen können. Weitere Informationen finden Sie unter Messwerte für die spaltenweise Datenspeicherung.

Die spaltenbasierte Engine von Spanner ist nicht vom Overhead von 8 Byte pro Zelle betroffen.

Vorschau Einschränkungen

  • Die spaltenbasierte Engine unterstützt nur die GoogleSQL-Schnittstelle.

Nächste Schritte