0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用華為云 X 實例部署圖數(shù)據(jù)庫 Virtuoso 并存儲 6500 萬條大數(shù)據(jù)的完整過程與性能測評

jf_21561199 ? 來源:jf_21561199 ? 作者:jf_21561199 ? 2024-12-25 17:51 ? 次閱讀

前言

1. 部署Virtuoso圖數(shù)據(jù)庫的準(zhǔn)備工作

1.1 選擇華為云X實例的原因

1.2 Virtuoso圖數(shù)據(jù)庫簡介

1.3 環(huán)境準(zhǔn)備與系統(tǒng)配置

2. Virtuoso的安裝與配置

2.1 安裝Virtuoso

2.2 Virtuoso的基礎(chǔ)配置

3. 6500萬條數(shù)據(jù)的導(dǎo)入與管理

3.1 數(shù)據(jù)格式與導(dǎo)入方法

3.2 數(shù)據(jù)存儲結(jié)構(gòu)

4. Virtuoso的性能測評

4.1 測試環(huán)境概述

4.2 數(shù)據(jù)導(dǎo)入速度

4.3 查詢性能測試

結(jié)語

前言

在大數(shù)據(jù)時代,圖數(shù)據(jù)庫以其強大的關(guān)系處理能力在復(fù)雜網(wǎng)絡(luò)、社交媒體分析、知識圖譜等領(lǐng)域得到了廣泛應(yīng)用。而在云計算的蓬勃發(fā)展下,使用云服務(wù)器進行圖數(shù)據(jù)庫的部署與管理變得更加方便高效。本篇文章將詳細(xì)介紹如何在華為云 X 實例上部署開源圖數(shù)據(jù)庫 Virtuoso,并將 6500 萬條大數(shù)據(jù)存儲于其中,最后對數(shù)據(jù)庫的性能進行全面測評,為后續(xù)大規(guī)模數(shù)據(jù)管理提供有益參考。

1. 部署 Virtuoso 圖數(shù)據(jù)庫的準(zhǔn)備工作

1.1 選擇華為云 X 實例的原因

華為云 X 實例具有高性能、低延遲、可擴展的特點,尤其適合對計算與存儲資源有較高需求的數(shù)據(jù)庫應(yīng)用。相比于傳統(tǒng)服務(wù)器,云實例可以快速配置與調(diào)整資源,尤其在數(shù)據(jù)量逐步增加時,可以動態(tài)擴展,確保數(shù)據(jù)庫運行的穩(wěn)定性與性能。此次選擇的華為云 X 實例配置為 3M 帶寬,4 核 CPU 和 12GB 內(nèi)存,具備足夠的處理與存儲能力,能夠高效應(yīng)對 6500 萬條數(shù)據(jù)的存儲需求。

最近華為云 828 B2B 企業(yè)節(jié)火熱進行中,F(xiàn)lexus X 實例的促銷力度相當(dāng)誘人。對于有云服務(wù)需求的企業(yè),這無疑是一個絕佳的機會,大家不妨前往了解一下。

1.2 Virtuoso 圖數(shù)據(jù)庫簡介

Virtuoso 是一款功能強大的通用型數(shù)據(jù)庫管理系統(tǒng),支持關(guān)系數(shù)據(jù)和圖數(shù)據(jù),尤其擅長處理 RDF 三元組形式的大規(guī)模圖數(shù)據(jù)。Virtuoso 支持 SPARQL 查詢語言,允許用戶高效地對圖數(shù)據(jù)進行查詢與操作。此次測試中,將利用 Virtuoso 來存儲大規(guī)模 nt 格式的 RDF 數(shù)據(jù)并進行性能測評。

wKgZPGdr1baAWNSOAAP6ngBzbNM254.png

1.3 環(huán)境準(zhǔn)備與系統(tǒng)配置

在正式部署 Virtuoso 之前,首先需要對華為云 X 實例的操作系統(tǒng)和必要的依賴進行準(zhǔn)備與配置。步驟如下:

操作系統(tǒng)選擇:我們選擇了 Huawei Cloud EulerOS 2.0 作為操作系統(tǒng)。該版本穩(wěn)定性高,兼容性強,且社區(qū)支持廣泛,適合作為服務(wù)器環(huán)境。

安裝必備依賴:Virtuoso 運行所需的一些基礎(chǔ)依賴包括 openssl、flex、yacc 等開發(fā)工具,安裝命令如下:

yum install openssl-devel

yum install flex

yum install byacc -y

2. Virtuoso 的安裝與配置

2.1 安裝 Virtuoso

在依賴安裝完成后,我們開始從源碼安裝 Virtuoso。由于 Virtuoso 的開源版本支持我們對其進行靈活的調(diào)整和優(yōu)化,因此采用源碼編譯的方式。安裝步驟如下:

下載 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 服務(wù)

安裝完成后,通過以下命令啟動 Virtuoso 數(shù)據(jù)庫服務(wù):

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

virtuoso-t -f &

2.2 Virtuoso 的基礎(chǔ)配置

安裝完成后,為確保 Virtuoso 能夠在大規(guī)模數(shù)據(jù)下穩(wěn)定高效運行,需要對其配置文件進行適當(dāng)修改。Virtuoso 的主要配置文件是`virtuoso.ini`,其中需要調(diào)整的關(guān)鍵參數(shù)包括內(nèi)存使用、線程數(shù)、查詢緩存等。具體修改如下:

調(diào)整內(nèi)存配置:將`NumberOfBuffers`和`MaxDirtyBuffers`參數(shù)調(diào)整為適應(yīng)服務(wù)器內(nèi)存的大小。

NumberOfBuffers = 170000MaxDirtyBuffers = 130000

設(shè)置線程數(shù):根據(jù)實例的CPU核心數(shù)調(diào)整線程數(shù),以最大化利用多核性能。

復(fù)制代碼

3. 6500 萬條數(shù)據(jù)的導(dǎo)入與管理

3.1 數(shù)據(jù)格式與導(dǎo)入方法

本次測試的數(shù)據(jù)集為 RDF 格式,包含 6500 萬條三元組數(shù)據(jù),主要由資源(subjects)、屬性(predicates)和目標(biāo)(objects)三部分組成。Virtuoso 支持多種數(shù)據(jù)導(dǎo)入方式,其中最常用的是通過 SPARQL 和 Bulk Loader 進行批量導(dǎo)入。我們選擇使用 Bulk Loader 來進行大規(guī)模數(shù)據(jù)導(dǎo)入,操作步驟如下:

準(zhǔn)備 RDF 數(shù)據(jù)文件:將 RDF 數(shù)據(jù)文件上傳至 Virtuoso 服務(wù)器的指定目錄下。

配置 Bulk Loader:編輯`virtuoso.ini`文件,設(shè)置數(shù)據(jù)文件的導(dǎo)入路徑。

DirForAll = /data/import

執(zhí)行數(shù)據(jù)導(dǎo)入命令:

使用 Virtuoso 的 isql 工具來批量導(dǎo)入數(shù)據(jù):

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

rdf_loader_run();

3.2 數(shù)據(jù)存儲結(jié)構(gòu)

Virtuoso 的存儲架構(gòu)采用了高效的索引機制來存儲 RDF 數(shù)據(jù)。每一條 RDF 三元組都通過索引進行管理,確保了數(shù)據(jù)在寫入和讀取時的高效性。6500 萬條數(shù)據(jù)在導(dǎo)入過程中會自動生成相應(yīng)的索引,Virtuoso 會根據(jù)查詢模式對索引進行優(yōu)化,以提高后續(xù)查詢的性能。

4. Virtuoso 的性能測評

4.1 測試環(huán)境概述

