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 查询接口进行测试,并通过多样化的查询场景模拟了实际使用中的各种操作负载。此外,针对高并发场景,测试了 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

    文章

    3799

    浏览量

    64379
  • 大数据
    +关注

    关注

    64

    文章

    8886

    浏览量

    137433
  • 华为云
    +关注

    关注

    3

    文章

    2484

    浏览量

    17420
收藏 人收藏

    评论

    相关推荐

    服务器 Flexus X 实例部署 AgentOps,全方位监测智能体

    能力,搭配弹性伸缩服务 AS 和负载均衡服务 ELB,使得在部署多智能体监控 AgentOps 时,能够灵活应对业务负载的变化,确保系统的稳定运行。其高可用性和安全性,通过搭配华为数据库
    的头像 发表于 12-26 18:10 67次阅读
    <b class='flag-5'>云</b>服务器 Flexus <b class='flag-5'>X</b> <b class='flag-5'>实例</b>:<b class='flag-5'>部署</b> AgentOps,全方位监测智能体

    技术升级:探索华为 EulerOS 与 Flexus X 实例如何完美融合快速部署 Django

    ,我们将目光聚焦于华为 EulerOS 操作系统与 Flexus X 实例的深度融合,探讨如何在这一强大组合下实现 Django 服务的快速部署
    的头像 发表于 12-25 17:50 109次阅读
    技术升级:探索<b class='flag-5'>华为</b><b class='flag-5'>云</b> EulerOS 与 Flexus <b class='flag-5'>X</b> <b class='flag-5'>实例</b>如何完美融合快速<b class='flag-5'>部署</b> Django

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

    基于 sysbench 构造测试表和测试数据 12 3.5 数据库读写性能测试 13 四、业界 U 系列无加速 MySQL 测
    的头像 发表于 12-25 17:10 100次阅读
    <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>加速评测及对比

    基于 Flexus 服务器 X 实例体验大模型部署体验测评

    也很快。但是大家目前都是在体验,能不能部署一下试试呢? 今天,我们就以华为 Flexus 服务器 X
    的头像 发表于 12-24 12:27 76次阅读
    基于 Flexus <b class='flag-5'>云</b>服务器 <b class='flag-5'>X</b> <b class='flag-5'>实例</b>体验大模型<b class='flag-5'>部署</b>体验<b class='flag-5'>测评</b>

    数据库主机哪个好一点?

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

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

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

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

    Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复
    的头像 发表于 10-28 11:26 159次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—Oracle ASM<b class='flag-5'>实例</b>无法挂载的<b class='flag-5'>数据</b>恢复案例

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

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

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

    分布式数据库是一种先进的数据管理系统,它将传统的数据库技术与分布式计算、计算和大数据处理技
    的头像 发表于 10-14 10:06 221次阅读

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

    基于分布式存储WDS的金融信创承载数据库类关键应用
    的头像 发表于 08-16 09:42 275次阅读
    基于分布式<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 583次阅读
    干货分享  如何采集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 526次阅读
    “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 650次阅读

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

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

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

    oracle数据库ASM磁盘组掉线,ASM实例不能挂载。数据库管理员尝试修复数据库,但是没有成功。
    的头像 发表于 02-01 17:39 523次阅读
    【<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>恢复案例