Virtuoso安装

  • 一、Virtuoso简介
  • 二、Virtuoso下载
  • 三、Virtuoso安装与启动
    • 1. 在当前用户目录新建目录`virtuoso`并进入该目录:
    • 2. 将下载好的压缩包放入此目录并解压:
    • 3. 进入`virtuoso-opensource`目录并配置:
    • 4.使用vi命令配置用户环境变量
    • 5.启动Virtuoso服务
    • 6.查看Virtuoso可视化主界面
  • 四、数据导入
    • 1.可视化界面导入数据
    • 2.命令行中`isql`语句导入数据
  • 五、其它
    • 1.virtuoso.ini设置
    • 2.References

一、Virtuoso简介

(1) virtuoso数据库是一个高性能的rdf数据库,可支持百亿条三元组,支持sparql1.1语法查询。
(2) Virtuoso是一个图数据库,同时支持SparQL。

二、Virtuoso下载

开源版本的virtuoso数据库(以7.2.6为例),下载地址点击此处 ,然后下载第一个最大的压缩包即可!

三、Virtuoso安装与启动

以我的linux服务器用户目录/home/spence为例:

1. 在当前用户目录新建目录virtuoso并进入该目录:

spence@main-server-8:~$ mkdir virtuoso
spence@main-server-8:~$ cd virtuoso
spence@main-server-8:~/virtuoso$

2. 将下载好的压缩包放入此目录并解压:

spence@main-server-8:~/virtuoso$ tar -zxvf virtuoso-opensource.x86_64-generic_glibc25-linux-gnu.tar.gz

解压成功后目录内容如下:

3. 进入virtuoso-opensource目录并配置:

进入virtuoso-opensource/database/目录:

spence@main-server-8:~/virtuoso$ cd virtuoso-opensource/database/

复制并重命名virtuoso.ini.samplevirtuoso.ini

spence@main-server-8:~/virtuoso/virtuoso-opensource/database$ cp virtuoso.ini.sample virtuoso.ini

4.使用vi命令配置用户环境变量

spence@main-server-8:~/virtuoso/virtuoso-opensource/database$ vi ~/.bashrc

然后加入以下语句,记得更改语句中用户路径为你自己的用户路径,即语句中的/home/spence

export VIRTUOSO_HOME=/home/spence/virtuoso/virtuoso-opensource
export PATH=.:${VIRTUOSO_HOME}/bin:$PATH

保存后退出,然后使用以下命令使环境变量配置生效:

spence@main-server-8:~/virtuoso/virtuoso-opensource/database$ source ~/.bashrc

5.启动Virtuoso服务

为了启动Virtuoso之后我们仍然能进行其它操作,此处我使用screen命令新开虚拟窗口,你也可以使用其它命令诸如nohup命令使得Virtuoso服务在后台运行。

spence@main-server-8:~/virtuoso/virtuoso-opensource/database$ screen -S vir

然后启动Virtuoso服务:

spence@main-server-8:~/virtuoso/virtuoso-opensource/database$ virtuoso-t -fd

出现以下内容说明服务启动成功!


*从日志信息可以看出此时服务运行于默认的8890端口(你也可以在前面的virtuoso.ini配置文件中设置运行端口)

服务启动后,你可以使用快捷键ctrl-A + ctrl-D返回主窗口(screen)进行其它操作。

6.查看Virtuoso可视化主界面

在本地打开浏览器,以Chrome浏览器为例,在浏览器url栏输入:服务器IP:8890即可,以我的服务器IP为10.10.10.8为例:


看到这个界面的话,恭喜你,你成功配置并启动了Virtuoso服务!

四、数据导入

当然,对于我们使用Virtuoso数据库的开发者、研究者而言,只安装没什么稀奇的。接下来才是重头戏,我们需要把我们自己的数据导入到该数据库,并使用SparQL语句实现数据的查询。
(1) 注意,接下来的数据文件我均使用*.nt文件作为示例,其它RDF文件诸如*.ttl等导入操作相同。 以下为Virtuoso支持的数据格式:

(2) 首先,我们来看一下目前Virtuoso已有哪些Graph:点击可视化界面左上角的conductor按钮,然后使用默认账号用户名:dba 密码:dba进行登录。

