ACTUALITÉ SCIENTIFIQUE
ET INNOVATION DE L'ÉTS
Les bases de données No-SQL, une solution qui représente un défi - Par : Abraham Gomez,

Les bases de données No-SQL, une solution qui représente un défi


Abraham Gomez
Abraham Gómez est chercheur en TI. Ses intérêts de recherche incluent l’intelligence artificielle, les applications infonuagiques ainsi que les applications génétiques des mégas données. Il termine actuellement un doctorat à l’ÉTS.

Image d’entête provenant de Carsten Overgaard, licence CC. Source.

L’information contenue dans l’internet se développe à un rythme surprenant. Par exemple, dans les cinq prochaines années, les applications qui utilisent le Web vont croître d’une manière exponentielle, tandis que l’embauche de personnel qualifié pour soutenir cette croissance n’augmentera que légèrement. (Gantz and Reinsel 2011). Voir figure 1.

AGNSQL1

Figure 1 : la capacité mondiale de gérer, communiquer et entreposer l’information s’est accrue de façon accélérée depuis 2002. Source [Img1].

Pour cette raison, le BigData est apparu comme un nouveau domaine afin d’étudier ces grands ensembles de données actuelles et ses implications. Cependant, les données utilisées dans ce nouveau domaine sont complexes et difficiles à aborder pour les bases de données relationnelles utilisées de nos jours. On peut se rappeler un article précédent où nous avons traité ce sujet : « Les bases de données : un outil et un défi en entreprise ». , où il était précisé qu’une base de données est un entrepôt informatique qui permet de sauvegarder l’information dans un format tabulaire, où les tables constituent la partie principale. On peut y trouver les indices, les différentes relations entre tables, le langage de requêtes SQL et les procédures stockées. Mais avec l’arrivée du BigData, l’utilisation massive de fichiers à l’échelle de téraoctets ou pétaoctets a augmenté. Ils sont d’habitude totalement variés, pouvant être des textes, des images ou des vidéos et nécessitent une réponse très rapide pour l’utilisateur. On peut raisonnablement conclure que l’apparition de ce nouveau domaine comporte des problèmes de divers aspects liés au traitement de l’information contenue dans les applications, notamment, la capture, le stockage, la recherche, le partage, l’analyse et la visualisation des données impliquées dans ces processus. Cette situation amène les bases de données relationnelles à faire face à plusieurs défis, par exemple pour traiter avec de grandes tables, augmenter la puissance de calcul et trouver la meilleure manière de les utiliser.

Abadi (Abadi 2009) précise que les problèmes commencent lorsque les bases de données relationnelles dépassent 1To. La taille des tables devient une situation ingérable où trouver une information est une attente interminable en raison soit des tables, soit des indices ou des relations. Plusieurs approches ont été développées pour résoudre le problème des grandes données :

  1. acheter des équipements (hardware) spécialisés;
  2. construire une grappe de serveurs;
  3. utiliser une méthode de partitionnement de données;
  4. utiliser une base de données orientée par colonnes;
  5. profiter d’un nouveau paradigme de bases de données nommé No-SQL.

Toutes ces solutions proposées montrent qu’il reste encore à trouver une méthode efficace pour produire la meilleure solution par rapport au coût/bénéfice. Par exemple, construire un centre de données comme celui de la figure 2 exige d’importants investissements, qui ne sont pas toujours disponibles. Cela signifie que les deux premières options ne sont pas accessibles à tous. Cependant, il est possible de bâtir une grappe de serveurs à un faible coût des équipements, mais on aura besoin d’embaucher du personnel qualifié.

AGNSQL2

Figure 2: Un centre de serveurs Google situé dans la ville de Groningen aux Pays-Bas. Source [Img2].

La troisième option consiste à diviser les tables (l’élément fondamental des bases de données relationnelles) en de petites parties nommées « chunks » ou « partitions » et les distribuer dans un réseau informatique comme celui d’Internet. Cette option comporte elle-même des défis, la question étant de savoir si la division doit être horizontale ou verticale et quel est l’algorithme approprié pour rassembler les différentes « partitions ».

Le présent article parle des bases de données orientées par colonnes et des bases de données No-SQL. Le mot No-SQL désigne une catégorie de bases de données qui n’est plus fondée sur l’architecture classique des bases relationnelles, comme les tables, les indices, ou les relations entre tables. L’unité logique n’y est plus la table, et les données ne sont en général pas manipulées avec SQL. Malgré que les bases de données No-SQL aient d’abord été développées indépendamment du Cloud Computing, ce dernier a beaucoup profité de l’apparition des No-SQL. Plus récemment, plusieurs bases des données No-SQL ont été conçues spécifiquement pour un usage sur le cloud. Les produits No-SQL abandonnent la représentation matricielle de l’information (modèle relationnel) et le langage de commande SQL en échange d’une simplicité, d’une performance et surtout d’une évolutivité accrue. La complexité de mise en œuvre du traitement des transactions a été réduite ou éliminée dans le but d’obtenir des services plus simples et plus spécialisés.

Les solutions informatiques proposées par le Cloud Computing et ses bases de données (No-SQL) promettent de résoudre tous les problèmes générés par l’apparition du BigData et résumés ci-dessous :

  • Les bases de données no-SQL s’adressent surtout à la haute performance et sont à faible coût;
  • Elles sont arrivées à contester la domination de SQL dans les processus distribués (déjà traité dans l’article « Les bases de données distribuées: qu’est-ce que c’est ? ») et des applications avec de grands volumes de données;
  • Certaines entreprises ont déjà remplacé la haute fonctionnalité de SQL avec ces nouvelles options qui leur permettent de créer, de travailler et de gérer d’énormes ensembles de données.

Le paradigme No-SQL utilise le concept que différentes applications ont besoin de différentes solutions. Voici une première différence avec le modèle relationnel qui apportait une solution unique (la relationnelle) pour toutes les applications. Cette différence a été amplement traitée par Stonebraker (Stonebraker 2008). Dans le modèle No-SQL, il y a plusieurs types des bases de données: celles qui sont basées sur « clé/valeur » comme Dynamo ou Cassandra, sur « graphes » comme Neo4j ou InfiniteGraph, ou sur « documents » comme CouchDB ou MongoDB. Ainsi, à la différence des bases de données relationnelles, le premier pas pour utiliser une base de données No-SQL est d’analyser l’application pour savoir quel type de base est la meilleure. La base de données « HBase » qui est une partie du projet Hadoop de la fondation Apache, elle, constitue un cas spécial dans le monde No-SQL, car elle est à la fois une base de données orientée colonnes et clé/valeur.

Dans les prochains articles, on va développer chacun de ces différents types de bases de données et leurs implications. On se concentrera aussi sur l’utilisation de HBase sur différents applications de plusieurs domaines.

Abraham Gomez

Profil de l'auteur(e)

Abraham Gómez est chercheur en TI. Ses intérêts de recherche incluent l’intelligence artificielle, les applications infonuagiques ainsi que les applications génétiques des mégas données. Il termine actuellement un doctorat à l’ÉTS.

Programme : Génie des technologies de l'information  Génie logiciel 

Profil de l'auteur(e)


commentaires

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *