ThinkerPop Apache 頂級項目 概述 TinkerPop是一個面向實時事務處理(OLAP)以及批量、分析型(OLTP)的開源的圖計算框架。TinkerPop是一個可以應用於不同圖形資料庫的抽象層,避免應用程式與特定資料庫高度依賴。 目標 提供通用的API和工具,使開發人員可以基於不同圖 ...
ThinkerPop Apache 頂級項目
概述
TinkerPop是一個面向實時事務處理(OLAP)以及批量、分析型(OLTP)的開源的圖計算框架。TinkerPop是一個可以應用於不同圖形資料庫的抽象層,避免應用程式與特定資料庫高度依賴。
目標
提供通用的API和工具,使開發人員可以基於不同圖資料庫輕鬆創建圖形應用程式,使圖形資料庫與圖計算解耦,方便切換不同圖形資料庫,簡化其工作。
體繫結構
Gremlin
是TinkerPop圖形遍歷語言,使用戶能夠以簡但的代碼進行複雜的圖形遍歷,Gremlin具有“寫一次,隨處運行” 的特點。意味著,所有支持TinkerPop的圖形系統都可以使用Gremlin語言進行圖形遍歷。
支持ThinkerPop框架的圖形資料庫
Amazon Neptune - Fully-managed graph database service.
Bitsy - A small, fast, embeddable, durable in-memory graph database.
Blazegraph - RDF graph database with OLTP support.
CosmosDB - Microsoft's distributed OLTP graph database.
ChronoGraph - A versioned graph database.
DSEGraph - DataStax graph database with OLTP and OLAP support.
GRAKN.AI - Distributed OLTP/OLAP knowledge graph system.
Hadoop (Spark) - OLAP graph processor using Spark.
HGraphDB - OLTP graph database running on Apache HBase.
IBM Graph - OLTP graph database as a service.
JanusGraph - Distributed OLTP and OLAP graph database with BerkeleyDB, Apache Cassandra and Apache HBase support.
JanusGraph (Amazon) - The Amazon DynamoDB Storage Backend for JanusGraph.
Neo4j- OLTP graph database (embedded and high availability).
neo4j-gremlin-bolt - OLTP graph database (using Bolt Protocol).
OrientDB - OLTP graph database
Apache S2Graph - OLTP graph database running on Apache HBase.
Sqlg - OLTP implementation on SQL databases.
Stardog - RDF graph database with OLTP and OLAP support.
TinkerGraph - In-memory OLTP and OLAP reference implementation.
Titan - Distributed OLTP and OLAP graph database with BerkeleyDB, Apache Cassandra and Apache HBase support.
Titan (Amazon) - The Amazon DynamoDB storage backend for Titan.
Titan (Tupl) - The Tupl storage backend for Titan.
Unipop - OLTP Elasticsearch and JDBC backed graph.
安裝
最新版本號為:TinkerPop 3.3.3 (Released: 8-May-2018)
有兩個版本:console、server
console:是一個單機的記憶體版本,可以進行學習測試。
server :是生產環境部署需要使用的版本。
以console版本為例:
$ unzip apache-tinkerpop-gremlin-console-3.3.3-bin.zip
$ cd apache-tinkerpop-gremlin-console-3.3.3
$ bin/gremlin.sh
\\,,,/
(o o)
-----oOOo-(3)-oOOo-----
plugin activated: tinkerpop.server
plugin activated: tinkerpop.utilities
plugin activated: tinkerpop.tinkergraph
gremlin>
與Neo4j集成實例
註意:
除非與Neo Technology達成商業協議,否則Neo4j將獲得AGPL許可 。該neo4j-gremlin模塊是Apache2許可的,因為它只引用Apache2許可的Neo4j API。
Neo4j 2.x索引利用頂點標簽來劃分索引空間。TinkerPop3不提供用於為底層圖形系統定義模式/索引的方法介面。因此,為了創建索引,直接調用Neo4j API非常重要。
要在Gremlin Server中托管Neo4j,必須先將neo4j依賴包“安裝”或以其他方式複製到Gremlin Server路徑。
自動執行此操作的方法是執行:
bin/gremlin-server.sh
install org.apache.tinkerpop neo4j-gremlin 3.3.3
一旦安裝,Gremlin伺服器配置文件必須進行編輯以包含Neo4jGremlinPlugin如圖所示conf/gremlin-server.neo4j。
gremlin> :install org.apache.tinkerpop neo4j-gremlin 3.3.3
==>Loaded: [org.apache.tinkerpop, neo4j-gremlin, 3.3.3] - restart the console to use [tinkerpop.neo4j]
gremlin> :q
...
gremlin> :plugin use tinkerpop.neo4j
==>tinkerpop.neo4j activated
gremlin> graph = Neo4jGraph.open('/tmp/neo4j')
==>neo4jgraph[EmbeddedGraphDatabase [/tmp/neo4j]]