Skip to main content

Vue d'ensemble des bases de données NoSQL

Thorium. (Avril 2024)

Thorium. (Avril 2024)
Anonim

L'acronyme NoSQL a été inventé en 1998. Beaucoup de gens pensent que NoSQL est un terme péjoratif créé pour critiquer SQL. En réalité, le terme signifie non seulement SQL. L'idée est que les deux technologies peuvent coexister et que chacune a sa place. Le mouvement NoSQL a fait l'actualité ces dernières années, de nombreux leaders du Web 2.0 ayant adopté une technologie NoSQL. Des entreprises comme Facebook, Twitter, Digg, Amazon, LinkedIn et Google utilisent NoSQL d'une manière ou d'une autre. Décomposons NoSQL afin que vous puissiez l'expliquer à votre DSI ou même à vos collègues.

NoSQL a émergé d'un besoin

Stockage de données: Les données numériques stockées dans le monde sont mesurées en exaoctets. Un exaoctet équivaut à un milliard de gigaoctets (Go) de données. Selon Internet.com, la quantité de données stockées ajoutée en 2006 était de 161 exaoctets. Quatre ans plus tard, en 2010, la quantité de données stockées atteindra près de 1 000 ExaBytes, ce qui représente une augmentation de plus de 500%. En d'autres termes, de nombreuses données sont stockées dans le monde et leur croissance va continuer.

Données interconnectées: Les données continuent à devenir plus connectées. La création du Web favorisée par les liens hypertexte, les blogs ont des pingbacks et tous les principaux systèmes de réseaux sociaux ont des tags qui lient les choses ensemble. Les principaux systèmes sont conçus pour être interconnectés.

Structure de données complexe: NoSQL peut gérer facilement des structures de données hiérarchiques imbriquées. Pour accomplir la même chose en SQL, vous auriez besoin de plusieurs tables relationnelles avec toutes sortes de clés. De plus, il existe une relation entre performance et complexité des données. Les performances peuvent se dégrader dans un SGBDR classique, car nous stockons les quantités énormes de données nécessaires aux applications de réseaux sociaux et au Web sémantique.

Qu'est-ce que NoSQL?

J'imagine qu'une façon de définir NoSQL consiste à considérer ce que ce n'est pas. Ce n'est pas SQL et ce n'est pas relationnel. Comme son nom l'indique, il ne remplace pas un SGBDR, mais le complète. NoSQL est conçu pour les magasins de données distribués pour les besoins de données à très grande échelle. Pensez à Facebook avec ses 500 000 000 utilisateurs ou à Twitter, qui accumule chaque jour des térabits de données.

Dans une base de données NoSQL, il n'y a pas de schéma fixe ni de jointure. Un SGBDR "évolue" en obtenant un matériel de plus en plus rapide et en ajoutant de la mémoire. NoSQL, en revanche, peut tirer parti de la "montée en puissance". La mise à l'échelle fait référence à la répartition de la charge sur de nombreux systèmes de produits de base. C'est le composant de NoSQL qui en fait une solution peu coûteuse pour les grands ensembles de données.

Catégories NoSQL

Le monde NoSQL actuel se divise en 4 catégories de base.

  1. Magasins de valeurs-clés reposent principalement sur Dynamo Paper d'Amazon, écrit en 2007. L'idée principale est l'existence d'une table de hachage contenant une clé unique et un pointeur sur un élément de données particulier. Ces mappages sont généralement accompagnés de mécanismes de cache pour optimiser les performances.
    1. Column Family Stores ont été créés pour stocker et traiter de très grandes quantités de données réparties sur de nombreuses machines. Il y a encore des clés mais elles pointent vers plusieurs colonnes. Dans le cas de BigTable (modèle NoSQL de la famille de colonnes de Google), les lignes sont identifiées par une clé de ligne avec les données triées et stockées par cette clé. Les colonnes sont classées par famille de colonnes.
  2. Base de données de documentss ont été inspirés par Lotus Notes et ressemblent aux magasins à valeur / clé. Le modèle est fondamentalement des documents versionnés qui constituent des collections d'autres collections de valeurs-clés. Les documents semi-structurés sont stockés dans des formats tels que JSON.
  3. Base de données graphiques sont construits avec des nœuds, des relations entre les notes et les propriétés des nœuds. Au lieu de tableaux de lignes et de colonnes et de la structure rigide de SQL, un modèle de graphique flexible est utilisé, qui peut évoluer sur de nombreuses machines.

Principaux joueurs NoSQL

Les principaux acteurs de NoSQL ont vu le jour principalement grâce aux organisations qui les ont adoptés. Certaines des technologies NoSQL les plus importantes incluent:

  • Dynamo: Dynamo a été créé par Amazon.com et constitue la base de données NoSQL Key-Value la plus importante. Amazon avait besoin d'une plate-forme distribuée hautement évolutive pour ses entreprises de commerce en ligne et a donc développé Dynamo. Amazon S3 utilise Dynamo comme mécanisme de stockage.
  • Cassandra: Cassandra est une source ouverte créée par Facebook et constitue une base de données NoSQL axée sur les colonnes.
  • Grande table: BigTable est la base de données propriétaire de Google orientée colonne. Google autorise l'utilisation de BigTable mais uniquement pour Google App Engine.
  • SimpleDB: SimpleDB est une autre base de données Amazon. Utilisé pour Amazon EC2 et S3, il fait partie d’Amazon Web Services qui facture des frais en fonction de l’utilisation.
  • CouchDB: CouchDB avec MongoDB sont des bases de données NoSQL orientées document et open source.
  • Neo4J: Neo4j est une base de données de graphes open source.

Interrogation de NoSQL

La question de savoir comment interroger une base de données NoSQL est ce qui intéresse la plupart des développeurs. Après tout, les données stockées dans une énorme base de données ne sont utiles à personne si vous ne pouvez pas les récupérer et les montrer aux utilisateurs finaux ou aux services Web. Les bases de données NoSQL ne fournissent pas un langage de requête déclaratif de haut niveau tel que SQL. Au lieu de cela, l'interrogation de ces bases de données est spécifique au modèle de données.

La plupart des plates-formes NoSQL permettent des interfaces RESTful avec les données. Autres API de requête d'offre. Quelques outils de requête ont été développés pour tenter d'interroger plusieurs bases de données NoSQL. Ces outils fonctionnent généralement dans une seule catégorie NoSQL. Un exemple est SPARQL. SPARQL est une spécification de requête déclarative conçue pour les bases de données graphiques. Voici un exemple de requête SPARQL qui récupère l'URL d'un blogueur particulier (avec la permission d'IBM):

PREFIX Foaf: SELECT? UrlDE OÙ {? contributeur foaf: nom "Jon Foobar".? contributor foaf: weblog? url.}

L'avenir de NoSQL

Les organisations qui ont des besoins énormes en stockage de données s'intéressent sérieusement à NoSQL. Apparemment, le concept n'a pas autant de succès dans les petites entreprises. Dans une enquête réalisée par Information Week, 44% des informaticiens n’ont pas entendu parler de NoSQL. De plus, seulement 1% des répondants ont déclaré que NoSQL faisait partie de leur orientation stratégique. Clairement, NoSQL a sa place dans notre monde connecté, mais il faudra continuer à évoluer pour obtenir l'appel de masse que beaucoup pensent pouvoir avoir.