精华 TinkerPop简述
发布于 4 年前 作者 pangguoming 2071 次浏览 来自 分享

ThinkerPop Apache 顶级项目,http://tinkerpop.apache.org/

概述

TinkerPop是一个面向实时事务处理(OLAP)以及批量、分析型(OLTP)的开源的图计算框架。TinkerPop是一个可以应用于不同图形数据库的抽象层,避免应用程序与特定数据库高度依赖。

目标

提供通用的API和工具,使开发人员可以基于不同图数据库轻松创建图形应用程序,使图形数据库与图计算解耦,方便切换不同图形数据库,简化其工作。

体系结构

image.png

Gremlin

是TinkerPop图形遍历语言,使用户能够以简但的代码进行复杂的图形遍历,Gremlin具有“写一次,随处运行” 的特点。意味着,所有支持TinkerPop的图形系统都可以使用Gremlin语言进行图形遍历。 image.png 支持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]]

回到顶部