0

对于 datajoint-matlab,#327 似乎表明文件外部存储(#143,PR #197)应该在当前版本中实现。在定义存储“数据”后,我可以创建一个数据类型为 filepath@data 的表,但插入时出现错误。

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));

这仍然没有实现,还是这里的错误检查只是阻止我使用它?如果需要,很高兴提供有关测试的更多详细信息。

4

1 回答 1

2

DataJoint 的维护者在这里。看起来有点混乱,所以让我们看看我是否可以帮助澄清一下。希望将此讨论用作改进文档的资源。

DataJoint 提供了一些DataJoint-only 数据类型@在这些类型中,我们通过嵌入符号来识别与外部存储相关的类型。我们将类型的每个部分分类为<datatype>@<store>。本质上,对于这些类型,信息(即datatype)远程存储在对象存储(即 a store)中,并在关系数据库和客户端配置中具有适当的参考链接以供访问。

对于datatype,目前有 3 个选项:

  • blob:等价于一个blob类型,但用于外部存储。目前,在datajoint-python和最近的datajoint-matlab中都支持这种类型。
  • attach: 一种特殊类型,将文件内容捕获为二进制信息,但不保留任何路径信息。目前,仅datajoint-python支持此类型。文件附件数据类型部分提供了此类型的文档。
  • filepath:一种特殊类型,将文件内容捕获为二进制信息并包括路径(以及文件名)详细信息。目前,此类型在datajoint-python中处于预览状态,需要启用它。文件路径数据类型部分中提供了此类型的文档。请参阅文档中的注释以启用它。

对于store,文档中有一个外部存储部分。可以将多个商店配置为位于storesin 键下的映射dj.config。对于 MATLAB,请参阅示例,在 Python 中,help('dj.config')请参阅以上文档。attachfilepath

商店目前支持 2 种协议:

您提到的问题#143和 PR 的#197#327是指在 DataJoint MATLAB 中实现数据类型的file存储s3blob在我们支持 DataJoint MATLAB 中的其他 2 种数据类型之前,您遇到的错误是预期的并且是一个简单的占位符。

于 2021-03-26T02:53:19.430 回答