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, wodurch die Datenbank abwärtskompatibel mit Datastore ist. Auf dieser Seite werden die Unterschiede zwischen den beiden Firestore-Datenbankmodi – nativer Modus und Datastore-Modus – beschrieben.
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: Datastore-Abfragen haben strikte Konsistenz, es sei denn, Sie fordern explizit die Eventual Consistency an.
- 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 Google Cloud Console verwendet die Datenbank den Datastore-Betrachter.
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.
Funktionsvergleich
In der folgenden Tabelle wird das Systemverhalten der Datenbankmodi verglichen:
Firestore im nativen Modus |
Firestore im 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 |
|
|
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 Mediathek für Mobilgeräte und Webclients unterstützt die Offlinedatenpersistenz. | Nicht unterstützt |
Clientbibliotheken |
Firestore-Clientbibliotheken:
|
Datastore-Clientbibliotheken:
|
Security |
|
IAM verwaltet den Datenbankzugriff |
Leistung | Skaliert automatisch auf mehrere Millionen Clients gleichzeitig. | Skaliert automatisch auf mehrere Millionen Schreibvorgänge pro Sekunde |
SLA | Firestore SLA | Firestore SLA |
Standorte |
Beide Modi unterstützen die gleichen Standorte:
|
|
Preise |
Beide Modi verwenden dieselbe Preisstruktur für Entitäts- und Dokumentenvorgänge. Firestore im Datastore-Modus erhebt keine Gebühren für kleine Vorgänge. Für beide Modi gilt dieselbe Preisstruktur für gespeicherte Daten und Netzwerkbandbreite. Weitere Informationen zu den Preisen finden Sie hier: |
|
Console | Betrachter von Firebase Console und Firestore in der Google Cloud Console | Betrachter von Google Cloud Console-Datenspeicher |
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 der App Engine-Standardumgebung alle anderen Laufzeiten. Unterstützt in allen Laufzeiten der flexiblen App Engine-Umgebung alle Laufzeiten. |
In allen Laufzeiten unterstützt |
Zwischen nativem und Datastore-Modus wechseln
Wenn die Datenbank leer ist, können Sie zwischen nativem und Datastore-Modus wechseln.
Ändern Sie die Datenbank in den nativen Modus:
gcloud
Verwenden Sie den Befehl gcloud Alpha firestoredatabase update, um Ihre Datenbank in den nativen Modus zu wechseln.
gcloud alpha firestore databases update --type=firestore-native
rest
curl --request PATCH \
--header "Authorization: Bearer "$(gcloud auth print-access-token) \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"FIRESTORE_NATIVE"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)?updateMask=type"
Ändern Sie die Datenbank in Datastore-Modus:
gcloud
Verwenden Sie den Befehl gcloud alpha firestoredatabase update, um Ihre Datenbank in den Datastore-Modus zu ändern.
gcloud alpha firestore databases update --type=datastore-mode
rest
curl --request PATCH \
--header "Authorization: Bearer "$(gcloud auth print-access-token) \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"DATASTORE_MODE"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)?updateMask=type"