15

hbase、cassandra、couchdb、monogodbの間に根本的な違いがあるかどうか知りたかっただけですか?言い換えれば、彼らはすべてまったく同じ市場で競争し、まったく同じ問題を解決しようとしていますか?または、さまざまなシナリオに最適ですか?

これはすべて、私がいつ何を選ぶべきかという問題になります。好みの問題?

ありがとう、

フェデリコ

4

4 に答える 4

12

これらは@Bohzoからの長い回答です。(しかし、それらは良いリンクです)

真実は、彼らは「一種の」競争だということです。しかし、それらには確かに異なる長所と短所があり、すべてが同じ問題を解決するわけではありません。

たとえば、CouchとMongoはどちらも、メインパッケージの一部としてMap-Reduceエンジンを提供しています。HBaseは(基本的に)Hadoopの上のレイヤーであるため、Hadoopを介してMRを取得することもできます。Cassandraは、Key-Valueストアであることに重点を置いており、Hadoopを「レイヤー」するためのプラグインを備えています(マップリデュースが可能です)。

一部のDBは、MVCC(マルチバージョン同時実行制御)を提供します。モンゴはしません。

これらのDBはすべて水平方向に拡張することを目的としていますが、さまざまな方法で拡張します。これらのDBはすべて、さまざまな方法で柔軟性を提供しようとしています。柔軟なドキュメントサイズまたはRESTAPI、あるいは高い冗長性または使いやすさ、それらはすべて異なるトレードオフを生み出しています。

だからあなたの質問に:言い換えれば、彼らはすべてまったく同じ市場で競争し、まったく同じ問題を解決しようとしていますか?

  1. はい:彼らは皆、データベースのスケーラビリティとパフォーマンスの問題を解決しようとしています。
  2. いいえ:彼らは間違いなくさまざまなトレードオフを行っています。

何から始めるべきですか?

男、それは難しい質問です。私は大量のデータをプッシュする大企業で働いており、数年経ちました。数年前のある時点でCassandraを試しましたが、負荷を処理できませんでした。私たちはどこでもHadoopを使用していますが、それは確かに急な学習曲線を持っており、私たちの環境のいくつかではうまくいきませんでした。最近、Cassandra + Hadoopを実行しようとしましたが、多くの構成作業であることが判明しました。

個人的に、私の部門はいくつかのものをMongoDBに移動しています。これに対する私たちの理由は、正直なところ単純さです。

LinuxボックスでのMongoのセットアップには数分かかり、rootアクセスやファイルシステムへの変更などの特別なことは必要ありません。クレイジーな設定ファイルやJavaの再コンパイルは必要ありません。したがって、その観点から、Mongoは人々をKV/ドキュメントストアに誘導するための最も簡単な「ゲートウェイドラッグ」でした。

于 2010-09-06T22:17:04.173 に答える
5
  • CouchDBとMongoDBはドキュメントストアです
  • CassandraとHBaseはKey-Valueベースです

これがHBaseとCassandraの詳細な比較です。
これがMongoDBとCouchDBの(偏った)比較です。

于 2010-09-06T14:47:59.257 に答える
5

簡単な答え:本番環境で使用する前にテストしてください。

HBase(拡張)とMongoDB(開始したばかり)の両方での経験を提供できます。

同じ種類の店舗ではありませんが、同じ問題を解決します。

  • データのスケーラブルなストレージ
  • データへのランダムアクセス
  • 低遅延アクセス

最初はHBaseに非常に熱心でした。これはHadoop(堅固なもの)上に構築されており、Apacheの下にあり、アクティブです...これ以上何が欲しいですか?私たちの経験:

  • HBaseは壊れやすい
  • 管理者の悪夢(デフォルトの構成が完全ではない、不透明な構成、バージョンごとの変更など、構成設定がいっぱいです...)
  • データが失われます(X構成を設定してYを...に変更した場合を除きます...)-HBaseがクラッシュし、WALが正しくセットアップされていなかったために2時間(!!!)のデータが失われたことがわかりました
  • セカンダリインデックスがありません
  • データベースをシャットダウンせずにバックアップを実行する方法がありません

全体として、HBaseは悪夢でした。直接の競合他社以外にはお勧めしません。:)

MongoDBは、これらすべての問題とさらに多くの問題を解決します。セットアップするのは楽しいことです。それはそれを管理することを単純で透過的な仕事にし、デフォルトの構成設定は実際に理にかなっています。(ホット)バックアップを実行したり、セカンダリインデックスを作成したりできます。私が読んだことから、MongoDBでのMapReduce(JavaScript、ノードごとに1スレッドのみ)はお勧めしませんが、そのためにHadoopを使用できます。

また、HBaseと比較すると非常にアクティブです。

また: http ://www.google.com/trends?q = HBase%2CMongoDB

もっと言う必要がありますか?:)

更新:何ヶ月も後に、MongoDBがすべてのアカウントなどで配信されたと言わなければなりません。唯一の本当の欠点は、ホスティング会社がMySQLを提供する方法でそれを提供しないことです。;)また、MapReduceは2.2でマルチスレッドになるようにバインドされているようです。それでも、私はこのようにMRを使用しません。YMMV。

于 2011-07-29T09:35:25.893 に答える
1

Cassandraはデータの書き込みに適しています。「書き込みが失敗することはない」という利点があります。単一障害点はありません。

HBaseはデータ処理に非常に適しています。HBaseはHadoopファイルシステム(HDFS)に基づいているため、HBaseはデータの複製やデータの一貫性について心配する必要はありません。HBaseには単一障害点があります。単一障害点がある場合、それが何を意味するのかはよくわかりません。単一障害点があるRDBMSに似ています。私はまったく新しいので、意味が間違っているかもしれません。

How abou RIAK ? Does someone has experience using RIAK. I red some where that you need to pay, I am not sure. Need explanation.

One more thing which one you will prefer to use when you are only concern to reading a lot of data. You don't have any concern with writing. Just imagine you have database with pitabyte and you want to make fast search which NOSQL database would you prefer ?

于 2012-03-22T16:05:18.660 に答える