Zwischen nativem und Datastore-Modus wechseln

Beim Erstellen einer neuen Firestore-Datenbank können Sie die Datenbankinstanz für die Ausführung im Datastore-Modus konfigurieren. Dadurch wird die Datenbank abwärtskompatibel mit Datastore. Auf dieser Seite werden die Unterschiede zwischen den beiden Firestore-Datenbankmodi – nativer Modus und Datastore-Modus – erläutert.

Firestore im nativen Modus

Firestore ist die nächste Hauptversion von Datastore und ein Rebranding des Produkts. Firestore vereint das Beste aus Datastore und Firebase Realtime Database. Diese NoSQL-Dokumentendatenbank wurde für Autoscaling, hohe Leistung und einfache Anwendungsentwicklung konzipiert.

Firestore bietet unter anderem die folgenden neuen Features:

  • Eine neue Speicherschicht mit strikter Konsistenz
  • Ein Datenmodell für Sammlungen und Dokumente
  • Echtzeitaktualisierungen
  • Mobil- und Web-Clientbibliotheken

Firestore ist abwärtskompatibel mit Datastore. Das gilt jedoch nicht für das neue Datenmodell, Echtzeitaktualisierungen und die Features der Mobil- und Web-Clientbibliotheken. Sie müssen Firestore im nativen Modus verwenden, um auf alle neuen Features zugreifen zu können.

Firestore im Datastore-Modus

Im Datastore-Modus behält Firestore das Systemverhalten von Datastore bei. Dabei wird jedoch auf die Speicherschicht von Firestore zugegriffen, wodurch die folgenden Beschränkungen von Datastore entfallen:

  • Eventual Consistency. Bei allen Datastore-Abfragen wird nun mit strikter Konsistenz gearbeitet.
  • Abfragen in Transaktionen müssen nicht länger Ancestor-Abfragen sein.
  • Transaktionen sind nicht mehr auf 25 Entitätengruppen beschränkt.
  • Schreibvorgänge in eine Entitätengruppe sind nicht mehr auf 1 Vorgang pro Sekunde beschränkt.

Im Datastore-Modus werden Firestore-Features deaktiviert, die nicht mit Datastore kompatibel sind:

  • Im Projekt werden Datastore API-Anfragen akzeptiert und Firestore API-Anfragen abgelehnt.
  • Im Projekt werden Datastore-Indexe anstelle von Firestore-Indexen verwendet.
  • Sie können Datastore-Clientbibliotheken, jedoch keine Firestore-Clientbibliotheken mit diesem Projekt verwenden.
  • Die Echtzeitfunktionen von Firestore stehen nicht zur Verfügung.
  • In der Cloud Console verwendet die Datenbank die Datastore-Ansicht.

Automatisches Upgrade auf den Datastore-Modus

Vorhandene Datastore-Datenbanken werden automatisch auf Firestore im Datastore-Modus aktualisiert. Neue Projekte, für die eine Datastore-Datenbank erforderlich ist, sollten Firestore im Datastore-Modus verwenden.

Preise und Standorte

Für Datenbanken im nativen Modus und im Datastore-Modus gilt dieselbe Preisstruktur und sie sind an denselben Speicherorten verfügbar. Die Preise und Standorte werden auf den folgenden Seiten detailliert beschrieben:

Firestore im nativen Modus

Firestore im Datastore-Modus

Datenbankmodus auswählen

Beim Erstellen einer neuen Firestore-Datenbank müssen Sie einen Datenbankmodus auswählen. Sie können den nativen Modus und den Datastore-Modus nicht im selben Projekt verwenden. Für die Auswahl eines Datenbankmodus empfehlen wir Folgendes:

  • Firestore im Datastore-Modus für neue Serverprojekte verwenden

    Mit Firestore im Datastore-Modus können Sie etablierte Datastore-Serverarchitekturen nutzen, ohne weiter den grundlegenden Beschränkungen von Datastore zu unterliegen. Im Datastore-Modus kann automatisch auf Millionen Schreibvorgänge pro Sekunde skaliert werden.

  • Firestore im nativen Modus für neue Mobil- und Webanwendungen verwenden

    Firestore bietet Mobil- und Web-Clientbibliotheken mit Echtzeit- und Offlinefeatures. Im nativen Modus kann automatisch auf Millionen gleichzeitig ausgeführter Clients skaliert werden.

