2012-12-13 56 views
3

如果我想存储大量文件+复制数据库,什么NoSql数据库将是这种工作最好的?MongoDB/CouchDB用于存储文件+复制?

我正在测试MongoDB和CouchDB,这些数据库非常好用,易于使用。如果有可能,我会用其中一个来存储文件。现在我看到了Mongo和Couch之间的区别,但我无法解释哪一个更适合存储文件。如果我在谈论存储文件,我的意思是10-50MB的文件,但也可能是50-500MB的文件 - 也许很多更新。

我发现这里一个不错的表:

enter image description here

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

还是不确定哪些属性是最好的filestoring和复制。但也许我应该选择另一个NoSQL数据库?

回答

5

该表的方式过时了:

  • 主从复制,取而代之的副本集已弃用对于初学者,也一致性是错误的那里。您需要完全重读MongoDB文档的这一部分。
  • Map/Reduce只是JavaScript,没有其​​他的。
  • 我不知道附件中的表格是什么意思,但GridFS是内置于驱动程序中的存储标准,可帮助您更轻松地在MongoDB中存储大文件。元数据也通过这种方法得到支持。
  • MongoDB在2.2版本上,所以它之前提到的任何版本现在已经过时(即分片和单服务器耐久性)。

我没有用CouchDBs接口存储文件的个人经验,但是如果两者之间几乎没有任何区别,我不会感到惊讶。我认为这部分对我们来说太过主观,我们不能回答,你只需要选择哪一套更好。

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

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

然而,据说S3在这里是非常有效的选择,我会认真试一试,你可能不会在内容网络中寻找和我一样的东西。

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

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

+0

感谢您的信息。 NoSql是亚马逊用于S3/DynamoDB的什么?如果它对文件存储有好处,也许这将是另一种选择(使用他们的数据库)。或者下一个类似的NoSql到S3/DynamoDB是什么? – silla

+1

我不确定他们在S3后面使用的技术我认为他们使用高IOP文件系统服务器作为一个集群在数据中心的单个子区域内集群(即没有弗吉尼亚州区域存在只有美国存储桶)prolly优化专用SSD支持。他们可能会使用数据库来跟踪文件段,但我不确定它背后的技术。我相信Dynamo是他们自己的技术,就像Facebook创建的Cassandra一样,我认为它是有限的,如果它允许的话,它对于文件存储来说是相当昂贵的,并且对于某些文件的需求可能太慢。 – Sammaye

2

您是否将Amazon S3视为选项?它是高度可用的,已证明和有冗余存储等...

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

我不能真正在MongoDB上提交,因为我还没有使用它,但是,如果文件存储是您最关心的问题,那么请查看S3和类似文件,因为它们完全集中在filestorage上。

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

+0

我很高兴,这里有一些CouchDB人也:)有点MongoDB是统治Stackoverflow。但是,将元数据存储到CouchDB +将文件存储到S3中是个好主意。它可能很棘手,也许复制的东西不会那么容易。 – silla

3

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

这是一个无限节点具有冗余和复制的文件存储。基本上你自己的S3支持很多不同的硬件和尺寸。它使用REST HTTP PUT/GET/DELETE等,非常容易使用。非常快,非常强大。

CBFS在Github上https://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

联系我,如果你有任何问题,我可以帮你联系。

+0

这是必读!谢谢 :) – silla

相关问题