对于datajoint-matlab,#327似乎表明文件外部存储(#143,PR #197)应该在当前版本中实现。在定义存储'data‘之后,我可以创建一个数据类型为filepath@data的表,但在insert时出现错误。
Error using dj.Relvar/insert/makePlaceholder (line 244)
The field `fref` with datatype `filepath@data` is not yet supported.
Error in dj.Relvar/insert (line 334)
[v, placeholder] = makePlaceholder(i,
tuple.(header.attributes(i).name));这是仍然没有实现,还是这里的错误检查只是阻止我使用它?如果需要的话,我很乐意提供更多关于测试的细节。
发布于 2021-03-26 10:53:19
DataJoint的维护者在这里。看起来有点混乱,所以让我们看看我是否可以帮助带来一些澄清。希望将此讨论作为改进文档的资源。
DataJoint提供了一些DataJoint-only datatypes。在这些类型中,我们通过嵌入@符号来识别与外部存储相关联的类型。我们将该类型的每个部分归类为<datatype>@<store>。本质上,使用这些类型,信息(即datatype)被远程存储在对象存储(即store)中,并且在关系数据库内具有适当的引用链接以及用于访问的客户端配置。
对于datatype,目前有3个选项:
等同于blob类型但用于外部存储区的
blob:。目前,在datajoint-python和最近的datajoint-matlab.attach:中都支持此类型一种特殊类型,它将文件内容捕获为二进制信息,但不保留任何路径信息。目前只有datajoint-python支持此类型。在section.filepath:File Attachment Datatype中提供了适用于此类型的文档。Documentation是一种特殊类型,可将文件内容捕获为二进制信息,并包含路径(以及文件名)详细信息。目前,此类型在datajoint-python中处于预览状态,需要启用它。有关此类型的文档,请参阅Filepath Datatype部分。请参阅文档中的注释以启用它。对于store,文档中有一个External Store部分。可以将多个存储配置为位于dj.config中stores密钥下的映射。有关MATLAB的示例,请参阅help('dj.config');在Python中,请参阅上面有关attach和filepath的文档。
商店目前支持2种协议:
s3:将对象存储在S3存储桶中。目前,在datajoint-matlab.file:和datajoint-python中都支持此存储将文件存储在可通过客户端上的文件系统访问的目录中。目前,在datajoint-matlab.和datajoint-python中都支持此存储
你提到的#143和PR's #197,#327指的是在DataJoint MATLAB中为blob数据类型实现file,s3存储的努力。您遇到的错误是意料之中的,只是一个简单的占位符,直到我们在DataJoint MATLAB中支持其他两种数据类型。
https://stackoverflow.com/questions/66809421
复制相似问题