自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

五分鐘技術(shù)趣談 | 圖形數(shù)據(jù)庫(kù)介紹

數(shù)據(jù)庫(kù)
移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,服務(wù)器上存儲(chǔ)了海量的數(shù)據(jù),在傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)上,每次計(jì)算耗費(fèi)的資源和時(shí)間是不可想象的。圖形數(shù)據(jù)庫(kù)應(yīng)運(yùn)而生,它使用簡(jiǎn)潔的形式表示數(shù)據(jù)關(guān)系,以更直觀的形式構(gòu)建商業(yè)數(shù)據(jù),處理性能也得到極大提升。圖形數(shù)據(jù)庫(kù)在金融風(fēng)控領(lǐng)域、社交網(wǎng)絡(luò)、電商等領(lǐng)域正發(fā)揮著越來(lái)越重要的作用。

Part 01  什么是圖形數(shù)據(jù)庫(kù) 

?圖形數(shù)據(jù)庫(kù)是NoSQL數(shù)據(jù)庫(kù)的一種類(lèi)型,起源于歐拉理論和圖理論,對(duì)應(yīng)英文名是Graph Database。一種專(zhuān)用于創(chuàng)建和處理圖形的專(zhuān)業(yè)化單一用途平臺(tái),圖形包括節(jié)點(diǎn)、邊和屬性,它們能夠以關(guān)系數(shù)據(jù)庫(kù)無(wú)法實(shí)現(xiàn)的方式來(lái)表示和存儲(chǔ)數(shù)據(jù)。

圖形數(shù)據(jù)庫(kù)有兩種常見(jiàn)的數(shù)據(jù)庫(kù)模型:屬性圖(Property Graphs)和資源描述框架圖(RDF Graphs)。屬性圖側(cè)重于分析和查詢(xún),而RDF圖則側(cè)重于數(shù)據(jù)集成。

1.1 屬性圖

屬性圖用于對(duì)數(shù)據(jù)之間的關(guān)系進(jìn)行建模,能夠基于這些關(guān)系進(jìn)行查詢(xú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í)體,用表示其類(lèi)型的0到多個(gè)文本標(biāo)簽進(jìn)行標(biāo)記,相當(dāng)于實(shí)體。
  • 邊(Edges):是節(jié)點(diǎn)之間的定向鏈接,也稱(chēng)為關(guān)系。其中對(duì)應(yīng)的“from node”稱(chēng)為源節(jié)點(diǎn),“to node”稱(chēng)為目標(biāo)節(jié)點(diǎn)。邊是定向的且每條邊都有一個(gè)類(lèi)型,它們可以在任何方向上導(dǎo)航和查詢(xún)。相當(dāng)于實(shí)體之間的關(guān)系。
  • 屬性(Properties):是一個(gè)鍵值對(duì),頂點(diǎn)和邊都具有屬性。

下圖是一個(gè)屬性圖片段的可視化示例,說(shuō)明了演員、導(dǎo)演、電影和電視劇的相互關(guān)系:

圖片

其中淺藍(lán)色橢圓表示節(jié)點(diǎn),深藍(lán)色框表示節(jié)點(diǎn)的標(biāo)簽,黃色框表示屬性,紅色方框表示邊的類(lèi)型。

1.2 RDF圖

RDF,即資源描述框架(Resource Description Framework),形式上主要由主謂賓(SPO, 即subject, predicate, object)三元組組成。RDF圖存在統(tǒng)一的標(biāo)準(zhǔn),其技術(shù)棧的標(biāo)準(zhǔn)是由萬(wàn)維網(wǎng)聯(lián)盟(W3C)負(fù)責(zé)管理。

RDF圖主要由以下兩種元素組成:

  • 節(jié)點(diǎn)(Nodes):可以是具備唯一性的資源或字面值(如數(shù)值、字符串)。
  • 邊(Edges):節(jié)點(diǎn)之間的有向連接,也被稱(chēng)為謂語(yǔ)(predicate),一般由主語(yǔ)指向賓語(yǔ)。

