Überblick über Datastore

Firestore im Datastore-Modus (Datastore) ist eine NoSQL-Dokumentdatenbank, die auf automatische Skalierung, 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 verschiedene Indexe und Abfrageeinschränkungen, damit Ihre Abfragen nicht nach der Größe Ihres Datasets, sondern nach der Größe Ihres festgelegten Ergebnissatzes 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: Da Google die Verwaltung des Dienstes übernimmt, können Sie sich voll und ganz auf Ihre Anwendung konzentrieren. Ihre Anwendung kann Datastore auch bei einem geplanten Upgrade des Dienstes verwenden.

Vergleich mit relationalen Datenbanken

Datastore hat zwar hinsichtlich der Benutzeroberfläche viele Merkmale, die relationalen Datenbanken ähneln, beschreibt jedoch als NoSQL-Datenbank die Beziehungen zwischen Datenobjekten auf unterschiedliche Weise. 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 den Zeilen einer relationalen Datenbanktabelle können Entitäten derselben Art in Datastore unterschiedliche Attribute haben. Verschiedene Entitäten können außerdem Attribute mit dem gleichen Namen, aber mit unterschiedlichen Werttypen haben. Diese spezifischen Merkmale legen einen anderen Ansatz für das Design und die Verwaltung von Daten nahe, wenn die Vorteile der automatischen Skalierung genutzt werden sollen. Insbesondere unterscheidet sich Datastore durch die folgenden Hauptkriterien von traditionellen 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 auf Basis zuvor angelegter Indexe beantwortet werden, sind die möglichen Abfragearten im Vergleich zur relationalen Datenbank mit SQL beschränkt. Das bedeutet insbesondere, dass Datastore keine JOIN-Vorgänge, Ungleichheitsfilter für mehrere Attribute oder Datenfiltervorgänge auf Basis der Ergebnisse einer Unterabfrage unterstützt.
  • 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 ein individuell angepasstes Anwendungsverhalten auf der Grundlage bisheriger Aktivitäten und Einstellungen des Nutzers ermöglichen.
  • Transaktionen, die auf dem ACID-Prinzip beruhen, wie das Überweisen von Geldbeträgen zwischen Bankkonten

Andere Speicherungs- und Datenbankoptionen

Datastore ist nicht für jeden Anwendungsfall perfekt geeignet. Datastore ist beispielsweise keine relationale Datenbank und keine effiziente Lösung für Analysedaten.

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 Dateien nicht hochstrukturiert sind, könnte Bigtable eine Alternative sein.
  • 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

Verbindung zu Datastore mit App Engine herstellen

Die Go-Standardlaufzeit von App Engine stellt über die Go Datastore API eine Verbindung zu Cloud Datastore her. Eine vollständige Auflistung der Inhalte des datastore-Pakets finden Sie in der Referenz zum datastore-Paket.

Sie können die Cloud Datastore-Clientbibliothek nicht mit Go-Anwendungen in der App Engine-Standardumgebung verwenden.