Présentation de Cloud Datastore

Cloud 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. Cloud 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.
  • Le bon équilibre entre cohérence forte et cohérence à terme. Cloud Datastore garantit que les recherches d'entité par clé et par requête ascendante reçoivent toujours des données à cohérence forte. Toutes les autres requêtes sont cohérentes à terme. Les modèles de cohérence permettent à votre application de fournir une expérience utilisateur exceptionnelle tout en gérant de grandes quantités de données et d'utilisateurs.

  • 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 Cloud Datastore 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.

Cloud Firestore en mode Datastore

Cloud Firestore est la dernière version de Datastore et introduit plusieurs améliorations par rapport à Cloud Datastore. Les utilisateurs Cloud Datastore existants peuvent accéder à ces améliorations en créant un nouveau Cloud Firestore dans une instance de base de données en mode Datastore. À l'avenir, toutes les bases de données Cloud Datastore existantes seront automatiquement mises à niveau vers Cloud Firestore en mode Datastore.

Comparaison avec les bases de données traditionnelles

Bien que l'interface Cloud Datastore présente de nombreuses fonctionnalités identiques aux bases de données traditionnelles, 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 Cloud 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é ID de document Clé primaire

Contrairement aux lignes d'une table de base de données relationnelle, les entités Cloud 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, Cloud Datastore se distingue nettement des bases de données relationnelles classiques, en particulier :

  • Cloud 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 évoluent en fonction de la taille de l'ensemble de résultats. 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 traditionnelles 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

Cloud Datastore ne convient pas à tous les cas d'utilisation. Par exemple, Cloud 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 à Cloud 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.