在萬物互聯(lián)的時(shí)代,圖數(shù)據(jù)庫在金融科技、社交網(wǎng)絡(luò)等領(lǐng)域發(fā)揮著不可替代的作用,它能清晰地揭示各類復(fù)雜模式。
本文介紹了圖數(shù)據(jù)庫的歷史由來、特性及其優(yōu)勢,并說明了圖數(shù)據(jù)庫解決的是什么樣的問題,闡述了圖數(shù)據(jù)庫的應(yīng)用場景,并對其發(fā)展做了展望。
1
概 述 #
【 簡介 】
在當(dāng)前的環(huán)境中,通信、互聯(lián)網(wǎng)、社交網(wǎng)絡(luò)和物聯(lián)網(wǎng)等領(lǐng)域積累了大量的關(guān)聯(lián)數(shù)據(jù)。
面對各種海量數(shù)據(jù),尤其是海量非結(jié)構(gòu)化數(shù)據(jù)的存儲,傳統(tǒng)的信息存儲和組織模式已經(jīng)無法滿足客戶需求,圖數(shù)據(jù)庫卻能夠很清晰地揭示各類復(fù)雜模式,提供了新的方式為數(shù)據(jù)賦能,驅(qū)動行業(yè)發(fā)展。
【 什么是圖數(shù)據(jù)庫 】
圖數(shù)據(jù)庫(Graph Database)不是存儲圖像的數(shù)據(jù)庫,而是基于圖模型,使用圖結(jié)構(gòu)進(jìn)行語義操作的非關(guān)系型數(shù)據(jù)庫,它應(yīng)用圖理論存儲實(shí)體之間的關(guān)系信息,最常見例子就是社會網(wǎng)絡(luò)中人與人之間的關(guān)系。 它使用頂點(diǎn)、 邊和屬性來表示和存儲數(shù)據(jù),支持?jǐn)?shù)據(jù)的增刪改查操作。
在圖數(shù)據(jù)庫中,最主要的組成有兩種,結(jié)點(diǎn)集和連接結(jié)點(diǎn)的關(guān)系。 結(jié)點(diǎn)集就是圖中一系列結(jié)點(diǎn)的集合,比較接近于關(guān)系數(shù)據(jù)庫中所最常使用的表,而關(guān)系則是圖數(shù)據(jù)庫所特有的組成。
圖數(shù)據(jù)庫的代表有Neo4j、ArangoDB、Virtuoso、Neptune、JanusGraph、TigerGraph等。
【 圖數(shù)據(jù)庫發(fā)展 】
據(jù)數(shù)據(jù)庫咨詢公司DBEngines統(tǒng)計(jì),圖數(shù)據(jù)庫是所有數(shù)據(jù)管理系統(tǒng)中成長最快的分類。由于很早就被Twitter,F(xiàn)acebook以及Google在內(nèi)的公司采用,圖已經(jīng)逐漸演變成當(dāng)今各行各業(yè)所使用的主流技術(shù),連續(xù)多年處于高速發(fā)展中。
2007年,第一款圖數(shù)據(jù)庫Neo4j的誕生,給關(guān)聯(lián)查詢帶來了情理之中卻又意料之外的性能優(yōu)勢。2010 年后,圖數(shù)據(jù)庫朝著多個(gè)不同的方向發(fā)展,包括支持大規(guī)模分布式圖處理、支持多模態(tài)、圖查詢語言的設(shè)計(jì)、專用硬件的適配等,并且不斷在存儲和計(jì)算能力上發(fā)展。
值得關(guān)注的是,全球最具權(quán)威的 IT 研究與顧問咨詢公司 Gartner,將圖技術(shù)列為2022年新興技術(shù)和趨勢影響力雷達(dá)圖中,五項(xiàng)具有影響力的技術(shù)之一。
圖數(shù)據(jù)庫發(fā)展史
2圖數(shù)據(jù)庫技術(shù)
在我們了解科學(xué)、政府和商業(yè)領(lǐng)域的數(shù)據(jù)集廣泛多樣性的過程中,圖起到了基地的作用。現(xiàn)實(shí)世界完全不同于關(guān)系型數(shù)據(jù)庫背后的基于表的模型,它是豐富的且互相之間充滿關(guān)聯(lián)。一旦理解了圖,你就會發(fā)現(xiàn)圖無處不在。比如,Gartner定義了商業(yè)世界的5個(gè)圖:社交、意向、消費(fèi)、興趣和移動,并指出運(yùn)用這些圖的能力是一個(gè)“可持續(xù)的競爭優(yōu)勢”。
本章將對圖數(shù)據(jù)模型、圖數(shù)據(jù)存儲以及圖數(shù)據(jù)查詢等方面進(jìn)行簡要介紹。
【 圖數(shù)據(jù)模型 】
圖模型是圖數(shù)據(jù)庫表達(dá)圖數(shù)據(jù)的抽象模型。目前主流的圖模型主要包括資源描述框架(RDF)和屬性圖兩種。
RDF提供了一個(gè)統(tǒng)一的標(biāo)準(zhǔn)來描述資源,所謂資源可以指類、屬性、實(shí)例等。 RDF 在形式上表示為 SPO(subject, predicate, object)三元組,即(主語/主體、謂語/屬性、賓語/客體),用于描述具體的事物及關(guān)系。
RDF模型
相較于RDF,目前主流的圖數(shù)據(jù)庫選擇的圖模型是屬性圖。 **屬性圖由點(diǎn)、邊、標(biāo)簽和屬性組成。**開源圖數(shù)據(jù)庫 Neo4j 和 JanusGraph 都采用屬性圖的數(shù)據(jù)模型。
屬性圖模型
【 圖數(shù)據(jù)存儲 】
**圖數(shù)據(jù)庫有原生和非原生存儲兩種存儲方式。**我們以Neo4j和JanusGraph為例簡要說明兩種方式。
Neo4j使用原生設(shè)計(jì)的圖存儲,將圖數(shù)據(jù)存儲在若干不同的存儲文件中,每個(gè)存儲文件包含圖特定部分的數(shù)據(jù)(例如,節(jié)點(diǎn)、聯(lián)系、標(biāo)簽和屬性都各自獨(dú)立的存儲),其中常用的存儲方式為鏈表、排序樹以及哈希表等。
JanusGraph 使用非原生圖存儲,將圖結(jié)構(gòu)序列化存儲到鍵值對數(shù)據(jù)庫中。也有很多圖數(shù)據(jù)庫在存儲上直接使用了 NoSQL 數(shù)據(jù)庫,比如鍵值對存儲、文檔存儲等。
【 圖數(shù)據(jù)查詢 】
按照查詢范圍的遞增順序,面向圖數(shù)據(jù)的查詢可以大體分成單點(diǎn)查詢、鄰居查詢、路徑遍歷、子圖匹配和全圖分析這幾類。
與關(guān)系模型以及其它 NoSQL 數(shù)據(jù)模型相比,基于圖數(shù)據(jù)模型的查詢具有更高的復(fù)雜度,這就對查詢語言提出了更高的要求。查詢語言按照編寫的邏輯,可以分為描述式和命令式兩種。
目前為止,圖數(shù)據(jù)庫尚且沒有業(yè)界統(tǒng)一認(rèn)可的查詢語言,通常都是僅限于一個(gè)產(chǎn)品的。不過,已經(jīng)有一些標(biāo)準(zhǔn)化的工作,使得Gremlin、SPARQL成為代表性描述式查詢語言,Cypher成為代表性命令式查詢語言。
3圖數(shù)據(jù)庫的優(yōu)勢
圖數(shù)據(jù)庫為何越來越受到歡迎呢?通過節(jié)點(diǎn),邊和屬性的圖的格式存儲數(shù)據(jù),圖數(shù)據(jù)庫克服了其他數(shù)據(jù)庫無法解決的大而復(fù)雜的數(shù)據(jù)難題,其獨(dú)特性可以體現(xiàn)為以下三個(gè)方面:
① 性能
在關(guān)聯(lián)關(guān)系的處理上,關(guān)系型數(shù)據(jù)庫處理不可避免要用到表的 JOIN 操作,非常影響性能。而圖數(shù)據(jù)庫則是類似指針直接跳轉(zhuǎn)訪問,在典型查詢上比關(guān)系數(shù)據(jù)庫通常有n個(gè)數(shù)量級的性能優(yōu)勢。
② 兼容性
現(xiàn)實(shí)中的項(xiàng)目通常是不斷演進(jìn)的,意味著數(shù)據(jù)內(nèi)容甚至數(shù)據(jù)格式也會不斷發(fā)生變化。在關(guān)系型數(shù)據(jù)庫中,這意味著表結(jié)構(gòu)的變化,或者多個(gè)新表的建立,對源數(shù)據(jù)的改動非常大。而在圖數(shù)據(jù)庫里,僅需添加新的頂點(diǎn)、邊、屬性,設(shè)置為對應(yīng)的類型即可。從本質(zhì)上說,一個(gè)頂點(diǎn)代表一個(gè)特定的數(shù)據(jù),也就是說圖數(shù)據(jù)庫更關(guān)注數(shù)據(jù)的個(gè)體,識別其關(guān)聯(lián)關(guān)系。
③ 直觀性
頂點(diǎn)和邊的圖模型相比于表模型更符合人的思維方式。比如我們面對面用紙筆交流介紹社交網(wǎng)絡(luò)關(guān)系,會自然而然地使用點(diǎn)邊的方式畫出來,這正是圖模型。在圖數(shù)據(jù)上進(jìn)行分析查詢時(shí),也可以直觀地通過點(diǎn)邊連接的拓?fù)?,交互式找到想要的?shù)據(jù)。因此有一種說法是:與關(guān)系型數(shù)據(jù)庫相比,圖數(shù)據(jù)關(guān)系才是真的處理“關(guān)系”的。
4
圖數(shù)據(jù)庫的應(yīng)用 *
圖數(shù)據(jù)庫的應(yīng)用原理是查詢和分析連接數(shù)據(jù),對海量數(shù)據(jù)建立關(guān)聯(lián),并通過多樣及快速的方法對數(shù)據(jù)進(jìn)行分析與挖掘。此外,與其他類型數(shù)據(jù)庫相比,圖數(shù)據(jù)庫的操作更為便捷、數(shù)據(jù)更加直觀、存儲模式靈活、應(yīng)用場景豐富,是未來處理復(fù)雜數(shù)據(jù)關(guān)系的技術(shù)趨勢。
目前圖數(shù)據(jù)庫的需求應(yīng)用場景正在不斷增多,而從計(jì)算和分析數(shù)據(jù)之間關(guān)系的角度來說,圖數(shù)據(jù)庫比傳統(tǒng)數(shù)據(jù)庫的性能約有百倍以上的提升,在金融、電信等一系列領(lǐng)域都面臨著巨大的需求。
以數(shù)據(jù)的關(guān)聯(lián)特征與問題的相似性為基礎(chǔ),典型的圖數(shù)據(jù)庫應(yīng)用場景如下:反欺詐、推薦引擎、知識圖譜、主數(shù)據(jù)管理、地理空間分析以及社交網(wǎng)絡(luò)等。
圖數(shù)據(jù)庫應(yīng)用場景
5
我國****圖數(shù)據(jù)庫現(xiàn)狀
目前,歐美國家的 Neo4j 和 ArangoDB 等數(shù)據(jù)庫系統(tǒng)仍然是市場的主流。與歐美國家相比,中國人口眾多,數(shù)據(jù)量巨大,相應(yīng)的圖數(shù)據(jù)庫需求也更大。但是,中國的圖數(shù)據(jù)庫基礎(chǔ)研究相對薄弱,缺少專業(yè)的數(shù)據(jù)處理人才,更是制約了圖數(shù)據(jù)庫的應(yīng)用與發(fā)展。
因此,在發(fā)展層面,我國需要更專注產(chǎn)品的技術(shù)創(chuàng)新層面,打造更完全自主的圖數(shù)據(jù)庫;在服務(wù)層面,積極探索云計(jì)算模式的圖數(shù)據(jù)庫服務(wù),打造基于云計(jì)算的圖數(shù)據(jù)庫;在應(yīng)用方面,繼續(xù)在圖的可視化工具方面進(jìn)行創(chuàng)新,通過拖拽的方式,自動生成查詢語言、實(shí)時(shí)反饋結(jié)果,提升圖數(shù)據(jù)庫的應(yīng)用便捷性。通過圖數(shù)據(jù)庫發(fā)現(xiàn)不同事物、數(shù)據(jù)之間的深度關(guān)聯(lián),獲得更深層次的洞察。
值得一提的是,基于AMiner的數(shù)據(jù)分析顯示,我國在圖數(shù)據(jù)庫領(lǐng)域的研究熱度僅次于美國,也涌現(xiàn)了一些比較知名的圖數(shù)據(jù)庫,比如:阿里云圖數(shù)據(jù)庫Graph Database,騰訊云圖數(shù)據(jù)庫Tencent Graph Database以及百度圖數(shù)據(jù)庫HugeGraph等。
6
**# **圖數(shù)據(jù)庫的展望 #
當(dāng)前,我們對圖的了解是建立在數(shù)百年的數(shù)學(xué)和科學(xué)研究之上的,而基于此的圖數(shù)據(jù)庫正在用它獨(dú)有的優(yōu)勢展現(xiàn)出強(qiáng)大的生命力。
未來,隨著全球范圍內(nèi)互聯(lián)網(wǎng)用戶、設(shè)備和數(shù)字處理的增多,生成的數(shù)據(jù)也越來越多。也就是說,企業(yè)能否充分利用相關(guān)數(shù)據(jù)決定著企業(yè)未來的發(fā)展。圖數(shù)據(jù)庫將會是存儲、關(guān)聯(lián)和利用數(shù)據(jù)最有效的方式??梢韵胂蟮氖牵ㄟ^設(shè)計(jì)和實(shí)現(xiàn)圖數(shù)據(jù)庫解決方案,以及應(yīng)用圖算法解決復(fù)雜的商業(yè)問題的知識,將會構(gòu)建出一個(gè)開拓性的信息系統(tǒng)。
接下來圖數(shù)據(jù)庫可能面臨三大趨勢,分別是查詢語言統(tǒng)一化、圖數(shù)據(jù)庫與圖處理引擎融合化、軟硬件一體化。****我們期待未來圖數(shù)據(jù)庫的發(fā)展,能夠帶給全行業(yè)新的面貌。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2914文章
44964瀏覽量
377379 -
硬件
+關(guān)注
關(guān)注
11文章
3401瀏覽量
66490 -
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3852瀏覽量
64722
發(fā)布評論請先 登錄
相關(guān)推薦
圖模型和圖數(shù)據(jù)庫
數(shù)據(jù)庫及其應(yīng)用習(xí)題與真題解析
Amazon RDS云數(shù)據(jù)庫的優(yōu)勢
數(shù)據(jù)庫學(xué)習(xí)入門之如何進(jìn)行數(shù)據(jù)庫設(shè)計(jì)詳細(xì)分析概述資料免費(fèi)下載
![<b class='flag-5'>數(shù)據(jù)庫</b>學(xué)習(xí)入門之如何進(jìn)行<b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計(jì)詳細(xì)分析概述資料免費(fèi)下載](https://file.elecfans.com/web1/M00/62/FF/o4YBAFuPeO-Ab8vvAAB4Lbbp3u8410.png)
數(shù)據(jù)庫教程之如何進(jìn)行數(shù)據(jù)庫設(shè)計(jì)
![<b class='flag-5'>數(shù)據(jù)庫</b>教程之如何進(jìn)行<b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計(jì)](https://file.elecfans.com/web1/M00/68/C6/pIYBAFvJSIKASWEIAACwgX_ZZeE760.png)
數(shù)據(jù)庫應(yīng)用系統(tǒng)的優(yōu)勢
內(nèi)存數(shù)據(jù)庫的應(yīng)用優(yōu)勢是怎樣的
AlloyDB數(shù)據(jù)庫云服務(wù)的優(yōu)勢
PetaExpress云數(shù)據(jù)庫 MongoDB(mongodb數(shù)據(jù)庫)優(yōu)勢
云數(shù)據(jù)庫和普通數(shù)據(jù)庫區(qū)別?|PetaExpress云端數(shù)據(jù)庫
python讀取數(shù)據(jù)庫數(shù)據(jù) python查詢數(shù)據(jù)庫 python數(shù)據(jù)庫連接
數(shù)據(jù)庫應(yīng)用及其特點(diǎn) 數(shù)據(jù)庫數(shù)據(jù)的基本特點(diǎn)
NoSQL 數(shù)據(jù)庫如何選型
![NoSQL <b class='flag-5'>數(shù)據(jù)庫</b>如何選型](https://file.elecfans.com/web2/M00/3F/D7/poYBAGJqPMKAEXjWAAAOpepuZJ8475.jpg)
什么是JSON數(shù)據(jù)庫
![什么是JSON<b class='flag-5'>數(shù)據(jù)庫</b>](https://file.elecfans.com/web2/M00/3F/D7/poYBAGJqPMKAEXjWAAAOpepuZJ8475.jpg)
關(guān)于JSON數(shù)據(jù)庫
![關(guān)于JSON<b class='flag-5'>數(shù)據(jù)庫</b>](https://file1.elecfans.com//web2/M00/B2/D4/wKgaomVwCq6AaU0xAAAX8UkUmXU319.png)
評論