5個(gè)優(yōu)秀的開(kāi)源圖數(shù)據(jù)庫(kù)
在過(guò)去的幾年中,圖數(shù)據(jù)庫(kù)變得越來(lái)越流行,因?yàn)樗鼈優(yōu)楸硎鰯?shù)據(jù)提供了極大的靈活性。大多數(shù)圖數(shù)據(jù)庫(kù)都是用Java編寫的,但是在Python,.NET,PHP和C ++中有一系列好的解決方案。
1.Neo4j社區(qū)版
Neo4j是比較流行的高度可擴(kuò)展的本地圖數(shù)據(jù)庫(kù)(用Java編寫)之一。Neo4j的Graph平臺(tái)經(jīng)過(guò)優(yōu)化,可以存儲(chǔ),映射,分析和遍歷連接的數(shù)據(jù)網(wǎng)絡(luò),以發(fā)現(xiàn)不可見(jiàn)的上下文和隱藏的關(guān)系。
通過(guò)直觀地映射數(shù)據(jù)點(diǎn)及其之間的連接,Neo4j支持智能實(shí)時(shí)應(yīng)用程序,包括:人工智能,機(jī)器學(xué)習(xí),物聯(lián)網(wǎng),實(shí)時(shí)推薦;主數(shù)據(jù)管理;欺詐識(shí)別;身份和訪問(wèn)管理。
Neo4j帶有2個(gè)版本:社區(qū)版和企業(yè)版。Community Edition是學(xué)習(xí)Neo4j和不需要大量擴(kuò)展或?qū)I(yè)服務(wù)與支持的小型項(xiàng)目的理想選擇。企業(yè)版具有與社區(qū)版相同的功能,具有企業(yè)級(jí)可用性,管理以及向上和向外擴(kuò)展功能。
Neo4j社區(qū)版的主要功能和優(yōu)勢(shì):
- 標(biāo)記屬性圖模型
- 本機(jī)圖形處理和存儲(chǔ)
- 密碼圖查詢語(yǔ)言
- 通過(guò)本地標(biāo)簽索引快速寫入
- 通過(guò)復(fù)合索引快速讀取
- ACID交易
- 高性能本機(jī)API
- Java,Python,C#和JavaScript,PHP,NodeJS等的語(yǔ)言驅(qū)動(dòng)程序。
- 非常快。
2.HyperGraphDB
HyperGraphDB是一種通用的開(kāi)源數(shù)據(jù)存儲(chǔ)機(jī)制。顧名思義,它是用于存儲(chǔ)超圖的數(shù)據(jù)庫(kù)。HyperGraphDB主要設(shè)計(jì)用于知識(shí)管理,AI和語(yǔ)義Web項(xiàng)目,但它也用作各種規(guī)模Java項(xiàng)目的嵌入式面向?qū)ο蟮臄?shù)據(jù)庫(kù)。盡管HyperGraphDB屬于圖數(shù)據(jù)庫(kù)的通用系列,但其許多設(shè)計(jì)都提供了以任意復(fù)雜度來(lái)管理結(jié)構(gòu)豐富的信息的方法。
主要功能和優(yōu)點(diǎn):
- 面向圖的存儲(chǔ)。
- 強(qiáng)大的數(shù)據(jù)建模和知識(shí)表示。
- 圖節(jié)點(diǎn)之間的N元高階關(guān)系。
- 圖遍歷。
- 關(guān)系型查詢。
- 可自定義的索引編制和存儲(chǔ)管理。
- 可擴(kuò)展的動(dòng)態(tài)數(shù)據(jù)庫(kù)模式。
- 開(kāi)箱即用的Java OO數(shù)據(jù)庫(kù)。
- 非阻塞并發(fā)寫入和讀取!
- 用于數(shù)據(jù)分發(fā)的P2P框架。
3.Titan分布式圖數(shù)據(jù)庫(kù)
Titan是很具擴(kuò)展性的開(kāi)源圖數(shù)據(jù)庫(kù)之一,已優(yōu)化用于存儲(chǔ)和查詢包含數(shù)千億個(gè)頂點(diǎn)和邊的圖形??梢栽贖adoop中進(jìn)行此操作,對(duì)大型數(shù)據(jù)集非常有用。Titan是一個(gè)事務(wù)數(shù)據(jù)庫(kù),支持?jǐn)?shù)千個(gè)并發(fā)用戶實(shí)時(shí)執(zhí)行復(fù)雜圖形。Titan具有彈性和線性的可擴(kuò)展性,可以滿足不斷增長(zhǎng)的數(shù)據(jù)和用戶群的需求。實(shí)現(xiàn)語(yǔ)言是Java。
主要功能和優(yōu)點(diǎn):
- 多數(shù)據(jù)中心高可用性。
- 支持ACID和最終的一致性。
- 支持各種存儲(chǔ)后端:Apache Cassandra,Apache HBase,Oracle BerkeleyDB。
- 通過(guò)與大數(shù)據(jù)平臺(tái)(Apache Spark,Apache Giraph和Apache Hadoop)集成,支持全局圖數(shù)據(jù)分析,報(bào)告和ETL。
- 通過(guò)以下方式支持地理,數(shù)值范圍和全文本搜索:ElasticSearch,Solr,Lucene。
- 與TinkerPop圖棧的本機(jī)集成:Gremlin圖查詢語(yǔ)言,Gremlin圖服務(wù)器,Gremlin應(yīng)用程序。
4.ArangoDB
由于其C ++內(nèi)核,ArangoDB是一個(gè)非??焖俚慕鉀Q方案。可以將ArangoDB用作鍵/值,文檔或圖的專用數(shù)據(jù)庫(kù),并在一個(gè)查詢中混合使用這些數(shù)據(jù)模型。ArangoDB設(shè)計(jì)為本地多模型數(shù)據(jù)庫(kù),可讓你以非常靈活的方式對(duì)數(shù)據(jù)進(jìn)行建模并支持大量用例??梢詳U(kuò)展ArangoDB以更好地滿足你的需求??梢酝ㄟ^(guò)Foxx(一個(gè)由Google V8支持的數(shù)據(jù)庫(kù)微服務(wù)JavaScript框架)添加邏輯,從而在C ++級(jí)別上完全訪問(wèn)ArangoDB的功能。
主要功能和優(yōu)點(diǎn):
- 模式匹配
- 最短路徑
- 分布式圖
- 嵌套屬性
- 全面遍歷
- 交易次數(shù)
- 自組織集群狀態(tài)管理。
- 快速集群?jiǎn)?dòng)等。
5.Apache TinkerPop
Apache TinkerPop還是一個(gè)受歡迎的開(kāi)源圖數(shù)據(jù)庫(kù)。Apache TinkerPop是與供應(yīng)商無(wú)關(guān)的圖計(jì)算框架,為批處理分析圖形處理器(OLAP)和實(shí)時(shí)事務(wù)性圖形數(shù)據(jù)庫(kù)(OLTP)的分發(fā)。當(dāng)數(shù)據(jù)系統(tǒng)啟用TinkerPop時(shí),可以將域建模為圖形,并使用Gremlin圖形遍歷語(yǔ)言對(duì)其進(jìn)行分析。此外,所有啟用TinkerPop的系統(tǒng)都相互集成。
主要功能和優(yōu)點(diǎn):
- 圖形遍歷語(yǔ)言– Gremlin設(shè)計(jì)為可跨語(yǔ)言工作。
- 將關(guān)系數(shù)據(jù)庫(kù)和圖數(shù)據(jù)庫(kù)捆綁在一起。
- 直到使用Tinkerpop 3為止,Python和其他語(yǔ)言的工作人員都可以選擇。
- 可以用于分布式環(huán)境中的小型圖或大型圖。
- OLTP和OLAP遍歷
- 命令式和聲明式遍歷。
這里還推薦一些其他好的解決方案:
ThingSpan——可擴(kuò)展的圖分析平臺(tái)。它由Objectivity/DB支持,通過(guò)與Apache Spark和Hadoop分布式文件系統(tǒng)本地集成來(lái)利用開(kāi)源堆棧。
Cayley——其靈感來(lái)自Freebase和Google的Knowledge Graph背后的圖數(shù)據(jù)庫(kù)。
OpenLink Virtuoso——用于數(shù)據(jù)訪問(wèn),虛擬化,集成和多模型關(guān)系數(shù)據(jù)庫(kù)管理的現(xiàn)代企業(yè)級(jí)解決方案。
Apache Giraph——為實(shí)現(xiàn)高可伸縮性而構(gòu)建的迭代圖處理系統(tǒng)。
VelocityGraph——可分發(fā)的開(kāi)源C#.NET混合NoSQL圖數(shù)據(jù)庫(kù)和對(duì)象數(shù)據(jù)庫(kù)。高性能數(shù)據(jù)持久性。
InfoGrid——具有許多其他軟件組件的開(kāi)源Web圖數(shù)據(jù)庫(kù)。