新聞中心
Part 01 什么是圖形數(shù)據(jù)庫

創(chuàng)新互聯(lián)主營貢井網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app開發(fā),貢井h5微信小程序搭建,貢井網(wǎng)站營銷推廣歡迎貢井等地區(qū)企業(yè)咨詢
?圖形數(shù)據(jù)庫是NoSQL數(shù)據(jù)庫的一種類型,起源于歐拉理論和圖理論,對應(yīng)英文名是Graph Database。一種專用于創(chuàng)建和處理圖形的專業(yè)化單一用途平臺,圖形包括節(jié)點(diǎn)、邊和屬性,它們能夠以關(guān)系數(shù)據(jù)庫無法實(shí)現(xiàn)的方式來表示和存儲數(shù)據(jù)。
圖形數(shù)據(jù)庫有兩種常見的數(shù)據(jù)庫模型:屬性圖(Property Graphs)和資源描述框架圖(RDF Graphs)。屬性圖側(cè)重于分析和查詢,而RDF圖則側(cè)重于數(shù)據(jù)集成。
1.1 屬性圖
屬性圖用于對數(shù)據(jù)之間的關(guān)系進(jìn)行建模,能夠基于這些關(guān)系進(jìn)行查詢和數(shù)據(jù)分析。屬性圖具有頂點(diǎn)(包含有關(guān)主題的詳細(xì)信息)和邊(表示頂點(diǎn)之間的關(guān)系)。頂點(diǎn)和邊可以具有相關(guān)聯(lián)的屬性。屬性圖用途廣泛,因此被廣泛用于金融、制造、公共安全、零售等眾多行業(yè)和領(lǐng)域。
- 節(jié)點(diǎn)(Nodes):是圖中的實(shí)體,用表示其類型的0到多個文本標(biāo)簽進(jìn)行標(biāo)記,相當(dāng)于實(shí)體。
- 邊(Edges):是節(jié)點(diǎn)之間的定向鏈接,也稱為關(guān)系。其中對應(yīng)的“from node”稱為源節(jié)點(diǎn),“to node”稱為目標(biāo)節(jié)點(diǎn)。邊是定向的且每條邊都有一個類型,它們可以在任何方向上導(dǎo)航和查詢。相當(dāng)于實(shí)體之間的關(guān)系。
- 屬性(Properties):是一個鍵值對,頂點(diǎn)和邊都具有屬性。
下圖是一個屬性圖片段的可視化示例,說明了演員、導(dǎo)演、電影和電視劇的相互關(guān)系:
其中淺藍(lán)色橢圓表示節(jié)點(diǎn),深藍(lán)色框表示節(jié)點(diǎn)的標(biāo)簽,黃色框表示屬性,紅色方框表示邊的類型。
1.2 RDF圖
RDF,即資源描述框架(Resource Description Framework),形式上主要由主謂賓(SPO, 即subject, predicate, object)三元組組成。RDF圖存在統(tǒng)一的標(biāo)準(zhǔn),其技術(shù)棧的標(biāo)準(zhǔn)是由萬維網(wǎng)聯(lián)盟(W3C)負(fù)責(zé)管理。
RDF圖主要由以下兩種元素組成:
- 節(jié)點(diǎn)(Nodes):可以是具備唯一性的資源或字面值(如數(shù)值、字符串)。
- 邊(Edges):節(jié)點(diǎn)之間的有向連接,也被稱為謂語(predicate),一般由主語指向賓語。
RDF也有標(biāo)準(zhǔn)的查詢語言SPARQL,SPARQL既是一種功能齊全的查詢語言,也是一種HTTP協(xié)議,可以接收通過HTTP發(fā)送的查詢請求。
RDF圖的標(biāo)準(zhǔn)化有一個關(guān)鍵點(diǎn)就是序列化。通過序列化可以在不同RDF圖數(shù)據(jù)庫之間無縫切換,常用的序列化格式包括Turtle(最常用)、JSON-LD、XML。
下圖是一個RDF圖片段的可視化示例,內(nèi)容和屬性圖片段示例基本一致:
相比于屬性圖數(shù)據(jù)庫,RDF數(shù)據(jù)庫的可視化結(jié)果會更干凈(構(gòu)成數(shù)據(jù)的元素類型少),但也更寬廣(節(jié)點(diǎn)和邊的數(shù)量更多)。
Part 02 圖形數(shù)據(jù)庫的優(yōu)勢
?圖形格式可提供一個更靈活的平臺,幫助用戶基于關(guān)系強(qiáng)度或關(guān)系質(zhì)量等因素查找遠(yuǎn)關(guān)系或分析數(shù)據(jù)。您可以使用圖形來探索和發(fā)現(xiàn)社交網(wǎng)絡(luò)、物聯(lián)網(wǎng)、大數(shù)據(jù)、數(shù)據(jù)倉庫以及多種業(yè)務(wù)使用場景(包括銀行中的欺詐檢測、社交網(wǎng)絡(luò)中的關(guān)系發(fā)現(xiàn)以及360度客戶視圖)下復(fù)雜事務(wù)數(shù)據(jù)中的關(guān)系和模式。如今,圖形數(shù)據(jù)庫正越來越廣泛地應(yīng)用于數(shù)據(jù)科學(xué),幫助用戶更加清晰地呈現(xiàn)數(shù)據(jù)關(guān)系。
由于圖形數(shù)據(jù)庫以顯式方式存儲關(guān)系,因此利用頂點(diǎn)間連接的查詢和算法可以達(dá)到亞秒(而不是小時或天)級別。用戶無需執(zhí)行無數(shù)次聯(lián)接,可以更輕松地將數(shù)據(jù)用于分析和機(jī)器學(xué)習(xí),高效探索周圍世界。
圖形數(shù)據(jù)庫高度靈活,功能超強(qiáng),可助您通過圖形格式,更輕松地識別復(fù)雜關(guān)系,捕獲更深入的洞察。它通常使用PGQL一類的語言來運(yùn)行查詢。請查看以下示例,了解使用PGQL和SQL進(jìn)行查詢有何不同。
從示例中可以看出,PGQL代碼更簡單,更高效。由于圖形強(qiáng)調(diào)的是數(shù)據(jù)之間的關(guān)系,因此非常適合多種不同類型的分析。圖形數(shù)據(jù)庫尤其擅長:
- 查找兩個節(jié)點(diǎn)之間的最短路徑;
- 確定產(chǎn)生重大活動/影響力的節(jié)點(diǎn);
- 分析連接性,識別網(wǎng)絡(luò)的最薄弱點(diǎn);
- 基于組中的連接距離/密度來分析網(wǎng)絡(luò)或社區(qū)狀態(tài)。
Part 03 主流圖形數(shù)據(jù)庫
圖形數(shù)據(jù)庫TOP10排名:
- Neo4j
- Microsoft Azure Cosmos DB
- Virtuoso
- ArangoDB
- OrientDB
- JanusGraph
- Amazon Neptune
- GraphDB
- TigerGraph
- Fauna
- Dgraph
2013年到2023年圖形數(shù)據(jù)庫流行趨勢統(tǒng)計(jì)圖:
Neo4j因其嵌入式、高性能、輕量級等優(yōu)勢,越來越受到關(guān)注。
Neo4j是由Java實(shí)現(xiàn)的開源NoSQL圖數(shù)據(jù)庫。Neo4j實(shí)現(xiàn)了專業(yè)數(shù)據(jù)庫級別的圖數(shù)據(jù)模型的存儲。與普通的圖處理或內(nèi)存數(shù)據(jù)庫不同,Neo4j提供了完整的數(shù)據(jù)庫特性,包括ACID 事務(wù)的支持、集群支持、備份與故障轉(zhuǎn)移等,這使其適合于企業(yè)級生產(chǎn)環(huán)境下各種應(yīng)用。
Neo4j還提供了一些特殊的功能:
一個本地化的圖數(shù)據(jù)庫:Neo4j自底向上構(gòu)建成一個圖數(shù)據(jù)庫。它的體系結(jié)構(gòu)旨在優(yōu)化快速管理、存儲和遍歷節(jié)點(diǎn)和關(guān)系。在Neo4j中,關(guān)系是數(shù)據(jù)庫中最重要的元素,它代表節(jié)點(diǎn)之間的相互聯(lián)系。眾所周知,在關(guān)系數(shù)據(jù)庫領(lǐng)域中,“關(guān)系”適用于多個不同表之間的連接操作,這種操作的性能下降與關(guān)系的數(shù)量呈指數(shù)級別的,但在Neo4j中則是用于從一個幾點(diǎn)指向另一個節(jié)點(diǎn),其性能卻是線性級別的。
界面友好:提供了查詢與展示的Web操作界面。對于圖數(shù)據(jù)模型使用D3.js做數(shù)據(jù)可視化,形象地展示了數(shù)據(jù)模型的節(jié)點(diǎn)和關(guān)系。
聲明式圖查詢語言:Cypher是一種聲明式圖數(shù)據(jù)庫查詢語言,它表現(xiàn)力豐富,查詢效率高,其地位和作用域關(guān)系型數(shù)據(jù)庫中的SQL類似,Cypher還有良好的擴(kuò)展性,用戶可以定制自己的查詢方式(如自定義過程)。
ACID事務(wù):Neo4j通過ACID事務(wù)提供真正的數(shù)據(jù)安全,Neo4j使用事務(wù)來保證輸在硬件故障或系統(tǒng)奔潰的情況下不會丟失。
高性能:Neo4j使用多副本主從復(fù)制的方式構(gòu)建高可靠集群,支持大數(shù)據(jù)集合并且可以不斷擴(kuò)展其容量,可存儲數(shù)百萬億個實(shí)體,提供了可容錯、可擴(kuò)展的集群,此外Neo4j還提供熱備份和性能監(jiān)控功能。
Azure Cosmos DB是微軟提供的一種用于新式應(yīng)用開發(fā)的完全托管的NoSQL數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫。Azure Cosmos DB提供個位數(shù)的毫秒響應(yīng)時間以及自動和即時可伸縮性,不管什么規(guī)模都可以保證速度。SLA支持的可用性和企業(yè)級安全性可確保業(yè)務(wù)連續(xù)性。
- 在全球任何位置提供統(tǒng)包式多區(qū)域數(shù)據(jù)分布;
- 開源API;
- 適用于常用語言的SDK。
Virtuoso可以對RDF數(shù)據(jù)進(jìn)行有效的存儲和管理?;赩irtuoso進(jìn)行RDF數(shù)據(jù)存儲的應(yīng)用也越來越多,BioGateway、Bio2RDF、DBpedia-live和Neurocommons。
Virtuoso提供的開源版本能支持?jǐn)?shù)十億規(guī)模的三元組存儲和管理。
Virtuoso是OpenLink公司開發(fā)的一款跨平臺的對象關(guān)系數(shù)據(jù)庫、虛擬/通用數(shù)據(jù)庫,擁有強(qiáng)大的過程語言,支持Java和.Net語言的內(nèi)嵌,可以通過Web、Web Services、ODBC和JDBC等進(jìn)行數(shù)據(jù)的訪問。
Virtuoso在現(xiàn)有(對象)關(guān)系數(shù)據(jù)庫上增加了對RDF數(shù)據(jù)的支持,一方面可以充分利用傳統(tǒng)數(shù)據(jù)庫的事務(wù)處理、查詢優(yōu)化、訪問控制、日志和數(shù)據(jù)恢復(fù)等功能,技術(shù)成熟度高、系統(tǒng)穩(wěn)定,另一方面可以實(shí)現(xiàn)語義數(shù)據(jù)和其他數(shù)據(jù)的無縫連接。
參考文獻(xiàn)
[1]https://www.oracle.com/cn/autonomous-database/what-is-graph-database/#how-graph-database-works 2023.3.6
[2]https://tdan.com/knowledge-graphs-vs-property-graphs-part-1/27140 2023.3.6
[3]https://db-engines.com/en/ranking_trend/graph+dbms 2023.2.23
網(wǎng)頁標(biāo)題:五分鐘技術(shù)趣談|圖形數(shù)據(jù)庫介紹
鏈接URL:http://www.5511xx.com/article/cccdish.html


咨詢
建站咨詢
