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

    文章

    3952

    浏览量

    66867
  • 大数据
    +关注

    关注

    64

    文章

    8967

    浏览量

    140971
  • 华为云
    +关注

    关注

    3

    文章

    2777

    浏览量

    18595
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HarmonyOS5服务技术分享--数据库使用指南

    ? 华为数据库(CloudDB)在HarmonyOS中的使用指南 ? ??嗨,开发者朋友们!?? 今天咱们来聊聊华为
    发表于 05-22 18:29

    华为 Flexus X 实例服务器部署即时通讯 IM 项目

    @TOC ? 写在前面 手里拿到了一台 华为 Flexus X 实例服务器,部署
    的头像 发表于 02-07 10:15 ?484次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>X</b> <b class='flag-5'>实例</b><b class='flag-5'>云</b>服务器<b class='flag-5'>部署</b>即时通讯 IM 项目

    Flexus 服务 X 实例应用,通过 QT 连接华为 MySQL,进行数据库的操作,数据表的增删改查

    引出 在华为 828?B2B 企业节期间,Flexus?X 实例限时促销,性价比极高!对于需要高算力的企业用户和开发者,这款实例可以显著提
    的头像 发表于 01-23 17:23 ?404次阅读
    Flexus <b class='flag-5'>云</b>服务 <b class='flag-5'>X</b> <b class='flag-5'>实例</b>应用,通过 QT 连接<b class='flag-5'>华为</b><b class='flag-5'>云</b> MySQL,进行<b class='flag-5'>数据库</b>的操作,<b class='flag-5'>数据</b>表的增删改查

    使用 sysbench 对 Flexus X 实例对 mysql 进行性能测评

    计算能力的需求而设计。该实例不仅具备卓越的硬件性能,还深度集成了对 MySQL 等数据库的优化支持,为用户提供了卓越的数据库应用体验。官网如下: Flexus
    的头像 发表于 01-17 09:18 ?820次阅读
    使用 sysbench 对 Flexus <b class='flag-5'>X</b> <b class='flag-5'>实例</b>对 mysql 进行<b class='flag-5'>性能</b><b class='flag-5'>测评</b>

    分布式数据库有哪些类型

    分布式数据库有哪些类型?分布式数据库主要类型包括:关系型分布式数据库、非关系型分布式数据库
    的头像 发表于 01-15 09:43 ?573次阅读

    华为 Flexus 服务器 X 实例的快速入门与配置指南

    读者介绍 Flexus 服务器 X 实例的快速入门和配置指南,帮助他们更好地利用华为的强大功能。 一、
    的头像 发表于 01-13 11:11 ?2534次阅读
    <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>的快速入门与配置指南

    华为 Flexus 服务器 X 实例之 openEuler 系统下部署 SQLite 数据库浏览器 sqlite-web

    的资源调度能力和全面的安全保障体系,Flexus 服务器 X 实例已成为众多中小企业和开发者青睐的选择。本文将详细介绍如何在华为 Fle
    的头像 发表于 01-08 11:42 ?686次阅读
    <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 系统下<b class='flag-5'>部署</b> SQLite <b class='flag-5'>数据库</b>浏览器 sqlite-web

    构建数据库解决方案,基于华为 Flexus X 实例容器化 MySQL 主从同步架构

    华为企业上节,Flexus X 实例特惠开启,助力企业轻松构建高性能
    的头像 发表于 01-07 17:22 ?707次阅读
    构建<b class='flag-5'>数据库</b>解决方案,基于<b class='flag-5'>华为</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>X</b> <b class='flag-5'>实例</b>容器化 MySQL 主从同步架构

    数据库是哪种数据库类型?

    数据库是一种部署在虚拟计算环境中的数据库,它融合了计算的弹性和可扩展性,为用户提供高效、灵活的数据库
    的头像 发表于 01-07 10:22 ?568次阅读

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

    前言 本文将介绍如何在华为 Flexus 服务器 X 实例上,基于 openEuler 系统部署
    的头像 发表于 12-30 09:11 ?556次阅读
    <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 ?613次阅读
    <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 ?634次阅读
    <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 ?545次阅读

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

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

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

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