Choisir entre le mode natif et le mode Datastore

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
  • Des 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 :

  • La cohérence à terme, toutes les requêtes Datastore deviennent fortement cohérentes.
  • 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 Cloud Console, 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 :

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
  • Requêtes fortement cohérentes sur toute la base de données
  • Jusqu'à 500 documents par transaction pour n'importe quel nombre de collections
  • Limitation : Aucune requête de projection
  • Supprime les limitations liées à la cohérence de Datastore
  • Requêtes fortement cohérentes sur toute la base de données
  • Les transactions peuvent accéder à n'importe quel nombre de groupes d'entités
Compatibilité avec l'API Datastore v1 Non, les requêtes sont refusées Oui
Compatibilité avec l'API Firestore v1 Oui Non, les requêtes sont refusées
Mises à jour en temps réel

Offre la possibilité d'écouter un document ou un ensemble de documents pour des 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 Web et mobiles sont compatibles avec la persistance des données hors connexion Non compatible
Bibliothèques clientes Bibliothèques clientes Firestore :
  • Java
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
  • Android
  • iOS
  • Web
Bibliothèques clientes Datastore :
  • Java
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
Sécurité
  • Cloud Identity and Access Management (IAM) s'occupe de l'accès aux bases de données
  • Les règles de sécurité Firestore acceptent l'authentification et l'autorisation sans serveur pour les bibliothèques clientes Web et mobiles
Cloud Identity and Access Management (IAM) s'occupe de l'accès aux bases de données
Performances Effectue un scaling automatique jusqu'à plusieurs millions de clients simultanés 10 000 écritures par seconde au maximum 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
  • États-Unis (multirégional)
  • Europe (multirégional)
  • Montréal
  • Los Angeles
  • Caroline du Sud
  • Virginie du Nord
  • São Paulo
  • Londres
  • Francfort
  • Tokyo
  • Mumbai
  • Sydney
  • États-Unis (multirégional)
  • Europe (multirégional)
  • Montréal
  • Los Angeles
  • Caroline du Sud
  • Virginie du Nord
  • São Paulo
  • Londres
  • Francfort
  • Tokyo
  • Mumbai
  • Sydney
Tarifs Même grille tarifaire
Console Console Firebase et lecteur Firestore de Cloud Console Lecteur Datastore de Cloud Console
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 les environnements d'exécution standards Python 3.7, PHP 7.2, Java 8, Go, et Node.js

Compatible avec l'environnement flexible App Engine, tous les environnements d'exécution

Compatible avec tous les environnements d'exécution