Was ist der Unterschied zwischen Cassandra und CouchDB?

76

Ich schaue mir beide Projekte an und kann den Unterschied nicht wirklich erkennen

von Cassandra Site:

Cassandra ist ein hoch skalierbarer, letztendlich konsistenter, verteilter, strukturierter Schlüsselwertspeicher ... Cassandra ist schließlich konsistent. Wie BigTable bietet Cassandra ein ColumnFamily-basiertes Datenmodell, das umfangreicher ist als typische Schlüssel- / Wertesysteme.

von der CouchDB Site:

Apache CouchDB ist eine verteilte, fehlertolerante und schemafreie dokumentenorientierte Datenbank, auf die über eine RESTful HTTP / JSON-API zugegriffen werden kann.

Trotzdem sehe ich die spezifischen Unterschiede zwischen den einzelnen Projekten als: Zugriffsmethoden, geschriebene Sprachen usw., aber um ein Beispiel zu nennen, wenn Sie über SOLR oder sprechen Sphinx , wissen Sie, dass beide Indexer mit großen Unterschieden sind, aber am Ende sind es Indexer.

Kann ich hier sagen, dass Cassandra und CouchDB nicht relationale Datenbanken sind, die in einigen Fällen die andere ersetzen können?

Gabriel Sosa
quelle

Antworten:

79

CouchDB ist ein Dokumentenspeicher. Sie legen Dokumente (JSON-Objekte) darin ab und definieren Ansichten (Indizes) darüber. Die Objekte können beliebig komplex mit potenziell tiefer Struktur sein. Darüber hinaus sind sie nicht darauf beschränkt, einem konsistenten Schema zu folgen.

Cassandra ist ein Schlüsselwertspeicher mit zerlumpten Tabellen. Es werden nur Zeilen gespeichert, von denen jede eine Reihe benannter Spalten enthält, die in Familien mit Werten gruppiert sind. Es klingt ziemlich nah an BigTable; Bei BigTable muss nicht jede Zeile dieselbe Struktur haben (im Gegensatz zu einer SQL-Datenbank). Die Werte mögen eine gewisse Struktur haben, aber diese Art von Speicher weiß nichts darüber - sie sind nur Zeichenfolgen / Byte-Sequenzen.

Ja, beide sind nicht relationale Datenbanken, und ihre Anwendbarkeit überschneidet sich wahrscheinlich ziemlich stark, aber sie haben deutlich unterschiedliche Datenorganisationsmodelle. Jeder kann wahrscheinlich gezwungen werden, den anderen zu emulieren, aber jedes Modell wird am besten einer anderen Reihe von Problemen zugeordnet.

Michael Ekstrand
quelle
34

CouchDB verfügt über eine Funktion, die in sehr wenigen Open-Source-Datenbanktechnologien vorhanden ist: die Offline-Replikation. CouchDB ist so konzipiert, dass Anwendungen am Rand des Netzwerks ausgeführt werden können. Diese Anwendungen sind auch dann verfügbar, wenn die Internetverbindung ausfällt.

Die Offline-Replikation kann auch zum Erstellen großer Cluster genutzt werden. CouchDB ist jedoch robust und einfach, unabhängig davon, ob es auf einem einzelnen Server, einem Rechenzentrum oder sogar einem Smartphone ausgeführt wird.

Chris Anderson
quelle