Übersicht über die Datastore API

Die Datastore API für Firestore bietet eine NoSQL-Dokumentdatenbank, die auf automatische Skalierung, hohe Leistung und einfache Anwendungsentwicklung ausgelegt ist.

Firestore bietet die folgenden Funktionen:

  • Atomare Transaktionen: Führen Sie eine Reihe von Vorgängen aus, bei denen entweder alle erfolgreich sind oder keiner ausgeführt wird.
  • Hochverfügbarkeit von Lese- und Schreibvorgängen: Datenbanken werden in Google-Rechenzentren ausgeführt, in denen Redundanz verwendet wird, um die Auswirkungen von Fehlerpunkten zu minimieren.
  • Hohe Skalierbarkeit bei hoher Leistung: Eine verteilte Architektur verwaltet die Skalierung automatisch und sorgt auch bei hoher Last für eine gleichbleibende Leistung.
  • Flexible Speicherung und Abfrage von Daten: Das Dokumentdatenmodell lässt sich auf natürliche Weise objektorientierten und Skriptsprachen zuordnen und wird Anwendungen über mehrere Clients zur Verfügung gestellt. Die mit Datastore kompatible API von Firestore bietet auch eine SQL-ähnliche Abfragesprache.
  • Strikte Konsistenz: Abfragen sind strikt konsistent.
  • Verschlüsselung ruhender Daten: Daten werden automatisch verschlüsselt, bevor sie auf die Festplatte geschrieben werden, und automatisch entschlüsselt, 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 Firestore 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. Sie können diese spezifischen Merkmale nutzen, um Daten so zu gestalten und zu verwalten, dass sie automatisch skaliert werden.

Da alle Abfragen von zuvor erstellten Indexen verarbeitet werden, sind die Arten von Abfragen, die mit der Datastore API ausgeführt werden können, restriktiver als die, die in einer relationalen Datenbank mit SQL zulässig sind. Insbesondere werden in Datastore keine Join-Vorgänge, Ungleichheitsfilterung für mehrere Properties oder Filterung von Daten basierend auf den Ergebnissen einer Unterabfrage unterstützt. Wenn Ihre Anwendung erweiterte Abfragefunktionen wie Joins und Unterabfragen erfordert, sollten Sie die Firestore Native API oder die MongoDB-kompatible API verwenden.

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).

Andere Speicherungs- und Datenbankoptionen

Die Datastore-kompatible API von Firestore ist für die Unterstützung von alten App Engine-Anwendungen vorgesehen. Wenn Sie eine dokumentorientierte NoSQL-Datenbank für eine neue Anwendung benötigen, empfehlen wir, eine der Firestore-APIs anstelle der Datastore API zu verwenden, um von den erweiterten Funktionen zu profitieren. Weitere Informationen zu den Optionen

Firestore ist eine hochgradig skalierbare Dokumentdatenbank, die möglicherweise nicht für jeden Anwendungsfall geeignet ist. Sie ist beispielsweise nicht unbedingt der beste Ersatz für eine relationale Datenbank. Im Folgenden finden Sie einige häufige Szenarien, in denen Sie eine alternative Datenbank in Betracht ziehen sollten:

  • 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.