要拥有包含图像和视频的大型数据集,我想使用 Apache Xindice。Apache Xindece 的 WWW 上的教程和指南很少。如何在 Apache Xindice 中存储图像和视频文件?Apache Xindice 是否适合处理大量数据?是否有任何最新的存储库可以存储大量 XML 格式的数据(不是 SQL 类型的数据库。应该保存 TB 大小的数据)?我可以使用 MongoDB 来存储大型数据集吗?
1 回答
我建议使用 GridFS 文件系统将外部文档(图像/视频、XML 文件)存储在 MongoDB 中。GirdFS 集合由两部分组成:块集合(存储二进制数据)和文件集合(保存有关文件的信息,包括客户定义的元数据)。从常见问题解答:
在某些情况下,在 MongoDB 数据库中存储大文件可能比在系统级文件系统中更有效。
如果您的文件系统限制了目录中的文件数量,您可以使用 GridFS 存储所需数量的文件。当您希望在多个系统和设施中自动同步和部署文件和元数据时。
当使用地理分布的副本集时,MongoDB 可以自动将文件及其元数据分发到多个 mongod 实例并提供便利。
当您想从大文件的一部分中访问信息而不必将整个文件加载到内存中时,您可以使用 GridFS 来调用文件的部分而不将整个文件读入内存。
对于大型数据集,可以对 GridFS 进行分片(参见http://docs.mongodb.org/manual/core/sharded-cluster-internals/#sharding-gridfs-stores)。
为了快速交付 GridFS 数据,有适用于 ngnix ( ngnix-gridfs ) 和 Apache ( mod_gridfs ) 的模块。另请参阅http://nosql.mypopescu.com/post/28085493064/mongodb-gridfs-over-http-with-mod-gridfs进行快速比较