本次性能測試基于華為云 X 實例,旨在評估 Virtuoso 在大規(guī)模數(shù)據(jù)存儲和查詢速度方面的表現(xiàn)。測試內(nèi)容涵蓋了數(shù)據(jù)導(dǎo)入效率以及不同復(fù)雜度 SPARQL 查詢的響應(yīng)時間。我們使用了 Virtuoso 自帶的 SPARQL 查詢接口進行測試,并通過多樣化的查詢場景模擬了實際使用中的各種操作負(fù)載。此外,針對高并發(fā)場景,測試了 Virtuoso 在華為云 X 實例多核處理器下的性能表現(xiàn),確保數(shù)據(jù)庫能夠在大規(guī)模數(shù)據(jù)場景下高效運行。

4.2 數(shù)據(jù)導(dǎo)入速度

導(dǎo)入 6500 萬條 RDF 數(shù)據(jù)的整個過程耗時約 254 秒,平均每秒鐘處理約 25.59 萬條三元組數(shù)據(jù)。在幾年之前,同樣是導(dǎo)入這組數(shù)據(jù),花的時間是大約 6 個小時,時間節(jié)約了近 100 倍,這得益于 Virtuoso 高效的批量導(dǎo)入機制以及華為云 X 實例的優(yōu)秀 I/O 性能,數(shù)據(jù)導(dǎo)入的總體表現(xiàn)令人滿意。

wKgZO2dr1beAEenKAAAXwpgFBOU213.png

4.3 查詢性能測試

我們設(shè)計了幾種典型的 SPARQL 查詢場景,分別測量了不同類型查詢的響應(yīng)速度。

基本查詢

查詢某一特定資源的屬性信息,比如查詢蘇軾相關(guān)信息。

select ?p ?o

where

{<蘇軾> ?p ?o }

wKgZPGdr1beAS9efAAIIcJyzuHA742.png

復(fù)雜模式查詢

查詢多個條件匹配的資源,涉及多跳關(guān)系的查找,比如查找百度標(biāo)簽為“宋朝”,還有“詩人”,并且屬性中包含“蘇”的所有實體。

select distinct ?s

where

{?s "宋朝" .

?s "詩人" .

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

}

wKgZO2dr1beART4oAADwFLto0wo108.png

聚合查詢

對數(shù)據(jù)集進行統(tǒng)計,如計算節(jié)百度標(biāo)簽為“中國歷史”的數(shù)據(jù)數(shù)量。

select count(*)

where

{?s "中國歷史"

. ?s <簡稱> ?o FILTER isLiteral(?o)

}

wKgZPGdr1beAeP5LAADaG0F5YXw904.png

在 6500 萬條數(shù)據(jù)中進行 SPARQL 的簡單查詢、復(fù)雜查詢和聚合查詢,結(jié)果幾乎都能在秒級內(nèi)返回,耗時極少。這不僅展現(xiàn)了 Virtuoso 在處理大規(guī)模數(shù)據(jù)時的優(yōu)異性能,也證明了華為云 X 實例服務(wù)器的強大計算能力,確保了數(shù)據(jù)庫在高負(fù)載下的高效運行。

結(jié)語

在華為云 X 實例上成功部署 Virtuoso 圖數(shù)據(jù)庫并存儲 6500 萬條大數(shù)據(jù)的過程中,我們見證了云服務(wù)器與圖數(shù)據(jù)庫結(jié)合的強大優(yōu)勢。Virtuoso 憑借其高效的存儲與查詢機制,在大規(guī)模數(shù)據(jù)環(huán)境下表現(xiàn)出色,而華為云 X 實例則為數(shù)據(jù)庫提供了穩(wěn)定的運行環(huán)境。通過合理的性能優(yōu)化措施,Virtuoso 可以在未來的大數(shù)據(jù)場景中發(fā)揮更大的作用,為復(fù)雜關(guān)系型數(shù)據(jù)的管理與查詢提供有力支持。

