用于存储大型文档的数据库

Posted

技术标签:

【中文标题】用于存储大型文档的数据库【英文标题】:Database for storing large documents 【发布时间】:2011-07-05 02:40:18 【问题描述】:

谁能推荐一个数据库解决方案来存储具有多个分支修订的大型文档?应该可以对内容进行部分编辑,而无需更新整个文档。

我正在查看 XML 数据库并想知道它们的适用性,或者甚至可能使用 DVCS(如 Mercurial)。

最好有 Python 绑定。

【问题讨论】:

定义“文档”。您指的是大块文本,还是 MS Word 等实际文件系统文档格式? 大块文本——它们都将被规范化为某种 XML 格式。 你看过alfresco.com吗? @Jared 我正在寻找可以集成到我自己的软件中的东西,而不是像企业解决方案这样的东西。 哦,好的。 Mercurial 可能是一个不错的选择,也许是 Git。化石看起来也不错。 【参考方案1】:

试试Fossil——它有一个很好的增量编码算法,并保留所有版本。它由单个 SQLite 数据库提供支持,并具有基于 Web 和命令行的 UI。

【讨论】:

Fossil 是否支持部分编辑(例如能够提取文件的一部分并将其提交回来)? 您必须提交整个新文档,但增量编码算法避免了存储库中的内容重复。 我真的不想检查整个文档,因为它们可以任意长。【参考方案2】:

这取决于您的存储行为和用例。如果您计划存储大量“文档修订版”并保留历史版本,并且可以遵守一次写入多次读取的模式,您应该研究 Hadoop HDFS 之类的东西。这需要大量(廉价)基础设施来运行您的集群,但您将能够随着时间的推移不断添加修订/数据,并且能够使用 MapReduce 算法快速查找它。

【讨论】:

可悲的是它更多的是写多读,而且写的不一定很大。

以上是关于用于存储大型文档的数据库的主要内容,如果未能解决你的问题,请参考以下文章

用于存储大型数据集的数据结构 [关闭]

内存映射文件 IList 实现,用于“在内存中”存储大型数据集?

用于 Web 应用程序的大型数据集 - 为每个查询使用 API 或本地存储在数据库中?

python中有哪些高效的数据结构来存储和处理大型数据集?

UIDocument 是具有元数据的大型文档的合适策略吗?

大型数据集上的 MongoDB 子文档查询性能