RDF也有標(biāo)準(zhǔn)的查詢(xún)語(yǔ)言SPARQL,SPARQL既是一種功能齊全的查詢(xún)語(yǔ)言,也是一種HTTP協(xié)議,可以接收通過(guò)HTTP發(fā)送的查詢(xún)請(qǐng)求。

RDF圖的標(biāo)準(zhǔn)化有一個(gè)關(guān)鍵點(diǎn)就是序列化。通過(guò)序列化可以在不同RDF圖數(shù)據(jù)庫(kù)之間無(wú)縫切換,常用的序列化格式包括Turtle(最常用)、JSON-LD、XML。

下圖是一個(gè)RDF圖片段的可視化示例,內(nèi)容和屬性圖片段示例基本一致:

圖片

相比于屬性圖數(shù)據(jù)庫(kù),RDF數(shù)據(jù)庫(kù)的可視化結(jié)果會(huì)更干凈(構(gòu)成數(shù)據(jù)的元素類(lèi)型少),但也更寬廣(節(jié)點(diǎn)和邊的數(shù)量更多)。

Part 02  圖形數(shù)據(jù)庫(kù)的優(yōu)勢(shì) 

?圖形格式可提供一個(gè)更靈活的平臺(tái),幫助用戶(hù)基于關(guān)系強(qiáng)度或關(guān)系質(zhì)量等因素查找遠(yuǎn)關(guān)系或分析數(shù)據(jù)。您可以使用圖形來(lái)探索和發(fā)現(xiàn)社交網(wǎng)絡(luò)、物聯(lián)網(wǎng)、大數(shù)據(jù)、數(shù)據(jù)倉(cāng)庫(kù)以及多種業(yè)務(wù)使用場(chǎng)景(包括銀行中的欺詐檢測(cè)、社交網(wǎng)絡(luò)中的關(guān)系發(fā)現(xiàn)以及360度客戶(hù)視圖)下復(fù)雜事務(wù)數(shù)據(jù)中的關(guān)系和模式。如今,圖形數(shù)據(jù)庫(kù)正越來(lái)越廣泛地應(yīng)用于數(shù)據(jù)科學(xué),幫助用戶(hù)更加清晰地呈現(xiàn)數(shù)據(jù)關(guān)系。

由于圖形數(shù)據(jù)庫(kù)以顯式方式存儲(chǔ)關(guān)系,因此利用頂點(diǎn)間連接的查詢(xún)和算法可以達(dá)到亞秒(而不是小時(shí)或天)級(jí)別。用戶(hù)無(wú)需執(zhí)行無(wú)數(shù)次聯(lián)接,可以更輕松地將數(shù)據(jù)用于分析和機(jī)器學(xué)習(xí),高效探索周?chē)澜纭?/span>

圖形數(shù)據(jù)庫(kù)高度靈活,功能超強(qiáng),可助您通過(guò)圖形格式,更輕松地識(shí)別復(fù)雜關(guān)系,捕獲更深入的洞察。它通常使用PGQL一類(lèi)的語(yǔ)言來(lái)運(yùn)行查詢(xún)。請(qǐng)查看以下示例,了解使用PGQL和SQL進(jìn)行查詢(xún)有何不同。

圖片

從示例中可以看出,PGQL代碼更簡(jiǎn)單,更高效。由于圖形強(qiáng)調(diào)的是數(shù)據(jù)之間的關(guān)系,因此非常適合多種不同類(lèi)型的分析。圖形數(shù)據(jù)庫(kù)尤其擅長(zhǎng):

  • 查找兩個(gè)節(jié)點(diǎn)之間的最短路徑;
  • 確定產(chǎn)生重大活動(dòng)/影響力的節(jié)點(diǎn);
  • 分析連接性,識(shí)別網(wǎng)絡(luò)的最薄弱點(diǎn);
  • 基于組中的連接距離/密度來(lái)分析網(wǎng)絡(luò)或社區(qū)狀態(tài)。

