【发布时间】:2016-10-18 02:37:43
【问题描述】:
我正在复制我的应用程序的环境,其中一个组件是 Virtuoso RDF 数据存储。我需要做的是将整个数据库从一台主机复制到另一台主机。
我找到了these instructions,但他们承担了源的管理员权限来生成转储。我在目标主机上只有管理员权限。
有没有一种方法可以轻松地将整个源数据库复制到目标,而无需进行多次sparql 读取,或者至少使用不需要了解数据结构的简单 sparql,如果我不是管理员并且可以' t 从源头转储?
【问题讨论】:
-
这读起来很像“我想窃取某人的数据库。我该怎么做?”把它放在一边……你可以在干净的
checkpoint和shutdown之后复制virtuoso.db和virtuoso.ini。对于完整的数据库重定位,这或备份/转储/重新加载是最好的方法。如果这些真的不可能......你需要解释更多关于为什么不,以及你可以做什么,以便任何人给你有用的建议。 (ObDisclaimer:OpenLink Software 产生 Virtuoso,并雇用我。) -
我拥有对数据库的读取权限,并且在使用 sparql 查询时可以看到存储在其中的每个字节。我无权访问 db 和 ini 文件,因为我不是源的管理员。至于“窃取某人的数据库”......我想复制数据库,以便我可以在我的笔记本电脑上本地拥有它以及我的应用程序使用的其他(关系)数据库,这样我就可以在没有互联网连接的情况下使用应用程序,即在帆船上或在某个地方的树林中,并且在没有连接的情况下工作......
-
例如对于关系数据库,我只是从系统表中读取模式,在本地创建表和约束,然后导入每个表数据,然后创建外键。它适用于每个数据库。我在
Python做。我正在尝试使用 Virtuoso 进行相同的复制,希望它不会像 SQL 那样复杂,因为它本质上是一个包含 3 个字段的大表,如果我对 virtuoso 的有限理解是正确的 -
内部 RDF 存储并不像您想象的那么简单(4 列,从主题、谓词、对象、图形/上下文开始)...您找到的说明适用于完整的 Virtuoso DB 转储——不仅是 RDF,还包括所有 SQL 表、WebDAV 对象等。如果你只想要 one or multiple graphs 的 RDF 转储,你可以使用不同的工具——但这种事情通常需要用户(不一定 admin) 访问文件系统。
-
您可以通过 curl 或 Web 浏览器对 SPARQL 端点使用诸如
CONSTRUCT之类的查询,以获取各种序列化的 RDF 文件,可能提供您所追求的...但更好的是获得对当前主机的临时访问权限,或者让管理员在那里向您发送文件。
标签: replication rdf semantic-web virtuoso