(3) 登陆成功后依次点击:Linked Data -> Graphs -> Graphs 即可看到当前数据库中的所有Graphs,可以理解为图数据表,内容如下:

1.可视化界面导入数据

在这个可视化界面,我们可以直接导入数据,但前提是这个数据文件(此处为.nt文件)不能太大,如果太大的话会导入失败,亲测如此!至于多大的文件才叫‘太大’,这个就很玄学。一般来说,几个G大小的文件还是勉强可以导入的,如果更大的话,你还是使用方法2isql来进行导入吧!

(1) 点击Linked Data -> Quad Store Upload,进入如下页面即可导入数据。需要注意的是,最后一栏的Named Graph IRI你最好改成你需要的名字!(再次导入其它数据文件到这个Graph里面时,只需要保证 Named Graph IRI 一致即可

比如,我导入了一个.nt文件,在pyCharm中打开该.nt文件内容是这样的:

导入该文件至Virtuoso中,然后将Named Graph IRI命名为http://www.acemap.info,导入完成后,再次进入Linked Data -> Graphs -> Graphs界面,就可以看到自己导入的数据表了,如下:


(2) 使用SparQL语句来查询试试
新开浏览器标签并输入http://10.10.10.8:8890/sparql(再提醒一次,记得把IP改为你自己的服务器IP!这个真的很重要!!!),会出现以下查询界面:

输入我们刚刚创建的Graph IRI,我的是http://www.acemap.info,SparQL查询语句的话就限制查询100条出来吧,语句就是select * where {?x ?y ?z} LIMIT 100,然后点击下方的Run Query即可,然后就出现了神奇的一幕

至此,我们就完成了使用可视化界面导入数据的流程。但是,我们可以轻易地发现这种方式的弊端。第一个就是我在前文中所说的,太大的数据文件会导致导入数据失败;第二个,我们需要导入的数据可能是多个.nt数据文件,使用这种方法导入则耗时耗力。那么,为了解决这些问题,我们可以使用接下来的方法,使用isql进行数据的批量导入!

2.命令行中isql语句导入数据

首先是数据,在目录/home/spence/acekg_data_collection/geokg/下,我有一大堆.nt的数据文件,如下图:

回到之前的 linux 命令行中,我们使用了Ctrl-A + Ctrl-D回到主窗口(screen),当前目录为/home/spence/virtuoso/virtuoso-opensource/database

我们现在要做的就是使用isql语句把这些数据全部导入同一个 Virtuoso 数据库的Graph中,命名就为https://www.acekg.cn.

(1)修改virtuoso.ini配置文件

spence@main-server-8:~/virtuoso/virtuoso-opensource/database$ vi virtuoso.ini

把这个配置文件中的这一行的共享目录/usr/share/proj改为自己所有数据文件所在的目录,比如我的数据文件目录就是上面的/home/spence/acekg_data_collection/geokg/

修改前:

修改后:

保存后退出!
然后就是最重要的一步,重新启动virtuoso服务,一定要记住,修改过virtuoso.ini配置文件之后一定要重新启动,否则新的配置不会生效!
重启步骤如下:
1.进入screen vir

spence@main-server-8:~/virtuoso/virtuoso-opensource/database$ screen -r vir

2.使用快捷键Ctrl-C关闭virtuoso服务,然后再次启动virtuoso服务即可:

spence@main-server-8:~/virtuoso/virtuoso-opensource/database$ virtuoso-t -fd

(2) 下载vsql文件
在当前目录下新建一个vsql文件,名字随意,比如我新建了一个load.vsql文件。前往官网,将下面的代码复制并写入load.vsql文件后保存:

此时load.vsql文件内的内容如下:

(3) 启动isql
!!重要提示!!
如果你的服务器中已经安装了Anaconda环境,你还需要额外进行一步操作,将/home/spence/virtuoso/virtuoso-opensource/bin/目录下的isql重命名为isql-v,这样做的目的是避免和Anaconda中的isql出现冲突;如果你没有装Anaconda环境,那么这一步请忽略,并且后面我使用的isql-v命令你自动替换成isql命令即可!
如下:

重新命名之后,启动isql服务:

spence@main-server-8:~/virtuoso/virtuoso-opensource/database$ isql-v 1111 dba dba

运行load.vsql文件(记住,后面的分号一定要加!):

SQL> load load.vsql;

然后会出现以下结果,细心的同学可能会发现输出的日志中不是出现了好几个ERROR吗,不用担心,这不会影响导入过程,接着往下面进行即可!

(4) 导入数据

1)准备数据:
使用以下命令,第一个参数是所有.nt数据文件所在的文件路径;第二个参数是文件,我使用*.nt来通配所有的.nt文件;第三个参数是你想要使用的Graph IRI的名称,这里我使用的是https://www.acekg.cn

