Spanner est un système de base de données hautement fiable et entièrement géré. Bien que Spanner ait évolué pour devenir un système de gestion de bases de données relationnelles, il a ses origines en tant que système de stockage de clés-valeurs non relationnel et conserve les caractéristiques fondamentales d'un tel système. Vous pouvez donc utiliser Spanner comme base de données non relationnelle (NoSQL) et migrer d'autres bases de données non relationnelles vers Spanner. Ce document aide à déterminer si Spanner est adapté et non relationnelles.
Les bases de données NoSQL ont été utilisées à une époque où les bases de données relationnelles traditionnelles ne disposaient pas de fonctionnalités permettant de prendre en charge les applications émergentes qui nécessitaient une évolutivité, une disponibilité et une élasticité de calcul élevées. Ils y sont arrivés en sacrifiant plusieurs fonctionnalités souvent essentielles à la gestion des données, telles que les transactions, la cohérence et les requêtes ad hoc. Spanner a été conçu pour permettre à la fois le caractère exigeant des applications et fonctionnalités à disponibilité élevée fournies par les bases de données relationnelles traditionnelles, de sorte que les clients des deux ensembles de fonctionnalités.
Avec Spanner, vous pouvez commencer avec une approche simple, non relationnelle et faire évoluer votre application selon vos besoins.
Comment Spanner répond aux critères des bases de données NoSQL
Spanner répond aux critères clés suivants pour votre environnement NoSQL et charges de travail.
Évolutivité et performances
Les bases de données NoSQL ont gagné en popularité en raison de leur capacité à faire évoluer les opérations de lecture et d'écriture. horizontalement. Avec Spanner, vous n'avez pas à vous soucier du scaling ou les performances sont préoccupantes. Les bases de données Spanner de type clé-valeur peuvent être mises à l'échelle horizontalement pour prendre en charge des centaines de millions de requêtes de lecture ou d'écriture par seconde et plusieurs pétaoctets de données. La capacité de calcul de Spanner évolue avec la charge de travail, tout en maintenant un profil cohérent et à faible latence, même lorsque votre application évolue de plusieurs ordres de grandeur.
API NoSQL
Les bases de données relationnelles traditionnelles sont généralement accessibles à l'aide de SQL, ce qui implique une courbe d'apprentissage pour les développeurs qui ne connaissent pas les bases de données relationnelles. Les clients de ces bases de données s’appuient également généralement sur des connexions persistantes et nécessitent le déploiement d'une infrastructure de pooling de connexions pour évoluer. Dans En revanche, l'API Spanner repose sur une requête gRPC/HTTP2. et de réponse qui gère automatiquement les échecs de connexion. Spanner fournit une base de données simple, native et efficace API NoSQL en lecture/écriture qui ne nécessitent pas de connaissances en SQL De plus, les clients Spanner ne nécessitent aucun regroupement de connexions pour évoluer.
Entièrement géré
L'un des principaux avantages des bases de données NoSQL est qu'elles sont perçues comme plus faciles à gérer. Étant donné qu'il s'agit d'un service entièrement géré, Spanner ne représente aucune charge opérationnelle pour les clients. Spanner effectue un temps d'arrêt sans temps d'arrêt des mises à jour logicielles et matérielles en arrière-plan tout en maintenant et la compatibilité avec d'autres appareils. L'API et la sémantique de Spanner sont les mêmes que si les opérations étaient effectuées sur une base de données sur une seule machine et ne nécessitent pas de connaissances sur l'architecture interne de Spanner. Spanner s'exécute sur des déploiements allant d'un dixième de nœud à des dizaines de milliers de nœuds, en effectuant un scaling automatique et réactif avec un autoscaler géré.
Données semi-structurées
Spanner prend en charge des types de données flexibles tels que JSON et BYTES, qui sont utilisés pour stocker des données semi-structurées ou non structurées. Comme les autres bases de données NoSQL, vous pouvez utiliser ces types de données pour éviter de spécifier l'ensemble de votre schéma de stockage à l'avance.
Contrôle des accès
Comme les autres bases de données NoSQL, Spanner accepte les accès basés sur IAM de commande. Les administrateurs peuvent configurer et administrer des stratégies de contrôle des accès sans stocker de noms d'utilisateur ni de mots de passe dans la base de données.
Différences entre Spanner et les bases de données NoSQL traditionnelles
Spanner offre les avantages suivants par rapport aux bases de données NoSQL traditionnelles.
Transactions
À mesure que les applications deviennent plus complexes, elles doivent souvent effectuer des opérations transactionnelles multilignes et multitables sur la base de données. Avec Spanner, vous n'avez plus besoin vous devez migrer vers un datastore transactionnel à mesure que votre base de données croît, Spanner est entièrement compatible avec les transactions en lecture/écriture. En tant que base de données conforme à la norme ACID, Spanner maintient la cohérence transactionnelle de votre base de données en permanence, quelle que soit son échelle.
Modélisation des données
La conception de schémas dans les bases de données NoSQL peut s'avérer inutile en raison de la nécessité d'adapter les données dans une seule table et de forcer la dénormalisation des données en raison de l'incapacité effectuer des jointures. Avec Spanner, vous pouvez spécifier votre schéma sans à une seule table ou à une dénormalisation. Pour optimiser les modèles d'accès appuyer sur plusieurs tables, utilisez l'entrelacement de tables. Vous pouvez également effectuer des jointures entre les tables.
Requêtes ponctuelles
Même si vous utilisez principalement l'API NoSQL, il est souvent utile d'exécuter des requêtes ad hoc à des fins de débogage ou d'analyse. Spanner respecte le langage de requête standard SQL. Vous pouvez utiliser la priorisation des requêtes pour isoler le trafic ad hoc à faible priorité du trafic en ligne ou utiliser Data Boost Spanner pour exécuter des requêtes analytiques sur des ressources de calcul complètement isolées du trafic de base de données en ligne.
Index secondaires fortement cohérents
Les applications ont souvent besoin d'index secondaires pour permettre les recherches à faible latence. Les bases de données NoSQL classiques proposent des index secondaires cohérents à terme ou imposent des contraintes sur la taille d'un index. Cela peut compliquer la logique de l'application, qui doit contourner ces contraintes. Spanner propose des index secondaires fortement cohérents à grande échelle, sans aucune contrainte de taille. Vous pouvez ainsi vous concentrer votre logique d'application sans vous soucier des problèmes de cohérence.
Spanner est-il adapté à vos besoins en base de données NoSQL ?
Spanner est un système de stockage de données flexible qui prend en charge les cas d'utilisation SQL et NoSQL. Bien que certaines applications commencent avec des besoins de stockage simples, à mesure qu'elles gagnent en complexité, elles ont besoin de plus de fonctionnalités généralement non proposées par les bases de données NoSQL, telles que les transactions, les index secondaires cohérents et un langage de requête flexible. Avec Spanner, vous n'êtes pas limité par ces limites et pouvez développer votre application selon vos besoins.
La plupart des charges de travail non relationnelles conviennent parfaitement à Spanner. Non Spanner offre uniquement une API NoSQL en lecture/écriture simple, mais il offre aussi une haute disponibilité, une haute fiabilité, une faible latence élasticité de calcul et évolutivité extrême. Spanner vous permet de regrouper différentes charges de travail sur une seule plate-forme flexible.