Présentation de Cloud Datastore

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 d'une base de données NoSQL 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.

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

Se connecter à Cloud Datastore avec App Engine

L'environnement d'exécution standard Go d'App Engine se connecte à Cloud Datastore à l'aide de l'API Go Datastore. Pour obtenir la liste complète des contenus du package datastore, consultez la documentation de référence sur le package datastore.

Vous ne pouvez pas utiliser la bibliothèque cliente Cloud Datastore avec des applications Go dans l'environnement standard App Engine.