SQL> ld_dir_all('/home/spence/acekg_data_collection/geokg/', '*.nt', 'https://www.acekg.cn');

如果想要查看当前有哪些数据将要导入Virtuoso,可以使用以下语句查看:

SQL> SELECT * FROM DB.DBA.LOAD_LIST;

例如我即将导入的数据如下:

2)开始导入:
执行以下语句,将这些数据正式导入Virtuoso数据库:

SQL> rdf_loader_run();

然后接下来就是漫长的等待时间…

一段时间后,他终于导入完成了,提示如下:

这时在可视化界面也可以看到这个新的Graph了:

查询也可以看到数据:

3) 后续收尾工作
如果此时再次使用语句SELECT * FROM DB.DBA.LOAD_LIST;进行查询时,你会发现已经上传完成的文件仍然在上传列表中:

所以我们需要使用以下语句删除缓冲区数据,避免之后重复上传数据,这一步很重要,即使你退出了isql环境再重新进入,LOAD_LIST里面的数据也不会消失,需要你执行下面的语句才能删除:

SQL> DELETE FROM DB.DBA.LOAD_LIST;

再次执行SELECT * FROM DB.DBA.LOAD_LIST;进行查询时就发现数据已经从缓冲区删除了。

五、其它

看到这里,其实关于Virtuoso的安装和数据导入差不多就结束了。但是,Virtuoso的内容远不止于此。

1.virtuoso.ini设置

位于database文件夹下的virtuoso.ini文件是关于数据库的设置文件。主要用的就是DirsAllowed 、NumberOfBuffers 和 MaxDirtyBuffers

  • DirsAllowed是设置的允许访问的路径,如果要自己从某一个地方导入一个数据的话,要先把这个数据的位置加入到DirsAllowed里面去。
  • NumberOfBuffers 和 MaxDirtyBuffers 设置的是分配给virtuoso的内存和其他系统资源。参照下图。


假如你的的系统内存是16G,就需要把对应的NumberOfBuffers设置为1360000, MaxDirtyBuffers设置为1000000(数值设置宜小不宜大)。

2.References

  • [1] http://ws.nju.edu.cn/blog/…
  • [2] https://zhuanlan.zhihu.com/…
  • [3] http://vos.openlinksw.com/…
  • [4] https://vodkazy.cn/2018/…
  • [5] https://qa.1r1g.com/sf/…
  • [6] https://blog.csdn.net/xiaobao1981/…
  • [7] https://www.cnblogs.com/coodream2009/…
  • [8] https://bbs.huaweicloud.com/blogs/196507

如果你在安装过程中遇到任何问题,你可以在留言区告诉我,或者通过邮箱联系我,我会较快回复。

tangguo1280@163.com

