MongoDB, Cassandra et HBase - les trois bases de données NoSQL à surveiller

Hadoop obtient une grande partie du crédit Big Data, mais la réalité est que les bases de données NoSQL sont déployées beaucoup plus largement - et bien plus largement développées. En fait, s'il est relativement simple d'acheter un fournisseur Hadoop, choisir une base de données NoSQL est tout sauf. Il existe, après tout, plus de 100 bases de données NoSQL, comme le montre le classement de popularité des bases de données DB-Engines.

Lequel devriez-vous choisir?

L'embarras du choix

Parce que vous devez choisir. Aussi agréable que cela puisse être de vivre dans une utopie heureuse de soi-disant persistance polyglotte, «où toute entreprise de taille décente disposera d'une variété de technologies de stockage de données différentes pour différents types de données», comme le soutient Martin Fowler, la réalité est vous ne pouvez pas vous permettre d'investir plus que dans l'apprentissage.

Heureusement, le choix devient plus facile à mesure que le marché se fusionne autour de trois bases de données NoSQL dominantes: MongoDB (soutenu par mon ancien employeur), Cassandra (principalement développé par DataStax, bien qu'éclosé sur Facebook) et HBase (étroitement aligné sur Hadoop et développé par le même communauté).

Notez que j'exclus volontairement Redis de cette liste. Bien qu'il s'agisse d'un excellent magasin de données, il est principalement utilisé pour la mise en cache des données et n'est pas bien adapté à un large éventail de charges de travail.

Les données LinkedIn de 451 Research montrent comment le marché gravite vers MongoDB, Cassandra et HBase:

Ce sont les données de profil LinkedIn. Une vue plus complète est celle de DB-Engines, qui regroupe les emplois, la recherche et d'autres données pour comprendre la popularité de la base de données. Alors qu'Oracle, SQL Server et MySQL règnent en maître, MongoDB (n ° 5), Cassandra (n ° 9) et HBase (n ° 15) leur en donnent pour leur argent.

Bien qu'il soit trop tôt pour appeler toutes les autres bases de données NoSQL une erreur d'arrondi, nous atteignons rapidement ce point, exactement comme cela s'est produit sur le marché des bases de données relationnelles.

Pour mieux comprendre pourquoi ces trois bases de données brillent, j'ai demandé aux représentants de chacune d'identifier les attributs clés de leur succès: Kelly Stirman, directrice des produits chez MongoDB; Patrick McFadin, évangéliste en chef Cassandra chez DataStax; et Justin Kestelyn, directeur principal des relations avec les développeurs chez Cloudera.

Mais d'abord, nous devons comprendre pourquoi NoSQL est important.

Un monde construit avec des données non structurées

Nous vivons de plus en plus dans un monde où les données ne rentrent pas bien dans les rangées et les colonnes ordonnées d'un SGBDR. L'informatique mobile, sociale et en nuage a engendré un flot massif de données. Selon diverses estimations, 90% des données mondiales ont été créées au cours des deux dernières années, et Gartner a établi que 80% de toutes les données d'entreprise étaient non structurées. De plus, les données non structurées augmentent deux fois plus vite que les données structurées.

À mesure que le monde change, les exigences en matière de gestion des données dépassent le cadre effectif des bases de données relationnelles traditionnelles. Les premières organisations à constater le besoin de solutions alternatives ont été les pionniers du Web, les agences gouvernementales et les entreprises spécialisées dans les services d'information.

De plus en plus maintenant, les entreprises de tous horizons cherchent à capitaliser sur les avantages d'alternatives telles que NoSQL et Hadoop: NoSQL pour créer des applications opérationnelles qui conduisent leur entreprise grâce à des systèmes d'engagement, et Hadoop pour créer des applications qui analysent leurs données rétrospectivement et aident à fournir des informations puissantes. .

MongoDB: des développeurs, pour les développeurs

Parmi les options NoSQL, souligne Stirman de MongoDB, MongoDB a visé une approche équilibrée adaptée à une grande variété d'applications. Alors que la fonctionnalité est proche de celle d'une base de données relationnelle traditionnelle, MongoDB permet aux utilisateurs de capitaliser sur les avantages de l'infrastructure cloud avec son évolutivité horizontale et de travailler facilement avec les divers ensembles de données utilisés aujourd'hui grâce à son modèle de données flexible.

MongoDB est souvent le premier développeur de bases de données NoSQL à essayer car il est si facile à apprendre. Will Shulman, PDG de MongoLab (un fournisseur MongoDB-as-a-service), le dit de cette façon:

Le succès disproportionné de MongoDB repose en grande partie sur son innovation en tant que magasin de structures de données qui nous permet de modéliser plus facilement et de manière plus expressive les «choses» au cœur de nos applications….

Avoir le même modèle de données de base dans notre code et dans la base de données est la meilleure méthode pour la plupart des cas d'utilisation, car elle simplifie considérablement la tâche de développement d'applications et élimine les couches de code de mappage complexe qui sont autrement nécessaires.

Notamment, MongoDB, comme les autres bases de données de cette liste, n'est pas un poney à un tour. Les entreprises qui apprennent MongoDB «peuvent amortir leurs investissements dans MongoDB sur de très nombreux projets, ce qui en fait l'une des courtes listes de normes sur lesquelles elles s'appuient pour la gestion de toutes les données», comme me l'a dit Stirman.

Bien sûr, comme toute technologie, MongoDB a ses forces et ses faiblesses. MongoDB est conçu pour les charges de travail OLTP. Il peut effectuer des requêtes complexes, mais ce n'est pas nécessairement la meilleure solution pour les charges de travail de type reporting. Ou si vous avez besoin de transactions complexes, ce ne sera pas un bon choix. Cependant, la simplicité de MongoDB en fait un excellent point de départ.

Cassandra: courir en toute sécurité à grande échelle

Il existe au moins deux types de simplicité de base de données: la simplicité de développement et la simplicité opérationnelle. Alors que MongoDB obtient à juste titre le crédit pour une expérience prête à l'emploi facile, Cassandra obtient tous les points pour sa facilité de gestion à grande échelle.

Comme me l'a dit McFadin de DataStax, les utilisateurs ont tendance à se tourner vers Cassandra plus ils se heurtent à la difficulté de rendre les bases de données relationnelles plus rapides et plus fiables, en particulier à grande échelle. Ancien DBA Oracle, McFadin était ravi de découvrir que «la réplication et la mise à l'échelle linéaire sont des primitives» avec Cassandra, et que les fonctionnalités étaient «l'objectif principal de la conception depuis le début».

Dans le monde du SGBDR, les fonctionnalités de base de données telles que la mise à l'échelle et la réplication sont les éléments essentiels laissés à l'utilisateur. Cela fonctionnait bien dans l'entreprise d'hier lorsque l'échelle n'était pas un gros problème. Aujourd'hui, cela devient rapidement le problème.

Comme je l'ai entendu de McFadin et d'autres, Cassandra brille particulièrement dans les déploiements à grande échelle. Cassandra est fourni avec un support intégré pour plusieurs centres de données. En ce qui concerne l’ajout de capacité à un cluster, «il vous suffit de démarrer une nouvelle machine et de dire à Cassandra où se trouvent les autres nœuds», a déclaré McFadin, «et il s’occupe du reste.»

Cette facilité de mise à l'échelle, associée à des performances d'écriture exceptionnelles («Tout ce que vous faites est d'ajouter à la fin d'un fichier journal») et des performances de requête prévisibles, s'ajoutent à un bourreau de travail hautes performances dans Cassandra.

Un article de foi NoSQL que j'ai longtemps soutenu est que Cassandra est peut-être puissante à grande échelle, mais qu'elle nécessite un doctorat pour commencer. Non, a insisté McFadin:

Les chemins de réplication et de lecture et d'écriture sont volontairement simples. Vous pouvez apprendre les rouages ​​de Cassandra en quelques heures. Cela peut apporter beaucoup de confiance lorsque vous déployez une nouvelle technologie, car il y a moins de détails de «boîte noire» qui introduisent des modes de défaillance complexes.

Cela signifie que le prix d'admission au développement efficace de Cassandra réside dans la compréhension du modèle de données et de la manière dont il fonctionnera avec votre application. Étant donné la familiarité du langage de requête CQL de Cassandra (censé être «exactement comme SQL sauf quand ce n'est pas le cas»), McFadin a dit, ce n'est pas une courbe d'apprentissage abrupte.

