Linux 服务器上安装 Virtuoso 数据库 并导入数据(超详细)
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.sample
为virtuoso.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大小的文件还是勉强可以导入的,如果更大的话,你还是使用方法2的isql
来进行导入吧!
(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 数据库 并导入数据(超详细)相关推荐
- linux默认安装数据库密码是多少,Linux服务器上安装MySql数据库(默认安装,密码为空),首次使用需要修改密码(示例代码)...
1,在/etc/my.cnf末尾 加入skip-grant-tables,保存,跳过身份验证. 2,重启MySql,使刚才修改的配置生效. 3,终端输入mysql,然后再输入use mysql; 4 ...
- 一台服务器可以安装多个mysql数据库_在一台Linux服务器上安装多个MySQL实例(一)--使用mysqld_multi方式...
(一)MySQL多实例概述 实例是进程与内存的一个概述,所谓MySQL多实例,就是在服务器上启动多个相同的MySQL进程,运行在不同的端口(如3306,3307,3308),通过不同的端口对外提供服务 ...
- winserver下oracle好运维吗,在Windows 客户端下备份远程Linux服务器上的Oracle数据库...
1.在Windows上安装Oracle客户端软件(比如:win32_11gR1_client版本最好跟服务器Oracle版本相同) 系统运维 www.osyunwei.com 温馨提醒:qihan ...
- 在 Linux 服务器上部署 oracle10gr2 数据库全过程
在 Linux 服务器上部署 oracle10gr2 数据库全过程 最近在 Linux 系统上进行 oracle 服务器的部署,对于作者这种 Linux 菜鸟来说着实不容易,很是废了一番功夫.但最后还 ...
- 在linux服务器上安装Jenkins
Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器上安装Jenkins. 一.获得一台linux服务器 要在linux下安装git,首先你得 ...
- 如何在 Linux 服务器上安装 Red5?
安装 Red5 服务启动脚本下载地址 要在 Linux 服务器上安装 Red5,应该先安装 JDK 和 ANT.可以参考< 如何在 64 位 linux 机器上安装 jdk1.6 ...
- 在Linux服务器上安装cmake遇到的小问题
在Linux服务器上安装cmake遇到的小问题 make install时无权限 cmake时未找到命令 正常的安装流程在这里就不写了,可以参照其他博主的详细流程 make install时无权限 报 ...
- 【DL】linux服务器上安装Anaconda3
1.本地连接远程服务器 使用MobaXterm连接远程服务器 2.下载Anaconda3安装包 安装包下载地址 https://www.anaconda.com/ 因为我们要在linux服务器上安装, ...
- linux服务器上安装mysql
mysql版本:mysql-5.6.44-linux-glibc2.12-x86_64.tar linux操作系统和版本信息: 1.检查linux服务器上是否已安全mysql [root@localh ...
- linux操作系统. 80188,Materials-Studio5.5在Linux服务器上安装与测算讨论 - 第一原理 - 小木虫 - 学术 科研 互动社区...
前两天在实验室的服务器上安装了Materials-Studio5.5,并改写了原来的脚本进行了CASTEP测试计算,由于本人不使用MS,对Linux系统和计算机不是很熟悉,过程中出现了很多不明白的地方 ...
最新文章
- 惊讶!缓存刚Put再Get居然获取不到?
- js之字面量、对象字面量的访问、关键字in的用法
- 三包围结构的字是什么样的_手帐排版的高段位秘诀:运用艺术字丨大咖分享
- 【特征工程】与【表示学习】
- java主类结构设计,设计结构(1)
- JS正则表达式常见场景下的用法总结
- 从今天起,开始等待中信世界杯信用卡
- 制图折断线_CAD制图初学入门之CAD标注时必须要区分的两个概念
- 树如何找共同祖先_树的运用:求树上共同祖先LCA
- crawler4j源码学习(1):搜狐新闻网新闻标题采集爬虫
- 总结oninput、onchange与onpropertychange事件的用法和区别
- 图片转Excel表格 文字识别 表格识别
- 二维绕任意点旋转_旋转变换(一)旋转矩阵
- 四、Springboot 整合Shiro---02认证---记住我
- 2183440-33-5,Methyltetrazine-PEG8-acid在存在活化剂(如EDC或HATU)的情况下,它可用于与含胺分子共轭
- 六度分离 (dijkstra)
- 如何根据pom文件创建自己的本地仓库
- 下载和安装MySQL(傻瓜)教程
- 斑马打印机(zebraZT410R-203dpi)打印RFID标签流程
- AngularJS博友的笔记教程