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