Résumé

Effectué
  • Apache HBase est une version open source du système de stockage distribué BigTable de Google. Les deux systèmes sont des bases de données distribuées, scalables, hautement performantes et versionnées.
  • HBase organise les données dans des tables, avec chaque ligne d’une table indexée par une clé, et les données sont stockées dans des colonnes. Plusieurs colonnes peuvent être regroupées en familles de colonnes.
  • Les colonnes HBase n’ont pas besoin d’être typées. Les colonnes peuvent être ajoutées à la demande. HBase stocke les données sur un disque au niveau des colonnes, ce qui en fait une base de données en colonnes.
  • Les données stockées dans des lignes HBase sont versionnées ; par défaut, les opérations s’appliquent à la version la plus récente des données.
  • HBase prend en charge les opérations Get, Put, Scan et Delete.
  • HBase est organisé sous la forme d’un cluster de nœuds ; un nœud est désigné comme maître et les autres sont appelés « regionservers » (serveurs de région). ZooKeeper est utilisé pour gérer le cluster. HDFS est généralement utilisé pour stocker des données dans HBase.
  • Les données d’une table sont partitionnées en régions et des serveurs de région (regionservers) individuels leur sont attribués ; le maître HBase conserve un enregistrement des attributions de régions.
  • HBase n’est pas entièrement conforme aux propriétés ACID, en particulier avec les opérations qui étendent des lignes. Dans ce cas, les requêtes suivantes de données provenant de HBase peuvent retourner des données périmées.
  • HBase convient mieux au stockage de données volumineuses et prend en charge un accès rapide à plusieurs lignes pour les agrégations. Plusieurs interfaces permettent la connectivité à MapReduce et à des applications web.
  • HBase ne prend pas en charge les jointures, et son modèle de cohérence doit être pris en compte lors de la conception d’applications.
  • MongoDB est un magasin de documents qui stocke des documents dans des collections.
  • MongoDB stocke les données en interne à l’aide du format BSON (Binary JSON, JSON binaire).
  • MongoDB peut être mis à l’échelle vers plusieurs clusters à l’aide de la réplication et du partitionnement.
  • MongoDB est souvent utilisé pour les applications qui nécessitent un scale-out, pour les applications qui ont besoin d’écritures en bloc rapides, ainsi que pour des données nécessitant des indices géospatiaux.
  • Apache Cassandra est un système de stockage de clés-valeurs structuré entièrement distribué, qui utilise plusieurs aspects de la conception de HBase et dynamo.
  • Dans Cassandra, une table est appelée famille de colonnes, chaque enregistrement étant indexé par une clé et composé de colonnes ; plusieurs colonnes peuvent être regroupées en une super colonne.
  • Dans Cassandra, une ligne est retournée sous la forme d’une séquence de paires clé-valeur imbriquées.
  • Dans Cassandra, les opérations classiques sont les obtentions (Get), les insertions (Insert) et les suppressions (Delete). Elles peuvent être effectuées sur des lignes individuelles, sur des groupes de lignes (une plage) et sur un groupe de colonnes (une tranche).
  • Cassandra s’exécute sur un cluster de nœuds à l’aide d’une architecture pair à pair décentralisée. Cassandra utilise le stockage local sur chaque nœud pour stocker les données.
  • Les nœuds Cassandra sont organisés en anneau à jeton (token ring), et Cassandra répartit automatiquement les lignes entre les différents nœuds du cluster à l’aide de la valeur de hachage de la clé de chaque ligne par le biais d’un hachage cohérent. Chaque nœud a connaissance de tous les autres nœuds de l’anneau à jeton et transfère automatiquement les demandes de client au nœud approprié.
  • Cassandra réplique des lignes sur des nœuds sur la base d’un facteur de réplication défini par l’utilisateur.
  • Dans Cassandra, chaque opération est effectuée avec un niveau de cohérence défini par l’utilisateur. Le niveau de cohérence fournit un compromis paramétrable entre la cohérence et les performances pour chaque opération.
  • Dans Cassandra, des algorithmes spécialisés sont utilisés pour gérer la détection des défaillances ; les nœuds Cassandra peuvent effectuer temporairement le suivi des demandes d’écriture sur des nœuds hors connexion et les transférer quand le nœud revient en ligne (transfert avec indicateur).
  • Les propriétés ACID de Cassandra sont configurables par opération.
  • Cassandra est souvent utilisé en raison de son ensemble de fonctionnalités, et son modèle de cohérence paramétrable offre une grande souplesse dans la conception d’applications.
  • OpenStack Swift est un système de stockage d’objets open source qui est déployé dans des clouds publics ou privés.
  • Swift révèle une interface REST de type S3 pour accéder aux objets.
  • Ceph Object Gateway est une couche d’accès sur le magasin d’objets distribués RADOS. Cela offre des interfaces compatibles à la fois avec S3 et avec Swift dans RADOS.