3

如果我想存储大量文件 + 复制数据库,什么 NoSql 数据库最适合这种工作?

我正在测试 MongoDB 和 CouchDB,这些 DB 非常好用且易于使用。如果可能的话,我会使用其中之一来存储文件。现在我看到了 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 界面没有个人经验,但是如果两者之间几乎没有任何区别,我不会感到惊讶。我认为这部分太主观了,我们无法回答,您只需要选择哪个更适合您。

实际上可以构建多区域的 MongoDB 集群(S3 存储桶没有也不能在没有工作的情况下复制),并通过 MongoDB 将世界特定地区访问最多的文件复制到这些集群。

我的意思是我有时发现的主要结果是 MongoDB 可以像 S3 和 Cloudfront 放在一起,这很棒,因为您拥有冗余存储和分发数据的能力。

但是,据说 S3 在这里是非常有效的选择,我会认真尝试一下,您可能不会在内容网络中寻找与我相同的东西。

文件的数据库存储并非没有严重的缺点,但是速度在这里不应该是一个大问题,因为您应该从没有 Cloudfront 前端的 S3 获得与从 MongoDB 获得的速度相同的速度(记住 S3 是一个冗余存储网络,而不是 CDN)。

如果您要使用 S3,您将在数据库中存储一行,该行指向该文件并包含有关它的元数据。

于 2012-12-13T23:36:22.903 回答
3

Dustin Sallings(Couchbase 的创始人之一,spymemcached 的创建者和 memcached 的核心贡献者)和 Marty Schoch 有一个名为 CBFS 的项目,它使用 Couchbase 和 Go。

它是具有冗余和复制功能的无限节点文件存储。基本上你自己的 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

您是否考虑过将 Amazon S3 作为一种选择?它高度可用,经过验证并具有冗余存储等......

CouchDB,尽管我个人非常喜欢它,因为它与 node.js 配合得非常好,但如果你不想浪费太多磁盘空间,你需要定期压缩它。在您的情况下,如果您要对相同的文档进行大量更新,那可能是一个问题。

我无法对 MongoDB 发表评论,因为我没有使用过它,但同样,如果文件存储是您主要关心的问题,那么看看 S3 和类似的东西,因为它们完全专注于文件存储。

您可以将两者结合起来,将元数据存储在 NoSql 或 Sql 数据存储中,将实际文件存储在单独的文件存储中,但保持这两个存储同步和复制可能会很棘手。

于 2012-12-13T23:10:12.820 回答