0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用华为云 X 实例部署图数据库 Virtuoso 并存储 6500 万条大数据的完整过程与性能测评

jf_21561199 来源:jf_21561199 作者:jf_21561199 2024-12-25 17:51 次阅读

前言

1. 部署Virtuoso图数据库的准备工作

1.1 选择华为云X实例的原因

1.2 Virtuoso图数据库简介

1.3 环境准备与系统配置

2. Virtuoso的安装与配置

2.1 安装Virtuoso

2.2 Virtuoso的基础配置

3. 6500万条数据的导入与管理

3.1 数据格式与导入方法

3.2 数据存储结构

4. Virtuoso的性能测评

4.1 测试环境概述

4.2 数据导入速度

4.3 查询性能测试

结语

前言

在大数据时代,图数据库以其强大的关系处理能力在复杂网络、社交媒体分析、知识图谱等领域得到了广泛应用。而在云计算的蓬勃发展下,使用云服务器进行图数据库的部署与管理变得更加方便高效。本篇文章将详细介绍如何在华为云 X 实例上部署开源图数据库 Virtuoso,并将 6500 万条大数据存储于其中,最后对数据库的性能进行全面测评,为后续大规模数据管理提供有益参考。

1. 部署 Virtuoso 图数据库的准备工作

1.1 选择华为云 X 实例的原因

华为云 X 实例具有高性能、低延迟、可扩展的特点,尤其适合对计算与存储资源有较高需求的数据库应用。相比于传统服务器,云实例可以快速配置与调整资源,尤其在数据量逐步增加时,可以动态扩展,确保数据库运行的稳定性与性能。此次选择的华为云 X 实例配置为 3M 带宽,4 核 CPU 和 12GB 内存,具备足够的处理与存储能力,能够高效应对 6500 万条数据的存储需求。

最近华为云 828 B2B 企业节火热进行中,Flexus X 实例的促销力度相当诱人。对于有云服务需求的企业,这无疑是一个绝佳的机会,大家不妨前往了解一下。

1.2 Virtuoso 图数据库简介

Virtuoso 是一款功能强大的通用型数据库管理系统,支持关系数据和图数据,尤其擅长处理 RDF 三元组形式的大规模图数据。Virtuoso 支持 SPARQL 查询语言,允许用户高效地对图数据进行查询与操作。此次测试中,将利用 Virtuoso 来存储大规模 nt 格式的 RDF 数据并进行性能测评。

wKgZPGdr1baAWNSOAAP6ngBzbNM254.png

1.3 环境准备与系统配置

在正式部署 Virtuoso 之前,首先需要对华为云 X 实例的操作系统和必要的依赖进行准备与配置。步骤如下:

操作系统选择:我们选择了 Huawei Cloud EulerOS 2.0 作为操作系统。该版本稳定性高,兼容性强,且社区支持广泛,适合作为服务器环境。

安装必备依赖:Virtuoso 运行所需的一些基础依赖包括 openssl、flex、yacc 等开发工具,安装命令如下:

yum install openssl-devel

yum install flex

yum install byacc -y

2. Virtuoso 的安装与配置

2.1 安装 Virtuoso

在依赖安装完成后,我们开始从源码安装 Virtuoso。由于 Virtuoso 的开源版本支持我们对其进行灵活的调整和优化,因此采用源码编译的方式。安装步骤如下:

下载 Virtuoso 源码

wget https://sourceforge.net/projects/virtuoso/files/virtuoso/7.2.13/virtuoso-opensource-7.2.13.tar.gz

tar -zxvf virtuoso-opensource-7.2.13.tar.gz

cd virtuoso-opensource

编译与安装

./autogen.sh

./configure --prefix=/usr/local/virtuoso-opensource

make

sudo make install

启动 Virtuoso 服务

安装完成后,通过以下命令启动 Virtuoso 数据库服务:

cd /usr/local/virtuoso/var/lib/virtuoso/db

virtuoso-t -f &

2.2 Virtuoso 的基础配置

安装完成后,为确保 Virtuoso 能够在大规模数据下稳定高效运行,需要对其配置文件进行适当修改。Virtuoso 的主要配置文件是`virtuoso.ini`,其中需要调整的关键参数包括内存使用、线程数、查询缓存等。具体修改如下:

调整内存配置:将`NumberOfBuffers`和`MaxDirtyBuffers`参数调整为适应服务器内存的大小。

NumberOfBuffers = 170000MaxDirtyBuffers = 130000

设置线程数:根据实例的CPU核心数调整线程数,以最大化利用多核性能。

复制代码

3. 6500 万条数据的导入与管理

3.1 数据格式与导入方法

本次测试的数据集为 RDF 格式,包含 6500 万条三元组数据,主要由资源(subjects)、属性(predicates)和目标(objects)三部分组成。Virtuoso 支持多种数据导入方式,其中最常用的是通过 SPARQL 和 Bulk Loader 进行批量导入。我们选择使用 Bulk Loader 来进行大规模数据导入,操作步骤如下:

