web-dev-qa-db-ja.com

CassandraとCouchDBの違いは何ですか?

私は両方のプロジェクトを見ていますが、実際には違いを見ることができません

from Cassandraサイト:

Cassandraは、非常にスケーラブルで、最終的に一貫した、分散された、構造化されたキーバリューストアです... Cassandraは、最終的に一貫しています。 BigTableと同様、Cassandra=は、典型的なキー/値システムよりも豊富なColumnFamilyベースのデータモデルを提供します。

couchDBサイトから:

Apache CouchDBは、RESTful HTTP/JSON APIを介してアクセス可能な、分散型でフォールトトレラントでスキーマフリーのドキュメント指向データベースです。

とはいえ、各プロジェクトの具体的な違いは次のとおりです。アクセス方法、記述言語など。ただし、 [〜#〜] solr [〜#〜] または Sphinx あなたは両方とも大きな違いがあるインデクサーであることを知っていますが、最後はインデクサーです。

ここで、CassandraとCouchDBは非リレーショナルデータベースであり、場合によっては一方を他方に置き換えることができますか?

75
Gabriel Sosa

CouchDBはドキュメントストアです。その中にドキュメント(JSONオブジェクト)を配置し、それらの上にビュー(インデックス)を定義します。オブジェクトは、潜在的に深い構造を持つ任意の複雑なものにすることができます。さらに、それらは一貫したスキーマに従うことに制約されません。

Cassandraは、不規則テーブルのキーと値のストアです。行を保存するだけで、各行には値を持つファミリにグループ化された名前付き列のセットがあります。 BigTableに非常に近いように聞こえます。 BigTableでは、各行が同じ構造である必要はありません(SQLデータベースとは異なります)。値には何らかの構造があるかもしれませんが、この種のストアはそれについて何も知りません-それらは単なる文字列/バイトシーケンスです。

はい、どちらも非リレーショナルデータベースであり、その適用性にはおそらくかなりの量の重複がありますが、明らかに異なるデータ構成モデルがあります。各モデルはおそらく他のモデルをエミュレートすることを余儀なくされる可能性がありますが、各モデルはさまざまな問題に最適にマッピングされます。

74

CouchDBには、非常に少数のオープンソースデータベーステクノロジーに存在する機能、オフラインレプリケーションがあります。 CouchDBは、ネットワークのエッジでアプリケーションを実行できるように設計されています。これらのアプリケーションは、インターネット接続が失敗した場合でも利用できます。

オフラインレプリケーションを利用して大規模なクラスターを構築することもできますが、CouchDBは、単一サーバー、データセンター、さらにはスマートフォンで実行されている場合でも、堅牢でシンプルになるように設計されています。

33
Chris Anderson