web-dev-qa-db-fra.com

Quelle est la différence entre Cassandra et CouchDB?

Je regarde les deux projets et je ne vois pas vraiment la différence

de Cassandra Site:

Cassandra est un magasin de valeurs-clés hautement évolutif, éventuellement cohérent, distribué et structuré ... Cassandra est finalement cohérent. Comme BigTable, Cassandra fournit un modèle de données basé sur ColumnFamily plus riche que les systèmes de clé/valeur typiques.

du site CouchDB:

Apache CouchDB est une base de données distribuée, tolérante aux pannes et sans schéma accessible via une API RESTful HTTP/JSON.

Cela dit, je vois les différences spécifiques entre chaque projet comme: méthodes d'accès, langages écrits, etc. mais pour mettre UN EXEMPLE, quand vous parlez de SOLR ou Sphinx vous savez que les deux sont des indexeurs avec de grandes différences mais à la fin sont des indexeurs.

Puis-je dire ici que Cassandra et CouchDB sont des bases de données non relationnelles qui, dans certains cas, peuvent remplacer l'autre?

75
Gabriel Sosa

CouchDB est un magasin de documents. Vous y mettez des documents (objets JSON) et définissez des vues (index) dessus. Les objets peuvent être arbitrairement complexes avec une structure potentiellement profonde. De plus, ils ne sont pas contraints de suivre un schéma cohérent.

Cassandra est un magasin de valeurs-clés à table irrégulière. Il stocke simplement des lignes, chacune ayant un ensemble de colonnes nommées regroupées en familles avec des valeurs. Cela semble assez proche de BigTable; BigTable ne nécessite pas que chaque ligne ait la même structure (contrairement à une base de données SQL). Les valeurs peuvent avoir une certaine structure, mais ce type de magasin n'en sait rien - ce ne sont que des chaînes/séquences d'octets.

Oui, ce sont toutes deux des bases de données non relationnelles, et il y a probablement beaucoup de chevauchement dans leur applicabilité, mais elles ont des modèles d'organisation des données nettement différents. Chacun peut probablement être forcé d'émuler l'autre, mais chaque modèle correspondra le mieux à un ensemble différent de problèmes.

74
Michael Ekstrand

CouchDB a une fonctionnalité présente dans très peu de technologies de base de données open source: la réplication hors ligne. CouchDB est conçu pour que les applications puissent être exécutées à la périphérie du réseau. Ces applications sont disponibles même lorsque la connectivité Internet échoue.

La réplication hors ligne peut également être utilisée pour créer de grands clusters, mais CouchDB est conçu pour être robuste et simple, qu'il s'exécute sur un seul serveur, un centre de données ou même un smartphone.

33
Chris Anderson