2012-02-25 91 views
0

在网上免费提供高度可扩展的基于磁盘的NoSQL存储系统吗? SQL Server的好处在于它可以扩展,但将项目迁移到SQL表中是一场噩梦,因为它是所有对象?基于磁盘的文档存储

的选项是:从内存 2.序列化文档 3.转换 1.运行至到SQL 4.使用大型NoSQL数据存储

+0

大多数NoSQL都是基于磁盘的。像Azure Table Storage,非常好。但是,没有免费的一个 – 2012-02-25 10:25:37

+0

我不认为有免费的允许你存储海量数据(我记得S3可能免费存储少量数据),也许你可以使用像DropBox这样的文件托管服务,然后索引你的密钥在SQL Server中 – 2012-02-25 10:26:49

+2

“关于SQL Server的好处在于它可以扩展“ - 真的吗?!事实上,情况完全相反。 – 2012-02-25 10:27:01

回答

3

MongoDB是基于磁盘的,当然,这将有利于来自(大量)内存。它是开放源代码和免费的,它使用分片和复制从一台机器扩展到数千台机器。

您可以download it并在本地运行它,或者您可以使用其中一个free hosted solutions

0

在开源许可证(GPL或Apache)上提供了很多NoSQL选项。在搜索过程中,我遇到了这个listing,它以公平的方式给出了一些选项的功能比较。

如果你必须拥有一个受支持的C#客户端,你会受到一些限制,但我会研究MongoDB和Redis,因为我在过去使用它们的结果很好。

1

在过去的几周里,我一直在处理同一个问题;这里是我的观察:

  1. SQL Server的工作原理,但不能很好地扩展。我们测试了大约600GB文件的SQL Server数据库,让我们说事情变得非常缓慢。
  2. 或多或少与MySQL相同...两者都不是真的用于文档...
  3. Hadoop/HDFS在Windows上似乎不成熟。虽然微软有一个HDFS实现可用,但它仍处于RC阶段。从积极的方面来看,如果你正在为未来发展(比如说1年到产品),这似乎是一个不错的选择。
  4. Apache Cassandra似乎成熟了。在积极的方面,实施非常简单;也就是说:它基本上只是一个普通的分布式键值存储和一个分区器,其中键和值都是byte []。但是,实施的简单性也意味着您需要解决各种问题。如果你已经使用了它,你就会知道如果你需要实现Twitter,这很棒,但对于其他任何东西都太简单了。它的规模很好,但说实话我对这个表现并不是很满意。此外,我遇到了一些数据不一致/损坏,这并没有真正温暖我的心......如果您使用Cassandra,我会亲自使用Aquiles作为客户端(因为您会很容易地遇到低级别的东西) - 但FluentCandandra也是一个很好的客户。
  5. MongoDB也相当成熟。积极的一面是,它非常活跃,并且具有非常好的易用性(与Cassandra不同)C#客户端库。此外,虽然碎片服务器在我的集群上崩溃了几次,但恢复总是能够做到这一点(并且我对重新启动并不太礼貌:-)并且我遇到的所有问题似乎都已经在开发分支中解决了 - 所以我对此不感到不舒服。 MongoDB和Cassandra缺乏的最重要的功能是支持二级索引。

所有这些解决方案都是基于磁盘的(例如磁盘上的持久性)。

我查看了3-5代码,并在过去几年(大约6年前)实施了我们自己的NoSQL解决方案,这些解决方案在过去几年中一直用于数据存储。说实话,MongoDB是我自己实现它的方式。

为了完整性:我还没有尝试过的唯一东西是CouchDB ...但坦率地说,我对MongoDB非常满意,我甚至不打扰。

-Stefan。