Part 03  主流圖形數(shù)據(jù)庫(kù) 

圖形數(shù)據(jù)庫(kù)TOP10排名: 

  1. Neo4j
  2. Microsoft Azure Cosmos DB
  3. Virtuoso
  4. ArangoDB
  5. OrientDB
  6. JanusGraph
  7. Amazon Neptune
  8. GraphDB
  9. TigerGraph
  10. Fauna
  11. Dgraph

2013年到2023年圖形數(shù)據(jù)庫(kù)流行趨勢(shì)統(tǒng)計(jì)圖:

圖片

Neo4j因其嵌入式、高性能、輕量級(jí)等優(yōu)勢(shì),越來(lái)越受到關(guān)注。

Neo4j是由Java實(shí)現(xiàn)的開(kāi)源NoSQL圖數(shù)據(jù)庫(kù)。Neo4j實(shí)現(xiàn)了專(zhuān)業(yè)數(shù)據(jù)庫(kù)級(jí)別的圖數(shù)據(jù)模型的存儲(chǔ)。與普通的圖處理或內(nèi)存數(shù)據(jù)庫(kù)不同,Neo4j提供了完整的數(shù)據(jù)庫(kù)特性,包括ACID 事務(wù)的支持、集群支持、備份與故障轉(zhuǎn)移等,這使其適合于企業(yè)級(jí)生產(chǎn)環(huán)境下各種應(yīng)用。

Neo4j還提供了一些特殊的功能:

? 一個(gè)本地化的圖數(shù)據(jù)庫(kù):Neo4j自底向上構(gòu)建成一個(gè)圖數(shù)據(jù)庫(kù)。它的體系結(jié)構(gòu)旨在優(yōu)化快速管理、存儲(chǔ)和遍歷節(jié)點(diǎn)和關(guān)系。在Neo4j中,關(guān)系是數(shù)據(jù)庫(kù)中最重要的元素,它代表節(jié)點(diǎn)之間的相互聯(lián)系。眾所周知,在關(guān)系數(shù)據(jù)庫(kù)領(lǐng)域中,“關(guān)系”適用于多個(gè)不同表之間的連接操作,這種操作的性能下降與關(guān)系的數(shù)量呈指數(shù)級(jí)別的,但在Neo4j中則是用于從一個(gè)幾點(diǎn)指向另一個(gè)節(jié)點(diǎn),其性能卻是線性級(jí)別的。

? 界面友好:提供了查詢(xún)與展示的Web操作界面。對(duì)于圖數(shù)據(jù)模型使用D3.js做數(shù)據(jù)可視化,形象地展示了數(shù)據(jù)模型的節(jié)點(diǎn)和關(guān)系。

? 聲明式圖查詢(xún)語(yǔ)言:Cypher是一種聲明式圖數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)言,它表現(xiàn)力豐富,查詢(xún)效率高,其地位和作用域關(guān)系型數(shù)據(jù)庫(kù)中的SQL類(lèi)似,Cypher還有良好的擴(kuò)展性,用戶(hù)可以定制自己的查詢(xún)方式(如自定義過(guò)程)。

? ACID事務(wù):Neo4j通過(guò)ACID事務(wù)提供真正的數(shù)據(jù)安全,Neo4j使用事務(wù)來(lái)保證輸在硬件故障或系統(tǒng)奔潰的情況下不會(huì)丟失。

? 高性能:Neo4j使用多副本主從復(fù)制的方式構(gòu)建高可靠集群,支持大數(shù)據(jù)集合并且可以不斷擴(kuò)展其容量,可存儲(chǔ)數(shù)百萬(wàn)億個(gè)實(shí)體,提供了可容錯(cuò)、可擴(kuò)展的集群,此外Neo4j還提供熱備份和性能監(jiān)控功能。

