NoSQL 数据库和许多半大型 Blob

Posted

技术标签:

【中文标题】NoSQL 数据库和许多半大型 Blob【英文标题】:NoSQL database and many semi-large blobs 【发布时间】:2011-04-30 00:07:59 【问题描述】:

是否有适合存储大量(即 >10 亿)“中型”blob(即 20 KB 到 2 MB)的 NoSQL(或其他类型)数据库。我所需要的只是从 A(标识符)到 B(blob)的映射、给定 A 检索“B”的能力、用于访问的一致外部 API 以及“只需添加另一台计算机”以扩展系统的能力.

比数据库更简单的东西,例如一个分布式的键值系统,可能很好,我也很感激任何关于这种思路的想法。

感谢您的阅读。

布赖恩

【问题讨论】:

【参考方案1】:

您还想看看Riak。 Riak 非常专注于完全按照您的要求去做(只需添加节点,易于访问)。

【讨论】:

【参考方案2】:

如果您的 API 要求纯粹是“Get(key)、Put(key,blob)、Remove(key)”,那么键值存储(或更准确地说是“持久分布式哈希表”)是正是您正在寻找的东西。

其中有不少可用,但如果没有其他信息,很难做出可靠的推荐 - 您的目标是什么操作系统?您正在使用哪种语言进行开发?您的应用程序的 I/O 特征是什么(冷数据/不可变数据,例如图像?高写入负载又称为推文?)

一些值得研究的 KV 系统: - MemcacheDB - Berkeley DB - Voldemort

您可能还想查看CouchDB 或RavenDB* 等文档存储。文档存储类似于 KV 存储,但它们了解持久性格式(通常是 JSON),因此它们可以提供额外的服务,例如索引。

如果您使用 .Net 进行开发,请直接跳到 RavenDB(稍后您会感谢我的)

【讨论】:

谢谢,Addys - 这很有帮助。至于更多信息,以下是当前目标: 操作系统:Linux/BSD;语言:Python; I/O:一次写入,多次读取。【参考方案3】:

Jackrabbit 呢?

Apache Jackrabbit™ 是一个完全 符合执行 Java 技术的内容存储库 API(JCR,在 JSR 170 和 283)。

内容存储库是分层的 支持的内容存储 结构化和非结构化内容, 全文搜索,版本控制, 交易、观察等。

我在使用 Liferay CMS 时认识 Jackrabbit。 Liferay 使用 Jackrabbit 来实现其Document Library。它将用户文件存储在服务器的文件系统中。

【讨论】:

以上是关于NoSQL 数据库和许多半大型 Blob的主要内容,如果未能解决你的问题,请参考以下文章

大型数据存储(nosql 与否)

SharePoint 2013 使用 RBS 功能将二进制大型对象 BLOB 存储在内容数据库外部。

NoSQL 数据库MongoDB详解

NoSQL数据库简介

究竟哪种NoSQL数据库适合你?

NoSQL 已死:我们不需要他了