Linux 服务器上安装 Virtuoso 数据库 并导入数据(超详细)相关推荐

  1. linux默认安装数据库密码是多少,Linux服务器上安装MySql数据库(默认安装,密码为空),首次使用需要修改密码(示例代码)...

    1,在/etc/my.cnf末尾  加入skip-grant-tables,保存,跳过身份验证. 2,重启MySql,使刚才修改的配置生效. 3,终端输入mysql,然后再输入use mysql; 4 ...

  2. 一台服务器可以安装多个mysql数据库_在一台Linux服务器上安装多个MySQL实例(一)--使用mysqld_multi方式...

    (一)MySQL多实例概述 实例是进程与内存的一个概述,所谓MySQL多实例,就是在服务器上启动多个相同的MySQL进程,运行在不同的端口(如3306,3307,3308),通过不同的端口对外提供服务 ...

  3. winserver下oracle好运维吗,在Windows 客户端下备份远程Linux服务器上的Oracle数据库...

    1.在Windows上安装Oracle客户端软件(比如:win32_11gR1_client版本最好跟服务器Oracle版本相同) 系统运维  www.osyunwei.com  温馨提醒:qihan ...

  4. 在 Linux 服务器上部署 oracle10gr2 数据库全过程

    在 Linux 服务器上部署 oracle10gr2 数据库全过程 最近在 Linux 系统上进行 oracle 服务器的部署,对于作者这种 Linux 菜鸟来说着实不容易,很是废了一番功夫.但最后还 ...

  5. 在linux服务器上安装Jenkins

    Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器上安装Jenkins. 一.获得一台linux服务器 要在linux下安装git,首先你得 ...

  6. 如何在 Linux 服务器上安装 Red5?

    安装 Red5 服务启动脚本下载地址         要在 Linux 服务器上安装 Red5,应该先安装 JDK 和 ANT.可以参考< 如何在 64 位 linux 机器上安装 jdk1.6 ...

  7. 在Linux服务器上安装cmake遇到的小问题

    在Linux服务器上安装cmake遇到的小问题 make install时无权限 cmake时未找到命令 正常的安装流程在这里就不写了,可以参照其他博主的详细流程 make install时无权限 报 ...

  8. 【DL】linux服务器上安装Anaconda3

    1.本地连接远程服务器 使用MobaXterm连接远程服务器 2.下载Anaconda3安装包 安装包下载地址 https://www.anaconda.com/ 因为我们要在linux服务器上安装, ...

  9. linux服务器上安装mysql

    mysql版本:mysql-5.6.44-linux-glibc2.12-x86_64.tar linux操作系统和版本信息: 1.检查linux服务器上是否已安全mysql [root@localh ...

  10. linux操作系统. 80188,Materials-Studio5.5在Linux服务器上安装与测算讨论 - 第一原理 - 小木虫 - 学术 科研 互动社区...

    前两天在实验室的服务器上安装了Materials-Studio5.5,并改写了原来的脚本进行了CASTEP测试计算,由于本人不使用MS,对Linux系统和计算机不是很熟悉,过程中出现了很多不明白的地方 ...

最新文章

  1. 惊讶!缓存刚Put再Get居然获取不到?
  2. js之字面量、对象字面量的访问、关键字in的用法
  3. 三包围结构的字是什么样的_手帐排版的高段位秘诀:运用艺术字丨大咖分享
  4. 【特征工程】与【表示学习】
  5. java主类结构设计,设计结构(1)
  6. JS正则表达式常见场景下的用法总结
  7. 从今天起,开始等待中信世界杯信用卡
  8. 制图折断线_CAD制图初学入门之CAD标注时必须要区分的两个概念
  9. 树如何找共同祖先_树的运用:求树上共同祖先LCA
  10. crawler4j源码学习(1):搜狐新闻网新闻标题采集爬虫
  11. 总结oninput、onchange与onpropertychange事件的用法和区别
  12. 图片转Excel表格 文字识别 表格识别
  13. 二维绕任意点旋转_旋转变换(一)旋转矩阵
  14. 四、Springboot 整合Shiro---02认证---记住我
  15. 2183440-33-5,Methyltetrazine-PEG8-acid在存在活化剂(如EDC或HATU)的情况下,它可用于与含胺分子共轭
  16. 六度分离 (dijkstra)
  17. 如何根据pom文件创建自己的本地仓库
  18. 下载和安装MySQL(傻瓜)教程
  19. 斑马打印机(zebraZT410R-203dpi)打印RFID标签流程
  20. AngularJS博友的笔记教程

热门文章

  1. 二维码制作教程分享,大家一起来学习吧!
  2. 服务器安卓系统安装教程,安卓系统安装到云服务器
  3. 惠普HP Deskjet F4238 多功能一体机驱动
  4. SDN控制器 之南向网络控制技术
  5. MySQL主从1205报错【转】
  6. Hadoop Failover
  7. java 实现魔兽搜索器 魔兽对战平台
  8. 虚拟机快照、迁移、删除
  9. netbeans莫明其妙的报错
  10. ARM Linux从Bootloader、kernel到filesystem启动流程