L'API Datastore pour Firestore propose 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.
Firestore inclut les fonctionnalités suivantes :
- Transactions atomiques : exécutez un ensemble d'opérations où toutes réussissent ou aucune ne se produit.
- Haute disponibilité des lectures et des écritures : les bases de données s'exécutent dans des centres de données Google qui utilisent la redondance pour minimiser l'impact des points de défaillance.
- Évolutivité massive avec des performances élevées : une architecture distribuée gère automatiquement l'évolutivité et maintient les performances en cas de forte charge.
- Stockage et interrogation flexibles des données : le modèle de données de document correspond naturellement aux langages orientés objet et de script, et est exposé aux applications via plusieurs clients. L'API compatible avec Datastore de Firestore fournit également un langage de requête semblable à SQL.
- Cohérence forte : les requêtes sont fortement cohérentes.
- Chiffrement au repos : les données sont automatiquement chiffrées avant d'être écrites sur le disque et automatiquement déchiffrées lorsqu'elles sont lues par un utilisateur autorisé. Pour en savoir plus, consultez Chiffrement côté serveur.
- Entièrement géré sans temps d'arrêt planifiés : Google gère l'administration du service pour vous permettre de vous concentrer sur votre application. Votre application peut toujours utiliser Firestore 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 similaires à celles des bases de données relationnelles, elle diffère en tant que base de données NoSQL dans la façon 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. Vous pouvez utiliser ces caractéristiques uniques pour concevoir et gérer les données afin de les faire évoluer automatiquement.
Comme toutes les requêtes reposent sur des index créés précédemment, il existe plus de restrictions sur les types de requêtes que l'API Datastore peut exécuter que dans une base de données relationnelle SQL. En particulier, Datastore n'accepte pas les opérations de jointure, le filtrage des inégalités sur plusieurs propriétés ni le filtrage des données en fonction des résultats d'une sous-requête. Si votre application nécessite des fonctionnalités de requête avancées, y compris des jointures et des sous-requêtes, envisagez d'utiliser l'API Firestore Native ou l'API compatible avec MongoDB.
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).
Autres options pour le stockage et les bases de données
L'API compatible avec Datastore de Firestore est destinée à prendre en charge les anciennes applications App Engine. Si vous recherchez une base de données NoSQL orientée document pour une nouvelle application, nous vous recommandons d'utiliser l'une des API Firestore plutôt que l'API Datastore pour profiter de fonctionnalités plus avancées. En savoir plus sur les options qui s'offrent à vous
Firestore est une base de données de documents très évolutive qui ne convient pas forcément à tous les cas d'utilisation. Par exemple, il n'est peut-être pas le meilleur remplacement pour une base de données relationnelle. Voici quelques scénarios courants dans lesquels vous pourriez envisager d'utiliser une autre base de données :
- 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.
Pour plus d'informations sur les autres options de bases de données, consultez la présentation des services de base de données.
Étapes suivantes
- Découvrez comment stocker et interroger des données à l'aide de la console Google Cloud .
- En savoir plus sur le modèle de données Datastore
- Afficher les bonnes pratiques pour Datastore
Se connecter à Cloud Datastore avec App Engine
L'environnement d'exécution standard Go d'App Engine se connecte à Datastore à l'aide de l'API Datastore en langage Go.
Pour obtenir la liste complète des contenus du package datastore, consultez la documentation de référence sur le package datastore.