Featurevergleich

In der folgenden Tabelle wird das Systemverhalten der Datenbankmodi verglichen:

Firestore
Nativer Modus
Firestore
Datastore-Modus
Datenmodell Nach Dokumenten und Sammlungen strukturierte Dokumentendatenbank Nach Arten und Entitätengruppen strukturierte Entitäten
Speicherschicht Neue Speicherschicht, die immer mit Strong Consistency arbeitet Neue Speicherschicht, die immer mit Strong Consistency arbeitet
Abfragen und Transaktionen
  • Abfragen mit strikter Konsistenz in der gesamten Datenbank
  • Bis zu 500 Dokumente pro Transaktion über eine beliebige Anzahl von Sammlungen hinweg
  • Beschränkung: keine Projektionsabfragen
  • Hebt die früheren Beschränkungen der Konsistenz von Datastore auf
  • Abfragen mit strikter Konsistenz in der gesamten Datenbank
  • Transaktionen können auf eine beliebige Anzahl von Entitätengruppen zugreifen
Unterstützung für Datastore v1 API Nein, Anfragen werden abgelehnt Ja
Unterstützung für Firestore v1 API Ja Nein, Anfragen werden abgelehnt
Echtzeitaktualisierungen

Bietet die Möglichkeit, ein oder mehrere Dokumente auf Echtzeitaktualisierungen hin zu überwachen

Während der Überwachung eines oder mehrerer Dokumente werden Ihre Clients bei Datenänderungen informiert und versenden die neuesten Daten.

Nicht unterstützt
Offline-Datenpersistenz Die Mobil- und Web-Clientbibliotheken unterstützen Offline-Datenpersistenz. Nicht unterstützt
Clientbibliotheken Firestore-Clientbibliotheken:
  • Java
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
  • Android
  • iOS
  • Web
Datastore-Clientbibliotheken:
  • Java
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
Sicherheit
  • Der Datenbankzugriff wird mit Cloud Identity and Access Management (IAM) verwaltet.
  • Mit Firestore-Sicherheitsregeln werden serverlose Authentifizierung und Autorisierung für Mobil- und Web-Clientbibliotheken unterstützt.
Der Datenbankzugriff wird mit Cloud Identity and Access Management (IAM) verwaltet.
Leistung Skaliert automatisch auf mehrere Millionen Clients gleichzeitig. Max. 10.000 Schreibvorgänge pro Sekunde Skaliert automatisch auf mehrere Millionen Schreibvorgänge pro Sekunde
SLA Firestore-SLA Firestore-SLA
Standorte
  • USA (mehrere Regionen)
  • Europa (mehrere Regionen)
  • Montreal
  • Los Angeles
  • South Carolina
  • Northern Virginia
  • São Paulo
  • London
  • Frankfurt
  • Tokio
  • Mumbai
  • Sydney
  • USA (mehrere Regionen)
  • Europa (mehrere Regionen)
  • Montreal
  • Los Angeles
  • South Carolina
  • Northern Virginia
  • São Paulo
  • London
  • Frankfurt
  • Tokio
  • Mumbai
  • Sydney
Preise Gleiche Preisstruktur
Console Firebase Console und Firestore-Ansicht in der Cloud Console Datastore-Ansicht in der Cloud Console
Namespaces Nicht unterstützt Unterstützt
Integration der App Engine-Clientbibliothek

Nicht unterstützt in den Laufzeiten der App Engine-Standardumgebung für Python 2.7 und PHP 5.5

Unterstützt in den Laufzeiten der App Engine-Standardumgebung für Python 3.7, PHP 7.2, Java 8, Go und Node.js

Unterstützt in allen Laufzeiten der flexiblen App Engine-Umgebung

In allen Laufzeiten unterstützt