Spanner-Spalten-Engine – Übersicht

Auf dieser Seite finden Sie einen Überblick über die spaltenbasierte Engine für Spanner und eine Beschreibung der 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 analytisches Computing, was für Transaktionsstabilität sorgt.

Die spaltenbasierte Engine ist eine Speichermethode, mit der Analysesysteme Scans im Vergleich zu Batch-basierten Scans 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 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 hohe Konsistenz zu gewährleisten. Für Abfragen, die nicht von der spaltenorientierten 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.

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 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 Cloud Spanner.

Arbeitslastisolation

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

Preise

Die Abrechnung für die spaltenbasierte Spanner-Engine erfolgt auf Grundlage 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 spaltenorientierte 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 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