Plus important encore, il m'a dit: «Cassandra vous récompense avec la seule chose que vous attendez d'une base de données: pas de drame. C'est pourquoi les utilisateurs adorent utiliser Cassandra. »

HBase: Copains de poitrine avec Hadoop

HBase, comme Cassandra, un magasin de valeurs-clés orienté colonnes, est beaucoup utilisé en grande partie en raison de son pedigree commun avec Hadoop. En effet, comme le dit Kestelyn de Cloudera, «HBase fournit une couche de stockage basée sur des enregistrements qui permet des lectures et des écritures rapides et aléatoires dans les données, complétant Hadoop en mettant l'accent sur un débit élevé au détriment des E / S à faible latence.»

Kestelyn continue:

Les modifications sont efficacement cataloguées en mémoire pour obtenir un accès maximal pendant que les données sont conservées dans HDFS. Cette conception permet à un EDH [centre de données d'entreprise] basé sur Hadoop de fournir des lectures et des écritures aléatoires aux utilisateurs et aux applications en temps réel, tout en bénéficiant de la tolérance aux pannes et de la durabilité de HDFS.

L'affinité avec Hadoop n'est pas la seule raison pour laquelle HBase continue d'augmenter dans les rangs de popularité des bases de données, bien que cela puisse suffire. Semblable à Cassandra, les racines de HBase en tant qu'implémentation open source de Bigtable de Google se traduisent par une base de données hautement évolutive de par sa conception.

Parce qu'il peut utiliser le stockage, la mémoire et les ressources de processeur de n'importe quel nombre de serveurs, ainsi que des fonctionnalités évolutives telles que le partitionnement automatique, HBase peut évoluer à l'infini à mesure que la charge et les performances augmentent simplement en ajoutant des nœuds de serveur. HBase a été conçu dès le départ pour fournir des performances optimales lorsque la cohérence est essentielle.

Mais l'échelle n'est pas seulement une utilité. Comme l'a noté Kestelyn, «Grâce à son intégration étroite avec le reste de l'écosystème Hadoop, les données sont facilement disponibles pour les utilisateurs et les applications via des requêtes SQL (utilisant Cloudera Impala, Apache Phoenix ou Apache Hive) ou même une recherche en texte libre à facettes (en utilisant Cloudera Search). » Ainsi, HBase offre aux développeurs un moyen d'exploiter l'expertise existante avec SQL tout en s'appuyant sur une base de données distribuée plus moderne.

Chaque base de données a ses propres forces et faiblesses, mais chacun des trois profilés ici a comblé un trou majeur dans le paysage du Big Data. Bien qu'il soit possible qu'une nouvelle base de données vienne revendiquer une place dans le top trois NoSQL (DynamoDB?), La réalité est que les développeurs et les entreprises qu'ils servent sont déjà en train de standardiser quelques options fortes: MongoDB, Cassandra et HBase.

Maintenant vice-président du mobile chez Adobe, Matt Asay était auparavant vice-président de la communauté chez MongoDB, Inc. Il est membre émérite du conseil d'administration de l'Open Source Initiative (OSI) et a obtenu son doctorat en jurisprudence à Stanford, où il s'est concentré sur l'open source et autres les questions de licence de propriété intellectuelle, et sa maîtrise de l'Université du Kent à Canterbury et son baccalauréat de l'Université Brigham Young. Asay a été l'un des premiers blogueurs de.

Le New Tech Forum offre un lieu pour explorer et discuter des technologies d'entreprise émergentes avec une profondeur et une ampleur sans précédent. La sélection est subjective, basée sur notre choix des technologies que nous pensons importantes et qui intéressent le plus les lecteurs. n'accepte pas les supports marketing pour la publication et se réserve le droit de modifier tout le contenu fourni. Envoyez toutes vos demandes à [email protected]