3

たくさんのファイルを保存してdbを複製したい場合、この種のジョブに最適なNoSqlデータベースはどれですか?

私はMongoDBとCouchDBをテストしていましたが、これらのDBは本当に素晴らしく使いやすいです。可能であれば、そのうちの1つをファイルの保存に使用します。MongoとCouchの違いはわかりましたが、ファイルの保存にどちらが適しているかは説明できません。そして、私がファイルの保存について話している場合、私は10-50MBのファイルだけでなく、おそらく50-500MBのファイルを意味します-そしておそらく多くの更新。

私はここで素敵なテーブルを見つけました:

ここに画像の説明を入力してください

http://weblogs.asp.net/britchie/archive/2010/08/17/document-databases-compared-mongodb-couchdb-and-ravendb.aspx

これらのプロパティのどれがファイルの保存と複製に最適かはまだわかりません。しかし、多分私は別のNoSql DBを選択する必要がありますか?

4

3 に答える 3

5

そのテーブルはかなり時代遅れです:

  • マスタースレーブレプリケーションは廃止され、スターター用のレプリカセットが採用されました。また、整合性も間違っています。MongoDBドキュメントのこのセクションを完全に読み直してください。
  • Map / ReduceはJavaScriptのみであり、他にはありません。
  • そのテーブルが添付ファイルで何を意味するのかわかりませんが、GridFSは、MongoDBに大きなファイルを簡単に保存できるようにするためにドライバーに組み込まれているストレージ標準です。メタデータもこの方法でサポートされます。
  • MongoDBはバージョン2.2であるため、以前のバージョンについて言及しているものはすべて廃止されました(つまり、シャーディングと単一サーバーの耐久性)。

私はファイルを保存するためのCouchDBsインターフェースの個人的な経験はありませんが、2つの間にほとんど違いがなくても驚かないでしょう。この部分は私たちが答えるには主観的すぎると思います。あなたはどちらが自分に合っているかを決める必要があります。

実際には、MongoDBクラスターをマルチリージョンで構築し(S3バケットは、作業なしでは複製できず、複製できません)、MongoDBを介して世界の特定の地域で最もアクセスされたファイルをこれらのクラスターに複製することができます。

私が時々見つけた主な結果は、MongoDBがS3とCloudfrontを組み合わせたように機能できることです。これは、冗長ストレージとデータを分散する機能があるので素晴らしいことです。

ただし、ここではS3が非常に有効なオプションであると言われているので、真剣に試してみます。コンテンツネットワークで私と同じものを探しているとは限りません。

ファイルのデータベースストレージには深刻な欠点がありますが、MongoDBから実際に取得するのと同じ速度をCloudfrontフロントのS3から取得する必要があるため、速度はここでは大きな問題にはなりません(S3は冗長ストレージネットワークであることを忘れないでください) 、CDNではありません)。

S3を使用する場合は、ファイルを指し、そのファイルに関するメタデータを格納する行をデータベースに保存します。

于 2012-12-13T23:36:22.903 に答える
3

Dustin Sallings(Couchbaseの創設者の1人であり、spymemcachedの作成者であり、memcachedの主要な貢献者)と、CouchbaseとGoを使用するMartySchochによるCBFSというプロジェクトがあります。

これは、冗長性とレプリケーションを備えた無限ノードのファイルストアです。基本的に、さまざまなハードウェアとサイズをサポートする独自のS3です。REST HTTP PUT / GET/DELETEなどを使用しているのでとても使いやすいです。非常に速く、非常に強力です。

Github上のCBFShttps ://github.com/couchbaselabs/cbfs

プロトコルhttps ://github.com/couchbaselabs/cbfs/wiki/Protocol

ブログ投稿http ://dustin.github.com/2012/09/27/cbfs.html

多様なハードウェアhttps ://plus.google.com/105229686595945792364/posts/9joBgjEt5PB

その他のクールなビジュアル

http://www.youtube.com/watch?v=GiFMVfrNma8

http://www.youtube.com/watch?v=033iKVvrmcQ

ご不明な点がございましたら、お気軽にお問い合わせください。

于 2012-12-17T23:07:40.960 に答える
2

オプションとしてAmazonS3を検討しましたか?高可用性、実績があり、冗長ストレージなどがあります。

CouchDBは、node.jsで非常にうまく機能するため、個人的には非常に気に入っていますが、ディスクスペースをあまり浪費したくない場合は、定期的に圧縮する必要があるという欠点があります。あなたの場合、同じドキュメントに対して多くの更新を行う場合は、それが問題になる可能性があります。

MongoDBを使用したことがないので、実際にコメントすることはできませんが、ファイルストレージが主な関心事である場合は、ファイルストレージに完全に焦点を当てているS3などを見てください。

メタデータをNoSqlまたはSqlデータストアに保存し、実際のファイルを別のファイルストアに保存する2つを組み合わせることができますが、これら2つのストアの同期と複製を維持するのは難しい場合があります。

于 2012-12-13T23:10:12.820 に答える