Firestore im Datastore-Modus (Datenspeicher) ist eine NoSQL-Dokumentdatenbank, die auf Autoscaling, hohe Leistung und einfache Anwendungsentwicklung ausgelegt ist. Datastore hat die folgenden Features:
- Atomare Transaktionen: Datastore kann eine Reihe von Vorgängen ausführen, bei denen entweder alle erfolgreich sind oder keine auftreten.
- Hohe Verfügbarkeit von Lese- und Schreibvorgängen: Datastore wird in Rechenzentren von Google unter Einsatz von Redundanz ausgeführt, um die Auswirkungen möglicher Problemstellen zu minimieren.
- Enorme Skalierbarkeit bei hoher Durchsatzrate: Datastore setzt auf eine verteilte Architektur, um die Skalierung automatisch zu verwalten. Datastore verwendet eine Mischung aus Indexen und Abfrageeinschränkungen, damit Ihre Abfragen nach der Größe Ihrer Ergebnismenge und nicht nach der Größe Ihres Datasets skaliert werden.
- Flexible Speicherung und Abfrage von Daten: Datastore ist perfekt auf objektorientierte Sprachen und Skriptsprachen abgestimmt und kann über mehrere Clients auf Anwendungen zugreifen. Es bietet außerdem eine SQL-ähnliche Abfragesprache.
- Strikte Konsistenz: Datastore stellt sicher, dass alle Abfragen strikt konsistent sind.
- Verschlüsselung inaktiver Daten: Datastore verschlüsselt automatisch alle Daten, bevor sie auf ein Laufwerk geschrieben werden, und entschlüsselt diese Daten automatisch wieder, wenn sie von einem autorisierten Nutzer gelesen werden. Weitere Informationen finden Sie unter Serverseitige Verschlüsselung.
- Vollständig verwaltet ohne planmäßige Ausfallzeiten: Google übernimmt die Verwaltung des Dienstes, sodass Sie sich auf Ihre Anwendung konzentrieren können. Ihre Anwendung kann Datastore auch bei einem geplanten Upgrade des Dienstes verwenden.
Vergleich mit relationalen Datenbanken
Datastore hat zwar viele Merkmale, die relationalen Datenbanken ähnlich sind, als NoSQL-Datenbank jedoch in Bezug auf die Art und Weise, wie die Beziehungen zwischen Datenobjekten beschrieben werden. Einen Vergleich zwischen Datastore und relationalen Datenbankkonzepten finden Sie hier:
Konzept | Datastore | Firestore | Relationale Datenbank |
---|---|---|---|
Objektkategorie | Art | Sammlungsgruppe | Tabelle |
Ein Objekt | Entität | Dokument | Zeile |
Einzelne Daten für ein Objekt | Attribut | Feld | Spalte |
Eindeutige ID für ein Objekt | Schlüssel | Dokument-ID | Primärschlüssel |
Im Gegensatz zu Zeilen in einer relationalen Datenbanktabelle können Datastore-Entitäten derselben Art unterschiedliche Attribute haben. Unterschiedliche Entitäten können Attribute mit demselben Namen, aber unterschiedlichen Werttypen haben. Diese einzigartigen Eigenschaften implizieren eine andere Art der Gestaltung und Verwaltung von Daten, um die automatische Skalierung zu nutzen. Datastore unterscheidet sich in folgenden wichtigen Punkten von herkömmlichen relationalen Datenbanken:
- Datastore ist darauf ausgelegt, automatisch auf sehr große Datasets zu skalieren. Dadurch können Anwendungen auch bei vermehrtem Traffic eine hohe Leistung aufrechterhalten:
- Schreibvorgänge von Datastore werden automatisch skaliert, indem die Daten nach Bedarf verteilt werden.
- Lesevorgänge von Datastore sind skalierbar, da nur solche Abfragen unterstützt werden, deren Leistung parallel zur Größe der Ergebnismenge (anstatt zum Datensatz) skaliert. Das bedeutet, dass eine Abfrage, deren Ergebnismenge 100 Entitäten enthält, immer die gleiche Leistung liefert, unabhängig davon, ob 100 oder 1 Million Entitäten durchsucht werden. Diese Eigenschaft ist der Hauptgrund dafür, dass einige Abfragetypen nicht unterstützt werden.
- Da alle Abfragen von zuvor erstellten Indexen bedient werden, sind die Abfragetypen, die ausgeführt werden können, stärker eingeschränkt als bei einer relationalen Datenbank mit SQL. Insbesondere bietet Datastore keine Unterstützung für Join-Vorgänge, Ungleichheitsfilter für mehrere Attribute oder das Filtern von Daten basierend auf den Ergebnissen einer Unterabfrage.
- Im Gegensatz zu relationalen Datenbanken, die ein Schema erzwingen, ist Datastore schemalos. Hier ist es nicht erforderlich, dass Entitäten derselben Art eine konsistente Menge von Attributen haben (Sie können jedoch eine solche Anforderung in Ihrem eigenen Anwendungscode erzwingen).
Einsatzmöglichkeiten
Datastore eignet sich ideal für Anwendungen, die hochverfügbare strukturierte Daten verwenden und skalierbar sind. Mit Datastore können Sie die folgenden Datentypen speichern und abfragen:
- Produktkataloge, die eine Bestandsaufnahme in Echtzeit ermöglichen und Produktdetails für Händler bieten
- Nutzerprofile, die eine personalisierte Erfahrung basierend auf früheren Aktivitäten und Einstellungen des Nutzers bieten.
- Transaktionen, die auf ACID-Properties basieren. beispielsweise über Überweisungen von einem Bankkonto auf ein anderes.
Andere Speicherungs- und Datenbankoptionen
Datastore ist nicht für jeden Anwendungsfall perfekt geeignet. Datastore ist beispielsweise keine relationale Datenbank und keine effektive Lösung für analytische Daten.
Es folgen einige Einsatzbereiche, bei denen sich eine Alternative zu Datastore empfiehlt:
- Wenn Sie eine relationale Datenbank mit voller SQL-Unterstützung für ein Online-Transaktionsverarbeitungssystem (OLTP) benötigen, könnte Cloud SQL für Sie infrage kommen.
- Falls Sie keine Unterstützung für ACID-Transaktionen benötigen oder Ihre Daten nicht hochstrukturiert sind, ziehen Sie Bigtable in Betracht.
- Wenn Sie interaktive Abfragen in einem System für die analytische Onlineverarbeitung (OLAP) benötigen, ist BigQuery möglicherweise das Richtige für Sie.
- Wenn Sie große unveränderliche Blobs wie große Bilder oder Filme speichern müssen, könnte Cloud Storage die passende Alternative sein.
Weitere Informationen zu anderen Datenbankoptionen finden Sie in der Übersicht der Datenbankdienste.
Nächste Schritte
- Informationen zum Speichern und Abfragen von Daten mit der Google Cloud Console
- Weitere Informationen zum Datastore-Datenmodell
- Best Practices für Datastore ansehen