准备 RDF 数据文件:将 RDF 数据文件上传至 Virtuoso 服务器的指定目录下。

配置 Bulk Loader:编辑`virtuoso.ini`文件,设置数据文件的导入路径。

DirForAll = /data/import

执行数据导入命令:

使用 Virtuoso 的 isql 工具来批量导入数据:

ld_dir('/data/import', '*.nt', 'http://nttriple.com/graph');

rdf_loader_run();

3.2 数据存储结构

Virtuoso 的存储架构采用了高效的索引机制来存储 RDF 数据。每一条 RDF 三元组都通过索引进行管理,确保了数据在写入和读取时的高效性。6500 万条数据在导入过程中会自动生成相应的索引,Virtuoso 会根据查询模式对索引进行优化,以提高后续查询的性能。

4. Virtuoso 的性能测评

4.1 测试环境概述

本次性能测试基于华为云 X 实例,旨在评估 Virtuoso 在大规模数据存储和查询速度方面的表现。测试内容涵盖了数据导入效率以及不同复杂度 SPARQL 查询的响应时间。我们使用了 Virtuoso 自带的 SPARQL 查询接口进行测试,并通过多样化的查询场景interwetten与威廉的赔率体系 了实际使用中的各种操作负载。此外,针对高并发场景,测试了 Virtuoso 在华为云 X 实例多核处理器下的性能表现,确保数据库能够在大规模数据场景下高效运行。

4.2 数据导入速度

导入 6500 万条 RDF 数据的整个过程耗时约 254 秒,平均每秒钟处理约 25.59 万条三元组数据。在几年之前,同样是导入这组数据,花的时间是大约 6 个小时,时间节约了近 100 倍,这得益于 Virtuoso 高效的批量导入机制以及华为云 X 实例的优秀 I/O 性能,数据导入的总体表现令人满意。

wKgZO2dr1beAEenKAAAXwpgFBOU213.png

4.3 查询性能测试

我们设计了几种典型的 SPARQL 查询场景,分别测量了不同类型查询的响应速度。

基本查询

查询某一特定资源的属性信息,比如查询苏轼相关信息。

select ?p ?o

where

{<苏轼> ?p ?o }

wKgZPGdr1beAS9efAAIIcJyzuHA742.png

复杂模式查询

查询多个条件匹配的资源,涉及多跳关系的查找,比如查找百度标签为“宋朝”,还有“诗人”,并且属性中包含“苏”的所有实体。

select distinct ?s

where

{?s "宋朝" .

?s "诗人" .

?s ?p ?o FILTER regex(?o, '苏')

}

wKgZO2dr1beART4oAADwFLto0wo108.png

聚合查询

对数据集进行统计,如计算节百度标签为“中国历史”的数据数量。

select count(*)

where

{?s "中国历史"

. ?s <简称> ?o FILTER isLiteral(?o)

}

wKgZPGdr1beAeP5LAADaG0F5YXw904.png

在 6500 万条数据中进行 SPARQL 的简单查询、复杂查询和聚合查询,结果几乎都能在秒级内返回,耗时极少。这不仅展现了 Virtuoso 在处理大规模数据时的优异性能,也证明了华为云 X 实例服务器的强大计算能力,确保了数据库在高负载下的高效运行。

结语

在华为云 X 实例上成功部署 Virtuoso 图数据库并存储 6500 万条大数据的过程中,我们见证了云服务器与图数据库结合的强大优势。Virtuoso 凭借其高效的存储与查询机制,在大规模数据环境下表现出色,而华为云 X 实例则为数据库提供了稳定的运行环境。通过合理的性能优化措施,Virtuoso 可以在未来的大数据场景中发挥更大的作用,为复杂关系型数据的管理与查询提供有力支持。

华为云 X 实例的弹性计算和高速网络支持为大规模数据处理提供了坚实的基础,使其成为部署图数据库的理想选择。对于需要处理海量数据的应用场景,Virtuoso 在华为云 X 实例上的表现无疑是令人满意的。


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3817

    浏览量

    64498
  • 大数据
    +关注

    关注

    64

    文章

    8895

    浏览量

    137505
  • 华为云
    +关注

    关注

    3

    文章

    2567

    浏览量

    17471
