Lorsque vous créez une base de données Firestore, vous pouvez configurer l'instance de base de données pour qu'elle s'exécute en mode Datastore. Cela permet d'assurer la rétrocompatibilité de la base de données avec Datastore. Cette page vous aide à comprendre la différence entre les deux modes de base de données Firestore : le mode natif et le mode Datastore.
Firestore en mode natif
Firestore représente la prochaine version majeure de Datastore ainsi qu'une nouvelle image de marque du produit. Tirant parti des meilleures fonctionnalités de Datastore et de Firebase Realtime Database, Firestore est une base de données de documents NoSQL conçue pour le scaling automatique, les hautes performances et le confort de développement des applications.
Firestore introduit de nouvelles fonctionnalités, par exemple :
- Une nouvelle couche de stockage à cohérence forte
- Un modèle de données de collection et de document
- Mises à jour en temps réel
- Des bibliothèques clientes mobiles et Web
Même si Firestore est rétrocompatible avec Datastore, ce n'est pas le cas des nouvelles fonctionnalités de modèle de données, de mises à jour en temps réel et de bibliothèques clientes mobiles et Web. Pour accéder à l'ensemble des nouvelles fonctionnalités de Firestore, vous devez utiliser Firestore en mode natif.
Firestore en mode Datastore
Firestore en mode Datastore utilise le comportement du système Datastore et parvient à accéder à la couche de stockage de Firestore en supprimant les limitations suivantes relatives à Datastore :
- Cohérence à terme: les requêtes Datastore deviennent fortement cohérentes, sauf si vous demandez explicitement une cohérence à terme.
- Les requêtes dans les transactions n'ont plus besoin d'être des requêtes ascendantes.
- Les transactions ne sont plus limitées à 25 groupes d'entités.
- Les écritures dans un groupe d'entités ne sont plus limitées à 1 par seconde.
Le mode Datastore désactive les fonctionnalités de Firestore qui ne sont pas compatibles avec Datastore :
- Le projet acceptera les requêtes API Datastore et refusera les requêtes API Firestore.
- Le projet utilisera les index Datastore au lieu des index Firestore.
- Vous pouvez utiliser les bibliothèques clientes Datastore dans ce projet, mais pas les bibliothèques clientes Firestore.
- Les fonctionnalités en temps réel de Firestore ne seront pas disponibles.
- Dans la console Google Cloud, la base de données utilisera le lecteur Datastore.
Mise à niveau automatique en mode Datastore
Les bases de données Datastore existantes seront automatiquement mises à niveau vers Firestore en mode Datastore. Les nouveaux projets nécessitant une base de données Datastore doivent utiliser Firestore en mode Datastore.
Tarifs et emplacements
Les bases de données, qu'elles soient en mode natif ou en mode Datastore, utilisent la même grille tarifaire et sont disponibles aux mêmes emplacements. Les tarifs et les emplacements sont décrits en détail dans les pages suivantes :
Firestore en mode natif
Firestore en mode Datastore
Choisir un mode de base de données
Lorsque vous créez une base de données Firestore, vous devez sélectionner un mode de base de données. Vous ne pouvez pas utiliser à la fois le mode natif et le mode Datastore dans le même projet. Lorsque vous choisissez un mode de base de données, nous vous recommandons de procéder comme suit :
Utilisez Firestore en mode Datastore pour les nouveaux projets de serveur.
Firestore en mode Datastore vous permet d'utiliser les architectures de serveur Datastore établies, tout en supprimant les limitations fondamentales relatives à Datastore. Le mode Datastore peut effectuer un scaling automatique jusqu'à plusieurs millions d'écritures par seconde.
Utilisez Firestore en mode natif pour les nouvelles applications mobiles et Web.
Firestore propose des bibliothèques clientes Web et mobiles avec des fonctionnalités en temps réel et hors ligne. Le mode natif peut effectuer un scaling automatique jusqu'à plusieurs millions de clients simultanés.
Comparatif des fonctionnalités
Le tableau suivant compare le comportement du système pour les modes de base de données :
Cloud Firestore en mode natif |
Firestore en mode Datastore |
|
---|---|---|
Modèle de données | Base de données de documents organisée en documents et collections | Entités organisées en genres et groupes d'entités |
Couche de stockage | Nouvelle couche de stockage toujours fortement cohérente | Nouvelle couche de stockage toujours fortement cohérente |
Requêtes et transactions |
|
|
Compatibilité avec l'API Datastore v1 | Non, les requêtes sont refusées | Yes |
Compatibilité avec l'API Firestore v1 | Yes | Non, les requêtes sont refusées |
Mises à jour en temps réel |
Lors de l'écoute d'un document ou d'un ensemble de documents, vos clients sont informés de toutes les modifications des données et reçoivent l'ensemble de données le plus récent |
Non compatible |
Persistance des données hors connexion | Les bibliothèques clientes mobiles et Web sont compatibles avec la persistance des données hors connexion. | Non compatible |
Bibliothèques clientes |
Bibliothèques clientes Firestore :
|
Bibliothèques clientes Datastore :
|
Security |
|
IAM gère l'accès à la base de données |
Performances | Effectue un scaling automatique jusqu'à plusieurs millions de clients simultanés. | Effectue un scaling automatique jusqu'à plusieurs millions d'écritures par seconde |
Contrat de niveau de service | Contrat de niveau de service Firestore | Contrat de niveau de service Firestore |
Emplacements |
Les deux modes sont compatibles avec les mêmes emplacements :
|
|
Tarif |
Les deux modes utilisent la même grille tarifaire pour les opérations d'entité et de document. Firestore en mode Datastore ne facture pas les opérations mineures. Les deux modes utilisent la même grille tarifaire pour les données stockées et la bande passante réseau. Pour en savoir plus sur les tarifs, consultez : |
|
Console | Console Firebase et lecteur Firestore de la console Google Cloud | Lecteur Datastore de la console Google Cloud |
Espaces de noms | Non compatible | Espaces de noms acceptés |
Intégration de la bibliothèque cliente App Engine | Non compatible avec les environnements d'exécution standards Python 2.7 et PHP 5.5 d'App Engine Compatible avec l'environnement standard App Engine, tous les autres environnements d'exécution Compatible avec l'environnement flexible App Engine, tous les environnements d'exécution |
Compatible avec tous les environnements d'exécution |
Passer du mode natif au mode Datastore et inversement
Si votre base de données est vide, vous pouvez passer du mode natif au mode Datastore et inversement.
Passez en mode natif :
gcloud
Utilisez la commande gcloud alpha firestore database update pour passer votre base de données en mode natif.
$ 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"
Passer de la base de données en mode Datastore:
gcloud
Utilisez la commande gcloud alpha firestore database update pour passer votre base de données en mode Datastore.
$ 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"