Azure Cosmos DB是微軟提供的一種用于新式應(yīng)用開(kāi)發(fā)的完全托管的NoSQL數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)。Azure Cosmos DB提供個(gè)位數(shù)的毫秒響應(yīng)時(shí)間以及自動(dòng)和即時(shí)可伸縮性,不管什么規(guī)模都可以保證速度。SLA支持的可用性和企業(yè)級(jí)安全性可確保業(yè)務(wù)連續(xù)性。

  • 在全球任何位置提供統(tǒng)包式多區(qū)域數(shù)據(jù)分布;
  • 開(kāi)源API;
  • 適用于常用語(yǔ)言的SDK。

Virtuoso可以對(duì)RDF數(shù)據(jù)進(jìn)行有效的存儲(chǔ)和管理?;赩irtuoso進(jìn)行RDF數(shù)據(jù)存儲(chǔ)的應(yīng)用也越來(lái)越多,BioGateway、Bio2RDF、DBpedia-live和Neurocommons。

Virtuoso提供的開(kāi)源版本能支持?jǐn)?shù)十億規(guī)模的三元組存儲(chǔ)和管理。

Virtuoso是OpenLink公司開(kāi)發(fā)的一款跨平臺(tái)的對(duì)象關(guān)系數(shù)據(jù)庫(kù)、虛擬/通用數(shù)據(jù)庫(kù),擁有強(qiáng)大的過(guò)程語(yǔ)言,支持Java和.Net語(yǔ)言的內(nèi)嵌,可以通過(guò)Web、Web Services、ODBC和JDBC等進(jìn)行數(shù)據(jù)的訪問(wèn)。

Virtuoso在現(xiàn)有(對(duì)象)關(guān)系數(shù)據(jù)庫(kù)上增加了對(duì)RDF數(shù)據(jù)的支持,一方面可以充分利用傳統(tǒng)數(shù)據(jù)庫(kù)的事務(wù)處理、查詢(xún)優(yōu)化、訪問(wèn)控制、日志和數(shù)據(jù)恢復(fù)等功能,技術(shù)成熟度高、系統(tǒng)穩(wěn)定,另一方面可以實(shí)現(xiàn)語(yǔ)義數(shù)據(jù)和其他數(shù)據(jù)的無(wú)縫連接。

?? 參考文獻(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

責(zé)任編輯:龐桂玉 來(lái)源: 移動(dòng)Labs
相關(guān)推薦

2023-07-30 10:09:36

MMD數(shù)據(jù)庫(kù)

2023-07-12 16:03:37

Android開(kāi)發(fā)架構(gòu)

2023-07-23 18:47:59

Docker開(kāi)源

2023-06-03 21:06:05

2023-08-15 14:54:02

數(shù)據(jù)庫(kù)容災(zāi)

2023-07-16 18:49:42

HTTP網(wǎng)絡(luò)

2023-04-15 20:25:23

微前端

2023-07-02 16:09:57

人工智能人臉識(shí)別

2023-07-02 16:34:06

GPU虛擬化深度學(xué)習(xí)

2023-09-12 07:10:13

Nacos架構(gòu)

2023-08-29 06:55:43

2023-07-31 08:55:15

AI技術(shù)網(wǎng)絡(luò)暴力

2023-07-12 15:50:29

機(jī)器學(xué)習(xí)人工智能

2023-08-29 06:50:01

Javamaven

2024-12-18 14:10:33

2023-08-06 07:00:59

Openstack網(wǎng)絡(luò)

2023-08-15 14:46:03

2023-09-17 17:51:43

Android 14

2023-08-06 06:55:29

數(shù)字可視化物聯(lián)網(wǎng)

2023-09-02 20:22:42

自動(dòng)化測(cè)試軟件開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)