Spanner für nicht relationale Arbeitslasten

Spanner ist ein äußerst zuverlässiges, vollständig verwaltetes Datenbanksystem. Spanner hat sich zwar zu einem Verwaltungssystem für relationale Datenbanken weiterentwickelt, hat seinen Wurzeln jedoch als nicht relationales Speichersystem mit Schlüssel/Wert-Paaren und behält die grundlegenden Eigenschaften eines solchen Systems bei. Daher können Sie Spanner als nicht relationale (NoSQL-)Datenbank verwenden und von anderen nicht relationalen Datenbanken zu Spanner migrieren. In diesem Dokument erfahren Sie, ob Spanner die richtige Wahl für Ihre nicht relationalen Arbeitslasten ist.

NoSQL-Datenbanken wurden in einer Zeit verwendet, in der es herkömmlichen relationalen Datenbanken keine Funktionen zur Unterstützung neuer Anwendungen gab, die eine hohe Skalierbarkeit, Verfügbarkeit und Elastizität der Rechenleistung erforderten. Dies ging auf verschiedene Features zurück, die für die Datenverwaltung häufig von entscheidender Bedeutung sind, z. B. Transaktionen, Konsistenz und Ad-hoc-Abfragen. Spanner wurde entwickelt, um sowohl die anspruchsvollen Hochverfügbarkeitsanwendungen als auch Funktionen herkömmlicher relationaler Datenbanken zu unterstützen, sodass Kunden beide Features nutzen können.

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

So erfüllt Spanner NoSQL-Datenbankkriterien

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

Umfang und Leistung

NoSQL-Datenbanken immer beliebter geworden, da sie Lese- und Schreibvorgänge horizontal skalieren können. Mit Spanner müssen Sie sich keine Sorgen um Skalierung oder Leistung machen. Spanner-Datenbanken mit Schlüssel/Wert-Paaren können horizontal skaliert werden, um Hunderte Millionen Lese- oder Schreibanfragen pro Sekunde sowie Petabyte an Daten zu unterstützen. Die Rechenkapazität von Spanner wird mit der Arbeitslast skaliert und sorgt für ein konsistentes Latenzprofil mit niedriger Latenz, auch wenn Ihre Anwendung um mehrere Größenordnungen skaliert wird.

NoSQL-API

Der Zugriff auf herkömmliche relationale Datenbanken erfolgt normalerweise über SQL. Dies ist für Entwickler, die mit relationalen Datenbanken nicht vertraut sind, eine Herausforderung. Clients für diese Datenbanken benötigen in der Regel auch persistente Verbindungen und erfordern zur Skalierung die Bereitstellung einer Verbindungs-Pooling-Infrastruktur. Im Gegensatz dazu basiert die Spanner API auf einem gRPC/HTTP2-Anfrage- und -Antwortmodell, das Verbindungsfehler automatisch verarbeitet. Spanner bietet einfache, sprachnative und effiziente NoSQL-Lese-/Schreib-APIs, die keine SQL-Kenntnisse erfordern. Außerdem benötigen Spanner-Clients für die Skalierung kein Verbindungs-Pooling.

Vollständig verwaltet

Ein großer Vorteil von NoSQL-Datenbanken besteht darin, dass sie als einfacher zu verwalten angesehen werden. Als vollständig verwalteter Dienst beansprucht Spanner keine operativen Belastungen für Kunden. Spanner führt Software- und Hardwareaktualisierungen ohne Ausfallzeiten im Hintergrund durch, während die Abwärtskompatibilität aufrechterhalten wird. Die Spanner API und die Semantik sind die gleichen, als wenn die Vorgänge auf einer Datenbank auf einem einzelnen Computer ausgeführt werden. Sie erfordern keine Kenntnisse der internen Architektur von Spanner. Spanner wird in Bereitstellungen von einem Zehntel eines Knotens bis zu Zehntausenden von Knoten ausgeführt und skaliert automatisch und responsiv mit einem verwalteten Autoscaling.

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 diese Datentypen verwenden, um zu vermeiden, dass Sie das gesamte Speicherschema im Voraus angeben.

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 die folgenden Vorteile.

Transaktionen

Mit zunehmender Komplexität von Anwendungen müssen sie häufig mehrzeilige und mehrere Tabellentransaktionen für die Datenbank ausführen. Mit Spanner müssen Sie nicht zu einem transaktionalen Datenspeicher migrieren, wenn Ihre Datenbank wächst, da Spanner Lese-Schreib-Transaktionen vollständig unterstützt. Als ACID-konforme Datenbank sorgt Spanner jederzeit für die transaktionale Konsistenz Ihrer Datenbank, unabhängig vom Umfang.

Datenmodellierung

Das Schemadesign in NoSQL-Datenbanken kann unnatürlich sein, da alle Daten in eine Tabelle passen und die Denormalisierung von Daten erzwungen werden müssen, da keine Verknüpfungen durchgeführt werden können. Mit Spanner können Sie Ihr Schema angeben, ohne auf eine einzelne Tabelle zurückgreifen oder Ihre Daten denormalisieren zu müssen. Zur Optimierung von Zugriffsmustern, die mehrere Tabellen betreffen, können Sie die Tabellenverschränkung verwenden. Sie können auch tabellenübergreifende Verknüpfungen durchführen.

Ad-hoc-Abfragen

Selbst wenn Sie hauptsächlich die NoSQL API verwenden, ist es häufig dennoch nützlich, Ad-hoc-Abfragen zu Fehlerbehebungs- oder Analysezwecken auszuführen. Spanner hält sich an die SQL-Standardabfragesprache. Sie können die Anfragepriorisierung verwenden, um Ad-hoc-Traffic mit niedriger Priorität vom Onlinetraffic zu isolieren, oder Spanner Data Boost verwenden, um analytische Abfragen für Rechenressourcen auszuführen, die vollständig vom Onlinedatenbanktraffic isoliert sind.

Stark konsistente sekundäre Indexe

Anwendungen benötigen häufig sekundäre Indexe, um Lookups mit niedriger Latenz zu unterstützen. Typische NoSQL-Datenbanken bieten sekundäre Indexe mit Eventual Consistency oder beschränken die Größe eines Index. Dies kann die Anwendungslogik verkomplizieren, die diese Einschränkungen umgehen muss. Spanner bietet im großen Maßstab strikt konsistente sekundäre Indexe ohne Größeneinschränkungen. So können Sie sich auf die Anwendungslogik konzentrieren und müssen sich keine Gedanken um Konsistenzprobleme machen.

Ist Spanner das Richtige für Ihre NoSQL-Datenbankanforderungen?

Spanner ist ein flexibles Datenspeichersystem, das sowohl SQL- als auch NoSQL-Anwendungsfälle unterstützt. Während einige Anwendungen mit zunehmender Komplexität beginnen, benötigen sie zusätzliche Funktionen, die in der Regel von NoSQL-Datenbanken nicht angeboten werden, z. B. Transaktionen, konsistente sekundäre Indexe und eine flexible Abfragesprache. Mit Spanner werden Sie nicht durch diese Einschränkungen eingeschränkt und können Ihre Anwendung nach Bedarf erweitern.

Die meisten nicht relationalen Arbeitslasten eignen sich sehr gut für Spanner. Spanner bietet nicht nur eine einfache NoSQL-Lese-Schreib-API, sondern wird auch durch Hochverfügbarkeit, hohe Zuverlässigkeit, niedrige Latenz, elastische Rechenleistung und extreme Skalierbarkeit unterstützt. Mit Spanner können Sie verschiedene Arbeitslasten auf einer einzigen flexiblen Plattform konsolidieren.