收藏 人收藏

    评论

    相关推荐

    华为荣登Gartner®数据库挑战者象限

    近日,全球知名的信息威廉希尔官方网站 研究与顾问公司Gartner®正式发布了其备受瞩目的2024年度《数据库管理系统魔力象限报告》。在这份权威报告中,华为凭借其卓越的表现成功入选挑战者象限,彰
    的头像 发表于 12-31 13:57 121次阅读

    使用 Memtester 对华为 X 实例进行内存性能测试

    整体的稳定性和响应速度有着举足轻重的影响。无论是数据库应用、虚拟化威廉希尔官方网站 ,还是大数据处理,内存带宽和延迟都直接影响着应用的运行效率。因此,了解服务
    的头像 发表于 12-30 14:52 77次阅读
    使用 Memtester 对<b class='flag-5'>华为</b><b class='flag-5'>云</b> <b class='flag-5'>X</b> <b class='flag-5'>实例</b>进行内存<b class='flag-5'>性能</b>测试

    华为 Flexus 服务器 X 实例:在 openEuler 系统下搭建 MySQL 主从复制

    前言 本文将介绍如何在华为 Flexus 服务器 X 实例上,基于 openEuler 系统部署
    的头像 发表于 12-30 09:11 182次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b>服务器 <b class='flag-5'>X</b> <b class='flag-5'>实例</b>:在 openEuler 系统下搭建 MySQL 主从复制

    华为Flexus X实例,Redis性能加速评测及对比

    随着计算威廉希尔官方网站 的飞速发展,Redis 作为一种高性能的内存数据库,在各种应用场景中发挥着越来越重要的作用。为了满足不同用户对 Redis 性能的高要求,
    的头像 发表于 12-29 15:47 169次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b>Flexus <b class='flag-5'>X</b><b class='flag-5'>实例</b>,Redis<b class='flag-5'>性能</b>加速评测及对比

    华为 Flexus X 实例 MySQL 性能加速评测及对比

    基于 sysbench 构造测试表和测试数据 12 3.5 数据库读写性能测试 13 四、业界 U 系列无加速 MySQL 测
    的头像 发表于 12-25 17:10 182次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>X</b> <b class='flag-5'>实例</b> MySQL <b class='flag-5'>性能</b>加速评测及对比

    数据库主机哪个好一点?

    数据库主机哪个好一点?主机和数据库各有优势,选择哪个更好取决于具体需求。
    的头像 发表于 12-04 13:50 142次阅读

    数据库数据恢复—通过拼接数据库碎片恢复SQLserver数据库

    一个运行在存储上的SQLServer数据库,有1000多个文件,大小几十TB。数据库每10天生成一个NDF文件,每个NDF几百GB大小。数据库包含两个LDF文件。
    的头像 发表于 10-31 13:21 255次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—通过拼接<b class='flag-5'>数据库</b>碎片恢复SQLserver<b class='flag-5'>数据库</b>

    数据库可以租用吗?完整租用流程来了

    数据库是可以租用的,这是一种合法且便捷的数据存储和管理方式。数据库
    的头像 发表于 10-28 09:54 179次阅读

    一文讲清什么是分布式数据库

    分布式数据库是一种先进的数据管理系统,它将传统的数据库威廉希尔官方网站 与分布式计算、计算和大数据处理技
    的头像 发表于 10-14 10:06 232次阅读

    基于分布式存储WDS的金融信创承载数据库类关键应用

    基于分布式存储WDS的金融信创承载数据库类关键应用
    的头像 发表于 08-16 09:42 286次阅读
    基于分布式<b class='flag-5'>存储</b>WDS的金融信创<b class='flag-5'>云</b>承载<b class='flag-5'>数据库</b>类关键应用

    干货分享 如何采集OPC DA数据并存储到SQL Server数据库

    在工业自动化系统中,将OPC DA数据采集并存储到SQL Server数据库具有显著的应用价值。本文手把手教您完成这一操作,实现数据的统一管理、实时监控和趋势分析,助力企业优化生产流程
    的头像 发表于 08-09 10:46 618次阅读
    干货分享  如何采集OPC DA<b class='flag-5'>数据</b><b class='flag-5'>并存储</b>到SQL Server<b class='flag-5'>数据库</b>?

    “Spark+Hive”在DPU环境下的性能测评 | OLAP数据库引擎选型白皮书(24版)DPU部分节选

    在奇点2024年版《OLAP数据库引擎选型白皮书》中,中科驭数联合奇点针对Spark+Hive这类大数据计算场景下的主力引擎,测评DPU
    的头像 发表于 05-30 16:09 544次阅读
    “Spark+Hive”在DPU环境下的<b class='flag-5'>性能</b><b class='flag-5'>测评</b> | OLAP<b class='flag-5'>数据库</b>引擎选型白皮书(24版)DPU部分节选

    时序数据库是什么?时序数据库的特点

    时序数据库是一种在处理时间序列数据方面具有高效和专门化能力的数据库。它主要用于存储和处理时间序列数据,比如传感器
    的头像 发表于 04-26 16:02 672次阅读

    华为多模数据库 GeminiDB 架构与应用实践直播问答实录

    多模数据库作为一种新兴的数据管理解决方案,正在受到越来越多的关注。而华为多模数据库 GeminiDB 基于云原生
    的头像 发表于 04-08 18:25 1176次阅读

    数据库数据恢复】Oracle数据库ASM实例无法挂载的数据恢复案例

    oracle数据库ASM磁盘组掉线,ASM实例不能挂载。数据库管理员尝试修复数据库,但是没有成功。
    的头像 发表于 02-01 17:39 534次阅读
    【<b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复】Oracle<b class='flag-5'>数据库</b>ASM<b class='flag-5'>实例</b>无法挂载的<b class='flag-5'>数据</b>恢复案例