猿问

如何存储科学大(显微镜)文件?

这是问题所在:

在实验室中,会创建非常大的显微镜数据(每个文件从 1GB 到 200GB)。

我们将元数据作为 JSONS 存储在 MongoDB 中。但是我们找不到合适的本地/开源平台来存储这些文件。我们尝试过 Hadoop,但它是一个非常复杂的框架,我们不需要很多特性。我们只需要一个 BLOB / 对象存储,如果可能的话,使用 Python API 通过自建的 GUI 读取和写入数据。

已经评估过 Ceph、OpenStack Swift、OwnCloud、Gluster 等,但由于 max_limit_size_of_file 的原因,我们每个都失败了。其中许多提到的每个文件的最大限制为 5GB。

存储这些文件的最佳方式是什么?我们需要以下功能:

  • Python(和 REST)API

  • 没有最大限制大小

  • 开源/本地软件

  • 对象/Blob 存储

  • 如果可能的话,复制数据

不幸的是,出于合规性原因,云解决方案不是一种选择。


哈士奇WWW
浏览 173回答 4
4回答

慕容森

你看过OMERO吗?听起来好像它涵盖了您的大部分要求。虽然我不知道你可以用 Python API 走多远。

慕沐林林

对于此类情况,有时最好的办法是使用内置文件系统来存储您的文件。

一只萌萌小番薯

您需要保留多少个文件?具有文件共享的普通文件系统非常适合存储大型二进制数据。您可以将元数据以及目录路径存储在 mongoDB 中。您可能需要或不需要担心的一件事是您需要存储多少文件。根据我的经验,如果您要存储数千个文件,那么您需要弄清楚如何跨文件夹分发文件。如果您存储对象的哈希值,您可以创建一个函数,该函数根据哈希值计算存储文件的目录。如果您熟悉 git,这正是它存储对象的方式。

幕布斯7119047

vaex是一个用于加载大于系统内存允许的数据帧的库,如果您要使用 MongoDB 存储元数据并有一个文件名字段,并且您将拥有查询能力,同时以可用的方式将数据保存在文件系统上
随时随地看视频慕课网APP

相关分类

Python
我要回答