Spanner für nicht relationale Arbeitslasten

Spanner ist ein äußerst zuverlässiges, vollständig verwaltetes Datenbanksystem. Spanner hat sich zwar zu einem relationalen Datenbankverwaltungssystem entwickelt, seine Wurzeln liegen jedoch im nicht relationalen Schlüssel/Wert-Speichersystem und es behält die grundlegenden Eigenschaften eines solchen Systems bei. Sie können Spanner daher als nicht relationale (NoSQL) Datenbank verwenden und von anderen nicht relationalen Datenbanken zu Spanner migrieren. In diesem Dokument erfahren Sie, ob Spanner für Ihre nicht relationalen Arbeitslasten geeignet ist.

NoSQL-Datenbanken wurden zu einer Zeit eingeführt, als herkömmliche relationale Datenbanken nicht über Funktionen zur Unterstützung neuer Anwendungen verfügten, die eine hohe Skalierbarkeit, Verfügbarkeit und Rechenelastizität erfordern. Dabei wurden mehrere Funktionen geopfert, die für die Datenverwaltung oft entscheidend sind, z. B. Transaktionen, Konsistenz und Ad-hoc-Abfragen. Spanner wurde entwickelt, um sowohl die anspruchsvolle Natur hochverfügbarer Anwendungen als auch die Funktionen herkömmlicher relationaler Datenbanken zu unterstützen, damit Kunden beide Funktionen nutzen können.

Mit Spanner können Sie mit einfachen, nicht relationalen Speicheranforderungen beginnen und Ihre Anwendung nach Bedarf skalieren.

Wie Spanner die Kriterien für NoSQL-Datenbanken erfüllt

Spanner erfüllt die folgenden wichtigen Kriterien für Ihre NoSQL-Arbeitslasten.

Skalierung und Leistung

NoSQL-Datenbanken haben sich aufgrund ihrer Fähigkeit, Lese- und Schreibvorgänge horizontal zu skalieren, großer Beliebtheit erfreut. Mit Spanner müssen Sie sich keine Gedanken über Skalierbarkeit oder Leistung machen. Spanner-Datenbanken im Schlüssel/Wert-Paar-Format können horizontal skaliert werden, um Hunderte von Millionen Lese- oder Schreibanfragen pro Sekunde und Petabyte an Daten zu unterstützen. Die Rechenkapazität von Spanner skaliert mit der Arbeitslast und bietet ein konsistentes Profil mit niedriger Latenz, auch wenn Ihre Anwendung um mehrere Größenordnungen skaliert wird.

NoSQL API

Auf herkömmliche relationale Datenbanken wird in der Regel über SQL zugegriffen. Für Entwickler, die mit relationalen Datenbanken nicht vertraut sind, ist das mit einer Lernkurve verbunden. Clients für diese Datenbanken nutzen in der Regel auch persistente Verbindungen und erfordern eine Verbindungs-Pooling-Infrastruktur, um skaliert werden zu können. Die Spanner API basiert dagegen auf einem gRPC/HTTP2-Anfrage- und Antwortmodell, das Verbindungsfehler automatisch verarbeitet. Spanner bietet einfache, sprachspezifische und effiziente NoSQL-Lese-/Schreib-APIs, für die keine SQL-Kenntnisse erforderlich sind. Außerdem ist für Spanner-Clients kein Verbindungs-Pooling erforderlich, um zu skalieren.

Vollständig verwaltet

Ein großer Vorteil von NoSQL-Datenbanken besteht darin, dass sie als einfacher zu verwalten gelten. Da es sich bei Spanner um einen vollständig verwalteten Dienst handelt, fallen für Kunden keine Betriebskosten an. Spanner führt im Hintergrund Software- und Hardwareupdates ohne Ausfallzeit durch und behält dabei die Abwärtskompatibilität bei. Die Spanner API und -Semantik sind dieselben, als würden die Vorgänge auf einer einzelnen Maschinendatenbank ausgeführt. Es ist kein Wissen über die interne Architektur von Spanner erforderlich. Spanner wird in Bereitstellungen mit 1/10 Knoten bis zu Zehntausenden von Knoten ausgeführt und skaliert automatisch und reaktionsschnell mit einem verwalteten Autoscaler.

semistrukturierte Daten

