Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Firestore en mode Datastore (Datastore) est une base de données de documents NoSQL conçue pour le scaling automatique, les hautes performances et la convivialité de développement des applications. Fonctionnalités principales de Cloud Datastore :
Les transactions atomiques. Cloud Datastore peut exécuter un ensemble d'opérations dans lesquelles toutes les opérations réussissent, ou aucun d'entre elles.
La haute disponibilité des opérations de lecture et d'écriture. Cloud Datastore s'exécute dans les centres de données Google, qui utilisent la redondance pour minimiser l'impact des points de défaillance.
L'évolutivité massive avec hautes performances. Cloud Datastore utilise une architecture distribuée pour gérer automatiquement le scaling. Datastore s'appuie sur une combinaison d'index et de contraintes de requête, de sorte que vos requêtes évoluent avec la taille de l'ensemble de résultats, et non avec la taille de votre ensemble de données.
Le stockage flexible et l'interrogation des données. Cloud Datastore tend naturellement vers les langages de script et orientés objet, et est exposé aux applications via plusieurs clients. Il fournit également un langage de requête semblable à SQL.
Cohérence forte Datastore garantit que toutes les requêtes sont fortement cohérentes.
Chiffrement au repos. Cloud Datastore chiffre automatiquement toutes les données avant qu'elles ne soient écrites sur le disque et les déchiffre automatiquement lorsqu'elles sont lues par un utilisateur autorisé. Pour en savoir plus, consultez la section Chiffrement côté serveur.
Un service entièrement géré sans temps d'arrêt planifiés. L'administration du service est gérée par Google pour vous permettre de vous concentrer sur votre application. Votre application peut toujours utiliser Cloud Datastore lorsque le service reçoit une mise à niveau planifiée.
Comparaison avec les bases de données relationnelles
Bien que l'interface Datastore présente de nombreuses fonctionnalités identiques aux bases de données relationnelles, elle diffère en tant que base de données NoSQL de ces bases de données par la manière dont elle décrit les relations entre les objets de données. Voici une comparaison détaillée des concepts Datastore et de ceux des bases de données relationnelles :
Concept
Datastore
Firestore
Base de données relationnelle
Catégorie d'objet
Type
Groupe de collections
Table
Un objet
Entité
Document
Ligne
Données individuelles pour un objet
Propriété
Champ
Colonne
ID unique pour un objet
Clé
Identifiant du document
Clé primaire
Contrairement aux lignes d'une table de base de données relationnelle, les entités Datastore du même genre peuvent avoir des propriétés différentes, ainsi que des propriétés sous le même nom mais comportant des types de valeurs différents. Ces caractéristiques uniques impliquent une manière différente de concevoir et de gérer les données afin de tirer parti de la possibilité d'évoluer automatiquement. Par certains aspects, Datastore se distingue nettement des bases de données relationnelles classiques, en particulier :
Datastore est conçu pour s'adapter automatiquement à des ensembles de données très volumineux, ce qui permet aux applications de maintenir des performances élevées à mesure qu'elles reçoivent plus de trafic :
Les écritures du magasin de données s'adaptent en distribuant automatiquement les données selon les besoins.
Les lectures dans Cloud Datastore évoluent, car les seules requêtes acceptées sont celles dont les performances s'adaptent à la taille de l'ensemble de résultats (et non à la taille de l'ensemble de données). Cela signifie qu'une requête dont l'ensemble de résultats contient 100 entités effectue la même opération, qu'elle recherche un peu plus d'une centaine d'entités ou un million. Cette propriété est la principale raison pour laquelle certains types de requêtes ne sont pas acceptés.
Toutes les requêtes étant traitées par des index créés précédemment, les types de requêtes pouvant être exécutés sont plus restrictifs que ceux autorisés dans une base de données relationnelle SQL. En particulier, Cloud Datastore n'accepte pas les opérations de jointure, le filtrage des inégalités sur plusieurs propriétés ou le filtrage des données basées sur les résultats d'une sous-requête.
Contrairement aux bases de données relationnelles qui appliquent un schéma, Cloud Datastore ne comprend pas de schéma. Les entités de même type ne doivent pas forcément avoir un ensemble de propriétés cohérent (même si vous pouvez choisir d'appliquer cette exigence dans votre propre code d'application).
Points forts
Cloud Datastore est idéal pour les applications qui reposent sur des données structurées hautement disponibles à grande échelle. Cloud─Datastore peut être utilisé pour stocker et interroger tous les types de données suivants :
Des catalogues de produits fournissant un inventaire en temps réel, ainsi que les détails d'un produit.
Des profils utilisateur offrant une expérience personnalisée en fonction des activités et des préférences de l'utilisateur.
Des transactions basées sur les propriétés ACID. Par exemple, le transfert de fonds d'un compte bancaire à un autre.
Autres options pour le stockage et les bases de données
Cet outil ne convient pas à tous les cas d'utilisation. Par exemple, Datastore n'est pas une base de données relationnelle et ne constitue pas une solution efficace pour les données analytiques.
Voici quelques situations courantes dans lesquelles nous vous recommandons d'opter pour une autre solution que Cloud Datastore :
Si vous avez besoin d'une base de données relationnelle avec prise en charge de SQL complète pour un système de traitement des transactions en ligne (OLTP), envisagez plutôt Cloud SQL.
Si vous n'avez pas besoin de support pour les transactions ACID ou si vos données ne sont pas très structurées, pensez à Bigtable.
Si vous avez besoin de traiter des requêtes interactives sur un système de traitement analytique en ligne (OLAP), envisagez plutôt BigQuery.
Si vous avez besoin de stocker des blobs immuables volumineux, tels que des images volumineuses ou des films, envisagez Cloud Storage.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/05 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/05 (UTC)."],[[["\u003cp\u003eDatastore is a NoSQL document database designed for automatic scaling, high performance, and easy application development, offering features like atomic transactions and high availability.\u003c/p\u003e\n"],["\u003cp\u003eUnlike relational databases, Datastore is schemaless, automatically scales to large datasets, and supports queries that scale with the result set size, not the dataset size.\u003c/p\u003e\n"],["\u003cp\u003eDatastore excels in applications requiring highly available structured data at scale, such as product catalogs, user profiles, and ACID-compliant transactions.\u003c/p\u003e\n"],["\u003cp\u003eDatastore is not ideal for relational database needs, analytic data, or storing large, immutable blobs; alternatives like Cloud SQL, Bigtable, BigQuery, and Cloud Storage are recommended for these use cases.\u003c/p\u003e\n"],["\u003cp\u003eDatastore provides a fully managed service, encrypts data at rest, and offers strong consistency across all queries.\u003c/p\u003e\n"]]],[],null,["# Datastore Overview\n\nFirestore in Datastore mode (Datastore) is a NoSQL document database built for automatic scaling, high performance,\nand ease of application development. Datastore features include:\n\n- **Atomic transactions**. Datastore can execute a set of operations where either all succeed, or none occur.\n- **High availability of reads and writes**. Datastore runs in Google data centers, which use redundancy to minimize impact from points of failure.\n- **Massive scalability with high performance**. Datastore uses a distributed architecture to automatically manage scaling. Datastore uses a mix of indexes and query constraints so your queries scale with the size of your result set, not the size of your dataset.\n- **Flexible storage and querying of data** . Datastore maps naturally to object-oriented and scripting languages, and is exposed to applications through multiple clients. It also provides a SQL-like [query language](/datastore/docs/apis/gql/gql_reference).\n- **Strong consistency**. Datastore ensures that all queries are strongly consistent.\n- **Encryption at rest** . Datastore automatically encrypts all data before it is written to disk and automatically decrypts the data when read by an authorized user. For more information, see [Server-Side Encryption](/datastore/docs/concepts/encryption-at-rest).\n- **Fully managed with no planned downtime**. Google handles the administration of the service so you can focus on your application. Your application can still use Datastore when the service receives a planned upgrade.\n\nComparison with relational databases\n------------------------------------\n\nWhile the Datastore interface has many of the same features\nsimilar to relational databases, as a NoSQL database, it varies in how it\ndescribes the relationships between data objects. Here's a high-level comparison\nof Datastore and relational database concepts:\n\nUnlike rows in a relational database table, Datastore entities of\nthe same kind can have different properties, and different entities can have\nproperties with the same name but different value types. These unique\ncharacteristics imply a different way of designing and managing data to take\nadvantage of the ability to scale automatically. In particular,\nDatastore differs from a traditional relational database in the\nfollowing important ways:\n\n- Datastore is designed to automatically scale to very large data sets, allowing applications to maintain high performance as they receive more traffic:\n - Datastore writes scale by automatically distributing data as necessary.\n - Datastore reads scale because the only queries supported are those whose performance scales with the size of the result set (as opposed to the data set). This means that a query whose result set contains 100 entities performs the same whether it searches over a hundred entities or a million. This property is the key reason some types of queries are not supported.\n- Because all queries are served by previously built indexes, the types of queries that can be executed are more restrictive than those allowed on a relational database with SQL. In particular, Datastore does not include support for join operations, inequality filtering on multiple properties, or filtering on data based on results of a subquery.\n- Unlike relational databases which enforce a schema, Datastore is schemaless. It doesn't require entities of the same kind to have a consistent set of properties (although you can choose to enforce such a requirement in your own application code).\n\nWhat it's good for\n------------------\n\nDatastore is ideal for applications that rely on highly available structured data at scale. You can use Datastore to store and query all of the following types of data:\n\n- Product catalogs that provide real-time inventory and product details for a retailer.\n- User profiles that deliver a customized experience based on the user's past activities and preferences.\n- Transactions based on [ACID](https://en.wikipedia.org/wiki/ACID) properties. For example, transferring funds from one bank account to another.\n\nOther storage and database options\n----------------------------------\n\nDatastore is not ideal for every use case. For example, Datastore is not a relational database, and it is not an effective solution for analytic data.\n\nHere are some common scenarios where you should probably consider an alternative to Datastore:\n\n- If you need a relational database with full SQL support for an online transaction processing (OLTP) system, consider [Cloud SQL](/sql).\n- If you don't require support for ACID transactions or if your data is not highly structured, consider [Bigtable](/bigtable).\n- If you need interactive querying in an online analytical processing (OLAP) system, consider [BigQuery](/bigquery).\n- If you need to store large immutable blobs, such as large images or movies, consider [Cloud Storage](/storage).\n\n\nFor more information about other database options, see the [overview\nof database services](/products/databases).\n\nWhat's next\n-----------\n\n- [Learn how to store and query data using the Google Cloud console](/datastore/docs/store-query-data)\n- [Learn about the Datastore data model](/datastore/docs/concepts/entities)\n- [View best practices for Datastore](/datastore/docs/best-practices)"]]