这里是问题:
在实验室中,创建了非常大的显微镜数据(每个文件从1GB到200GB)。
我们将元数据以JSONS的形式存储在MongoDB中。但是我们找不到合适的本地/开源平台来存储这些文件。我们已经尝试了Hadoop,但是它是一个非常复杂的框架,我们不需要很多功能。我们只需要一个BLOB /对象存储,如果可能的话,就可以使用Python API通过自建的GUI读取和写入数据。
已经对Ceph,OpenStack Swift,OwnCloud,Gluster等进行了评估,但是由于max_limit_size_of_file,我们对每个评估都失败了。其中提到的许多文件每个文件的最大限制为5GB。
存储这些文件的最佳方法是什么?我们需要以下功能:
很遗憾,出于合规性原因,无法选择云解决方案。
您看过OMERO吗?听起来好像满足了您的大多数要求。尽管我不知道Python API可以走多远。
对于这种情况,有时最好的办法是使用内置的文件系统来存储文件。
您需要保留多少文件?具有文件共享的纯文件系统非常适合存储大型二进制数据。您可以将元数据以及目录路径存储在mongoDB中。
您可能需要担心或不需要担心的一件事是需要存储多少文件。以我的经验,如果要存储数千个文件,则需要确定如何在文件夹中分发文件。如果存储对象的哈希,则可以创建一个函数,该函数根据哈希计算要存储文件的目录。如果您熟悉git,这正是它存储对象的方式。
vaex是一个用于在大于系统内存的数据帧中加载的库,如果您要将元数据存储在MongoDB中,并有一个文件名字段,并且您具有查询能力,同时将数据保留在文件系统中可用的方法