Tarifs de Firestore en mode Datastore
Ce document décrit les conditions tarifaires du mode Datastore.
Utilisation gratuite
Firestore en mode Datastore inclut un quota d'utilisation gratuite qui vous permet de démarrer sans frais. Si vous souhaitez aller au-delà de l'utilisation gratuite, vous devez activer la facturation pour votre projet.
Votre utilisation est calculée sur une base quotidienne et réinitialisée vers minuit, heure du Pacifique.
| Utilisation gratuite | |
|---|---|
| Opérations de lecture d'entités | 50 000 par jour |
| Opérations d'écriture d'entités | 20 000 par jour |
| Opérations de suppression d'entités | 20 000 par jour |
| Données stockées | 1 Gio |
| Opérations mineures | 50 000 par jour |
| Transfert de données sortant | 10 Gio par mois |
Les opérations et fonctionnalités suivantes ne sont pas incluses dans l'utilisation gratuite. Vous devez activer la facturation pour utiliser ces fonctionnalités :
- Données PITR
- Sauvegarder des données
- Opérations de restauration
- Opérations de clonage
- TTL
Pour en savoir plus sur la facturation de ces fonctionnalités, consultez la section Taille de stockage.
Tarifs par région
Pour connaître les tarifs appliqués aux opérations de lecture, d'écriture, de suppression et de stockage pour chaque emplacement en mode Datastore, consultez la page Tarifs de Firestore.
Opérations de lecture
Chaque entité lue vous est facturée comme une opération de lecture, et chaque lot de 1 000 entrées d'index lues vous est facturé comme une opération de lecture.
Entrées d'index
Vous êtes facturé une opération de lecture pour chaque lot de 1 000 entrées d'index (maximum) lues par une requête, sauf dans les cas suivants :
Les requêtes comportant jusqu'à une propriété de plage ne sont pas facturées pour les entrées d'index lues et ont un coût minimal de zéro opération de lecture. Utilisez les exemples suivants pour vous familiariser avec les cas où la lecture d'entrées d'index est facturée. Utilisez ensuite la section billing_details de Query Explain pour vérifier que vous avez bien compris.
La requête suivante contient une propriété d'égalité (age) et une propriété de plage (start_date). La lecture des entrées d'index n'est pas facturée :
Query<Entity> query =
Query.newEntityQueryBuilder()
.setKind("Employee")
.setFilter(
CompositeFilter.and(
PropertyFilter.eq("age", 35), PropertyFilter.ge("start_date", new Date(2020, 1, 1))))
.build();
La requête suivante contient deux propriétés de plage (age et start_date) et est facturée pour les lectures d'entrées d'index :
Query<Entity> query =
Query.newEntityQueryBuilder()
.setKind("Employee")
.setFilter(
CompositeFilter.and(
PropertyFilter.ge("age", 35), PropertyFilter.ge("start_date", new Date(2020, 1, 1))))
.build();
Une propriété qui apparaît dans la clause "order by" est considérée comme une propriété de plage lorsqu'il existe au moins une autre propriété de plage.
Par conséquent, la requête suivante contient deux propriétés de plage (age et start_date) et est facturée pour les lectures d'entrées d'index :
Query<Entity> query =
Query.newEntityQueryBuilder()
.setKind("Employee")
.setFilter(PropertyFilter.ge("age", 35))
.setOrderBy(OrderBy.asc("start_date")).build()
.build();
Une propriété qui apparaît dans la clause "distinct on" est considérée comme une propriété de plage
lorsqu'il existe au moins une autre propriété de plage. Par conséquent, la requête suivante contient deux propriétés de plage (age et start_date) et est facturée pour les lectures d'entrées d'index :
Query<Entity> query =
Query.newEntityQueryBuilder()
.setKind("Employee")
.setFilter(PropertyFilter.ge("age", 35))
.setDistinctOn("start_date")
.build();
Requêtes d'agrégation
Pour les requêtes d'agrégation count(), sum() et avg(), vous êtes facturé à raison d'une opération de lecture d'entité par lot de 1 000 entrées d'index (maximum) lues par la requête.
Par exemple, les requêtes d'agrégation qui lisent entre 0 et 1 000 entrées d'index sont facturées à raison d'une lecture d'entité. Pour une requête d'agrégation qui lit 1 500 entrées d'index, deux lectures d'entité vous sont facturées.
Pour en savoir plus sur les index utilisés et les entrées d'index lues, utilisez Query Explain.
Transformations de propriétés
Chaque opération de transformation de propriété, comme increment et appendMissingElements, est facturée comme une lecture et une écriture. Une opération de validation avec une insertion, une mise à jour ou un upsert et une transformation de propriété sur la même entité compte comme une lecture et une écriture.
Opérations mineures
Vous trouverez ci-dessous des exemples d'opérations mineures.
- Appels attribuant des ID.
- Requêtes ne contenant que des clés. Une requête ne contenant que des clés est comptabilisée comme une seule opération de lecture d'entité pour la requête elle-même. Chaque résultat est considéré comme une opération mineure.
- Requêtes de projection n'utilisant pas la clause
distinct on. Ce type de requête est comptabilisé comme une seule opération de lecture d'entité pour la requête elle-même. Chaque résultat est considéré comme une opération mineure.
Les opérations mineures sont gratuites, mais vous devez activer la facturation pour pouvoir aller au-delà de l'utilisation gratuite par jour.
Explication et analyse des requêtes
L'utilisation de la fonctionnalité Expliquer et analyser la requête entraîne des coûts.
Lorsqu'une requête est expliquée avec l'option par défaut, aucune opération de lecture d'index ou d'entité n'est effectuée. Quelle que soit la complexité de la requête, une opération de lecture est facturée.
Lorsqu'une requête est expliquée avec l'option "Analyser", des opérations d'indexation et de lecture sont effectuées. La requête vous est donc facturée comme d'habitude. Il n'y a pas de frais supplémentaires pour l'activité d'explication et d'analyse, mais uniquement les frais habituels pour l'exécution de la requête.
Bande passante réseau
La quantité de bande passante réseau utilisée par vos requêtes Firestore en mode Datastore vous est facturée, comme indiqué dans les sections suivantes. Le coût d'une requête en termes de bande passante réseau dépend de la taille de la réponse, de l'emplacement de votre base de données en mode Datastore et de la destination de la réponse.
Tarifs généraux du réseau
Pour les requêtes provenant de Google Cloud Platform (par exemple, d'une application exécutée sur Google Compute Engine), les frais à payer sont calculés comme indiqué ci-dessous.
| Type de trafic | Prix |
|---|---|
| Transfert de données entrant | Gratuit |
| Transfert de données dans une région | Gratuit |
| Transfert de données entre les régions d'un même emplacement multirégional | Gratuit |
| Transfert de données entre régions aux États-Unis (par Gio) | 0,01 $ (les 10 premiers Gio par mois sont gratuits) |
| Transfert de données entre régions, à l'exclusion du trafic entre les régions des États-Unis | Tarifs de transfert de données sortantes sur Internet de Google Cloud Platform |
Si vous ne payez pas en USD, les tarifs indiqués dans votre devise sur la page des codes SKU Cloud Platform s'appliquent.
Tarifs de transfert de données Internet
Le transfert de données Internet vous sera facturé pour les éléments suivants :
- Google Cloud requêtes entre régions, à l'exclusion du trafic entre les régions des États-Unis
- Requêtes provenant de l'extérieur de Google Cloud
Si vous ne payez pas en USD, les tarifs indiqués dans votre devise sur la page des codes SKU Cloud Platform s'appliquent.
Opérations d'exportation et d'importation
Les opérations d'exportation et d'importation sont facturées pour les opérations de lecture et d'écriture d'entités aux tarifs indiqués dans le tableau ci-dessus. Si vous annulez une exportation ou une importation, les opérations effectuées jusqu'à la prise en compte de la demande d'annulation dans Firestore en mode Datastore vous seront facturées.
Trouver des informations sur l'utilisation des quotas de votre application
Pour connaître l'utilisation du mode Datastore par votre application, y compris la consommation des quotas, consultez la page d'informations relatives aux quotas d'App Engine. Vous devez procéder ainsi même si votre application ne s'exécute pas dans App Engine.
Les ressources du mode Datastore utilisées par votre application sont répertoriées sur la page "Stockage" qui s'affiche. Vous pouvez aussi cliquer sur Afficher les ressources non utilisées pour consulter la liste complète des informations de quotas disponibles.
Remarques sur la taille de l'espace de stockage
La quantité de données que vous stockez en mode Datastore vous est facturée, y compris la surcharge de stockage. Le volume de cette surcharge inclut les métadonnées, les index intégrés, les index composites et les versions de récupération à un moment précis (PITR). Vous êtes également facturé pour la taille de stockage des sauvegardes et pour les opérations de restauration.
Chaque entité stockée dans votre base de données requiert les métadonnées suivantes, qui contribuent à la taille de stockage :
- La clé de l'entité, y compris le genre, l'ID ou le nom de clé, et les clés des ancêtres de l'entité.
- Le nom et la valeur de chaque propriété. Étant donné que Firestore en mode Datastore n'obéit pas à un schéma, le nom de chaque propriété doit être enregistré avec la valeur de la propriété pour toute entité donnée.
- Toute ligne d'index intégré et composite qui fait référence à cette entité. Chaque ligne contient le genre de l'entité, un nombre de valeurs de propriété en fonction de la définition de l'index, ainsi que la clé de l'entité.
Consultez la page Calculs de la taille des espaces de stockage pour découvrir comment l'espace de stockage du mode Datastore est calculé.
Données PITR
Si vous activez la récupération PITR, le stockage des données PITR vous est facturé. La plupart des clients constatent que le coût global du stockage des données PiTR est similaire au coût de stockage de la base de données.
Les coûts de stockage pour la restauration à un point dans le temps sont exprimés en Gio/mois et calculés quotidiennement. Le mode Datastore mesure la taille de la base de données chaque jour. Sur une période d'un mois, ces points d'échantillonnage sont moyennés pour calculer la taille de l'espace de stockage de la base de données. Cette valeur moyenne est multipliée par le prix unitaire de la récupération à un instant dans le passé (GiB-mois).
Par exemple, si la taille moyenne de votre base de données au cours d'un mois est de 1 Gio et que la récupération PITR est activée pendant tout le mois, la taille des données PITR facturables est également de 1 Gio.
Facturation minimale : vous pouvez être facturé jusqu'à un jour de coût de stockage PITR, même si vous désactivez la récupération à un instant dans le passé dans la journée suivant son activation.
Sauvegarde des données et opérations de restauration
Si vous activez les sauvegardes, le stockage de vos sauvegardes de bases de données vous est facturé. La taille de stockage d'une sauvegarde est égale à la taille de stockage de la base de données au moment de la sauvegarde.
Les coûts de stockage des sauvegardes sont exprimés en Gio/mois. Sur une période d'un mois, le nombre de jours pendant lesquels chaque sauvegarde est conservée, moyenné sur le mois, est également calculé. Le coût de chaque sauvegarde est calculé en multipliant la taille de stockage de la sauvegarde par la proportion du mois pendant laquelle elle est conservée, puis par le prix unitaire. Les limites de la journée sont définies par le fuseau horaire America/Los_Angeles à des fins de facturation.
Lorsque vous effectuez une opération de restauration, le mode Datastore mesure la taille de la sauvegarde pour l'opération de restauration. La taille de la sauvegarde est multipliée par le prix unitaire des opérations de restauration (GiB).
Étape suivante
- Consultez la documentation de Firestore en mode Datastore.
- Premiers pas avec Firestore en mode Datastore
- Essayez le Simulateur de coût.
- Découvrez les solutions et cas d'utilisation de Firestore en mode Datastore.