MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB contre Cassandra

Beaucoup de lectures dans chaque requête, moins d'écritures régulières

Les deux bases de données fonctionnent bien sur les lectures où l'ensemble de données chaudes tient dans la mémoire. Les deux mettent également l'accent sur les modèles de données sans jointure (et encouragent plutôt la dénormalisation), et fournissent tous deux des index sur des documents ou des lignes, bien que les index de MongoDB soient actuellement plus flexibles.

Le moteur de stockage de Cassandra fournit des écritures en temps constant, quelle que soit la taille de votre ensemble de données. Les écritures sont plus problématiques dans MongoDB, en partie à cause du moteur de stockage basé sur b-tree, mais plus à cause du verrouillage multi-granularité qu'il fait.

Pour l'analyse, MongoDB fournit une implémentation de carte/réduction personnalisée ; Cassandra fournit une prise en charge native de Hadoop, y compris pour Hive (un entrepôt de données SQL construit sur Hadoop map/reduce) et Pig (un langage d'analyse spécifique à Hadoop que beaucoup pensent être mieux adapté pour mapper/réduire les charges de travail que SQL). Cassandra prend également en charge l'utilisation de Spark.

Ne vous inquiétez pas de l'évolutivité "massive"

Si vous envisagez un seul serveur, MongoDB est probablement mieux adapté. Pour ceux qui sont plus préoccupés par la mise à l'échelle, l'architecture sans point de défaillance unique de Cassandra sera plus facile à configurer et plus fiable. (Le verrou d'écriture global de MongoDB a également tendance à devenir plus pénible.) Cassandra donne également beaucoup plus de contrôle sur le fonctionnement de votre réplication, y compris la prise en charge de plusieurs centres de données.

Plus préoccupé par la simplicité de configuration, de maintenance et de code

Les deux sont simples à configurer, avec des valeurs par défaut raisonnables pour un seul serveur. Cassandra est plus simple à configurer dans une configuration multi-serveurs puisqu'il n'y a pas de nœuds à rôle spécial dont il faut se soucier.

Si vous utilisez actuellement des blobs JSON, MongoDB correspond parfaitement à votre cas d'utilisation, étant donné qu'il utilise BSON pour stocker les données. Vous pourrez disposer de données plus riches et plus interrogeables que vous ne le feriez dans votre base de données actuelle. Ce serait la victoire la plus importante pour Mongo.