Spanner unterstützt flexible Datentypen wie JSON und BYTES, die zum Speichern semistrukturierter oder unstrukturierter Daten verwendet werden. Wie bei anderen NoSQL-Datenbanken können Sie mit diesen Datentypen vermeiden, Ihr gesamtes Speicherschema vorab anzugeben.

Zugriffssteuerung

Wie andere NoSQL-Datenbanken unterstützt Spanner die IAM-basierte Zugriffssteuerung. Administratoren können Richtlinien für die Zugriffssteuerung konfigurieren und verwalten, ohne Nutzernamen und Passwörter in der Datenbank zu speichern.

Unterschiede zwischen Spanner und herkömmlichen NoSQL-Datenbanken

Spanner bietet gegenüber herkömmlichen NoSQL-Datenbanken folgende Vorteile:

Transaktionen

Je komplexer Anwendungen werden, desto häufiger müssen sie Transaktionsvorgänge mit mehreren Zeilen und Tabellen in der Datenbank ausführen. Mit Spanner müssen Sie nicht zu einem transaktionalen Datenspeicher migrieren, wenn Ihre Datenbank wächst, da Spanner Lese-/Schreibtransaktionen vollständig unterstützt. Als ACID-konforme Datenbank sorgt Spanner unabhängig von der Skalierung jederzeit für die transaktionale Konsistenz Ihrer Datenbank.

Datenmodellierung

Das Schemadesign in NoSQL-Datenbanken kann unnatürlich sein, da alle Daten in eine Tabelle passen müssen und Daten aufgrund der Unmöglichkeit, Joins auszuführen, zwangsweise denormalisiert werden müssen. Mit Spanner können Sie Ihr Schema angeben, ohne auf eine einzelne Tabelle oder Denormalisierung zurückgreifen zu müssen. Um Zugriffsmuster zu optimieren, die mehrere Tabellen betreffen, können Sie Tabellen-Interleaving verwenden. Sie können auch Joins zwischen Tabellen ausführen.

Ad-hoc-Abfragen

Auch wenn Sie hauptsächlich die NoSQL API verwenden, ist es oft sinnvoll, Ad-hoc-Abfragen zu Debug- oder Analysezwecken auszuführen. Spanner verwendet die SQL-Standardabfragesprache. Mit der Anfragepriorisierung können Sie Ad-hoc-Traffic mit niedriger Priorität vom Online-Traffic isolieren. Mit Spanner Data Boost können Sie Analyseabfragen auf Rechenressourcen ausführen, die vollständig vom Online-Datenbanktraffic getrennt sind.

Sekundäre Indexe mit strikter Konsistenz

Anwendungen erfordern häufig sekundäre Indexe, um Suchanfragen mit niedriger Latenz zu unterstützen. Typische NoSQL-Datenbanken bieten schließlich konsistente sekundäre Indexe oder legen Einschränkungen für die Größe eines Index fest. Dies kann die Anwendungslogik erschweren, die diese Einschränkungen berücksichtigen muss. Spanner bietet strikt konsistente sekundäre Indexe im großen Maßstab ohne Größenbeschränkungen. So können Sie sich auf die Anwendungslogik konzentrieren und sich keine Gedanken über Konsistenzprobleme machen.

Ist Spanner die richtige Datenbank für Ihre NoSQL-Anforderungen?

Spanner ist ein flexibles Datenspeichersystem, das sowohl SQL- als auch NoSQL-Anwendungsfälle unterstützt. Einige Anwendungen beginnen mit einfachen Speicheranforderungen, aber mit zunehmender Komplexität benötigen sie mehr Funktionen, die von NoSQL-Datenbanken in der Regel nicht angeboten werden, z. B. Transaktionen, konsistente sekundäre Indexe und eine flexible Abfragesprache. Mit Spanner sind Sie nicht an diese Einschränkungen gebunden und können Ihre Anwendung nach Bedarf erweitern.

Die meisten nicht relationalen Arbeitslasten eignen sich hervorragend für Spanner. Spanner bietet nicht nur eine einfache NoSQL-Lese-/Schreib-API, sondern auch Hochverfügbarkeit, hohe Zuverlässigkeit, niedrige Latenz, ELASTIC Computing und extreme Skalierbarkeit. Mit Spanner können Sie verschiedene Arbeitslasten auf einer einzigen flexiblen Plattform konsolidieren.