華為云 X 實例的彈性計算和高速網(wǎng)絡(luò)支持為大規(guī)模數(shù)據(jù)處理提供了堅實的基礎(chǔ),使其成為部署圖數(shù)據(jù)庫的理想選擇。對于需要處理海量數(shù)據(jù)的應(yīng)用場景,Virtuoso 在華為云 X 實例上的表現(xiàn)無疑是令人滿意的。


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3839

    瀏覽量

    64542
  • 大數(shù)據(jù)
    +關(guān)注

    關(guān)注

    64

    文章

    8899

    瀏覽量

    137575
  • 華為云
    +關(guān)注

    關(guān)注

    3

    文章

    2654

    瀏覽量

    17498
收藏 人收藏

    評論

    相關(guān)推薦

    避坑指南:服務(wù)器數(shù)據(jù)庫購買方法全攻略

    服務(wù)器數(shù)據(jù)庫購買方法包含:先明確業(yè)務(wù)需求與數(shù)據(jù)庫類型,再挑選信譽好、技術(shù)支持強的服務(wù)提供商,接著根據(jù)需求配置數(shù)據(jù)庫
    的頭像 發(fā)表于 01-15 10:05 ?8次閱讀

    分布式數(shù)據(jù)庫有哪些類型

    分布式數(shù)據(jù)庫有哪些類型?分布式數(shù)據(jù)庫主要類型包括:關(guān)系型分布式數(shù)據(jù)庫、非關(guān)系型分布式數(shù)據(jù)庫
    的頭像 發(fā)表于 01-15 09:43 ?39次閱讀

    華為 Flexus 服務(wù)器 X 實例的快速入門與配置指南

    讀者介紹 Flexus 服務(wù)器 X 實例的快速入門和配置指南,幫助他們更好地利用華為的強大功能。 一、
    的頭像 發(fā)表于 01-13 11:11 ?83次閱讀
    <b class='flag-5'>華為</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b>服務(wù)器 <b class='flag-5'>X</b> <b class='flag-5'>實例</b>的快速入門與配置指南

    華為 Flexus 服務(wù)器 X 實例之 openEuler 系統(tǒng)下部署 SQLite 數(shù)據(jù)庫瀏覽器 sqlite-web

    的資源調(diào)度能力和全面的安全保障體系,F(xiàn)lexus 服務(wù)器 X 實例已成為眾多中小企業(yè)和開發(fā)者青睞的選擇。本文將詳細(xì)介紹如何在華為 Fle
    的頭像 發(fā)表于 01-08 11:42 ?159次閱讀
    <b class='flag-5'>華為</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b>服務(wù)器 <b class='flag-5'>X</b> <b class='flag-5'>實例</b>之 openEuler 系統(tǒng)下<b class='flag-5'>部署</b> SQLite <b class='flag-5'>數(shù)據(jù)庫</b>瀏覽器 sqlite-web

    構(gòu)建數(shù)據(jù)庫解決方案,基于華為 Flexus X 實例容器化 MySQL 主從同步架構(gòu)

    華為企業(yè)上節(jié),F(xiàn)lexus X 實例特惠開啟,助力企業(yè)輕松構(gòu)建高性能
    的頭像 發(fā)表于 01-07 17:22 ?149次閱讀
    構(gòu)建<b class='flag-5'>數(shù)據(jù)庫</b>解決方案,基于<b class='flag-5'>華為</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>X</b> <b class='flag-5'>實例</b>容器化 MySQL 主從同步架構(gòu)

    數(shù)據(jù)庫是哪種數(shù)據(jù)庫類型?

    數(shù)據(jù)庫是一種部署在虛擬計算環(huán)境中的數(shù)據(jù)庫,它融合了計算的彈性和可擴展性,為用戶提供高效、靈活的數(shù)據(jù)庫
    的頭像 發(fā)表于 01-07 10:22 ?102次閱讀

    華為 Flexus 服務(wù)器 X 實例:在 openEuler 系統(tǒng)下搭建 MySQL 主從復(fù)制

    前言 本文將介紹如何在華為 Flexus 服務(wù)器 X 實例上,基于 openEuler 系統(tǒng)部署
    的頭像 發(fā)表于 12-30 09:11 ?213次閱讀
    <b class='flag-5'>華為</b><b class='flag-5'>云</b> Flexus <b class='flag-5'>云</b>服務(wù)器 <b class='flag-5'>X</b> <b class='flag-5'>實例</b>:在 openEuler 系統(tǒng)下搭建 MySQL 主從復(fù)制

    華為Flexus X實例,Redis性能加速評測及對比

    隨著計算技術(shù)的飛速發(fā)展,Redis 作為一種高性能的內(nèi)存數(shù)據(jù)庫,在各種應(yīng)用場景中發(fā)揮著越來越重要的作用。為了滿足不同用戶對 Redis 性能的高要求,
    的頭像 發(fā)表于 12-29 15:47 ?185次閱讀
    <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 構(gòu)造測試表和測試數(shù)據(jù) 12 3.5 數(shù)據(jù)庫讀寫性能測試 13 四、業(yè)界 U?系列無加速 MySQL 測
    的頭像 發(fā)表于 12-25 17:10 ?208次閱讀
    <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>加速評測及對比

    數(shù)據(jù)庫主機哪個好一點?

    數(shù)據(jù)庫主機哪個好一點?主機和數(shù)據(jù)庫各有優(yōu)勢,選擇哪個更好取決于具體需求。
    的頭像 發(fā)表于 12-04 13:50 ?158次閱讀

    數(shù)據(jù)庫可以租用嗎?完整租用流程來了

    數(shù)據(jù)庫是可以租用的,這是一種合法且便捷的數(shù)據(jù)存儲和管理方式。數(shù)據(jù)庫
    的頭像 發(fā)表于 10-28 09:54 ?195次閱讀

    一文講清什么是分布式數(shù)據(jù)庫!

    分布式數(shù)據(jù)庫是一種先進的數(shù)據(jù)管理系統(tǒng),它將傳統(tǒng)的數(shù)據(jù)庫技術(shù)與分布式計算、計算和大數(shù)據(jù)處理技
    的頭像 發(fā)表于 10-14 10:06 ?240次閱讀

    干貨分享 如何采集OPC DA數(shù)據(jù)并存儲到SQL Server數(shù)據(jù)庫

    在工業(yè)自動化系統(tǒng)中,將OPC DA數(shù)據(jù)采集并存儲到SQL Server數(shù)據(jù)庫具有顯著的應(yīng)用價值。本文手把手教您完成這一操作,實現(xiàn)數(shù)據(jù)的統(tǒng)一管理、實時監(jiān)控和趨勢分析,助力企業(yè)優(yōu)化生產(chǎn)流程
    的頭像 發(fā)表于 08-09 10:46 ?665次閱讀
    干貨分享  如何采集OPC DA<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>并存儲</b>到SQL Server<b class='flag-5'>數(shù)據(jù)庫</b>?

    華為多模數(shù)據(jù)庫 GeminiDB 架構(gòu)與應(yīng)用實踐直播問答實錄

    多模數(shù)據(jù)庫作為一種新興的數(shù)據(jù)管理解決方案,正在受到越來越多的關(guān)注。而華為多模數(shù)據(jù)庫 GeminiDB 基于云原生
    的頭像 發(fā)表于 04-08 18:25 ?1183次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)】Oracle數(shù)據(jù)庫ASM實例無法掛載的數(shù)據(jù)恢復(fù)案例

    oracle數(shù)據(jù)庫ASM磁盤組掉線,ASM實例不能掛載。數(shù)據(jù)庫管理員嘗試修復(fù)數(shù)據(jù)庫,但是沒有成功。
    的頭像 發(fā)表于 02-01 17:39 ?549次閱讀
    【<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)】Oracle<b class='flag-5'>數(shù)據(jù)庫</b>ASM<b class='flag-5'>實例</b>無法掛載的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例