filepath@data 数据类型的 datajoint-matlab 实现

问题描述

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

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

解决方法

此处为 DataJoint 的维护器。看起来有点混乱,所以让我们看看我是否可以帮助澄清一些问题。希望将此讨论用作改进文档的资源。

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

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

  • blob:等效于 blob 类型,但用于外部商店。目前,datajoint-python 和最近的 datajoint-matlab 均支持此类型。
  • attach:一种特殊类型,将文件内容捕获为二进制信息,但不保留任何路径信息。目前,此类型仅在 datajoint-python 中受支持。 File Attachment Datatype 部分提供了此类型的文档。
  • filepath:一种特殊类型,将文件内容捕获为二进制信息并包括路径(连同文件名)详细信息。目前,此类型在 datajoint-python 中处于预览状态,需要启用它。 Filepath Datatype 部分中提供了此类型的文档。请参阅文档中的注释以启用它。

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

商店目前支持 2 种协议:

您提到的问题 #143 和 PR 的 #197#327 是指为 {{1} 实施 files3 商店的努力DataJoint MATLAB 中的数据类型。在我们支持 DataJoint MATLAB 中的其他 2 种数据类型之前,您遇到的错误是预料之中的,并且是一个简单的占位符。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...