tinkerpop(1) 图数据库console调研

本文原文连接: http://blog.csdn.net/freewebsys/article/details/46348975 转载请注明出处!

1,关于图数据库

tinkerpop是apache孵化器下面的一个项目。

开源图数据库引擎,图数据库用的最多的是neo4j,但是有版权限制,要是使用社区版本就只能是,单机运行。

http://tinkerpop.incubator.apache.org/

文档参考:

http://tinkerpop.incubator.apache.org/docs/3.0.0.M9-incubating/

2,启动console

wget https://dist.apache.org/repos/dist/release/incubator/tinkerpop/3.0.0.M9-incubating/apache-gremlin-console-3.0.0.M9-incubating-bin.zip
unzip apache-gremlin-console-3.0.0.M9-incubating-bin.zip
mv apache-gremlin-console-3.0.0.M9-incubating console

启动console:(可以单独启动)可以尝试命令,测试数据,但是数据存储在内存中,关闭就丢失了。

cd console
# sh bin/gremlin.sh 

         \,,,/
         (o o)
-----oOOo-(3)-oOOo-----
plugin activated: tinkerpop.server
plugin activated: tinkerpop.utilities
plugin activated: tinkerpop.sugar
plugin activated: tinkerpop.tinkergraph
#打开连接
gremlin> g = TinkerGraph.open()
==>tinkergraph[vertices:0 edges:0]
#创建张三数据
gremlin> zhangsan = g.addVertex("name","zhangsan")
==>v[0]
#创建李四数据
gremlin> lisi = g.addVertex("name","lisi")
==>v[2]
#创建王五数据
gremlin> wangwu = g.addVertex("name","wangwu")
==>v[4]
#设置李四和王五朋友关系,friend是连接的名字,可以随意取。
gremlin> lisi.addEdge("friend",zhangsan)
==>e[6][2-friend->0]
#设置王五和李四朋友关系
gremlin> wangwu.addEdge("friend",lisi)
==>e[7][4-friend->2]
#查询全部数据
gremlin> g.vertices()
==>v[0]
==>v[2]
==>v[4]
#查询关系
gremlin> g.edges()
==>e[6][2-friend->0]
==>e[7][4-friend->2]
gremlin> zhangsan
==>v[0]
#删除张三数据
gremlin> zhangsan.remove()
==>null
#删除后全部数据
gremlin> g.vertices()
==>v[2]
==>v[4]
#删除后关系数据
gremlin> g.edges()
==>e[7][4-friend->2]

开启OLTP变量引擎

#开启变量引擎gt
gremlin> gt = g.traversal(standard())
==>graphtraversalsource[tinkergraph[vertices:2 edges:1], standard]
gremlin>
#查看数据
gremlin> gt.V()
==>v[2]
==>v[4]
#查询名字叫lisi的用户
gremlin> gt.V().has("name","lisi")
==>v[2]
#查询李四的朋友,因为刚才把张三删除了。所有没有数据。
gremlin> gt.V().has("name","lisi").out("friend").values("name")
#查询王五的朋友,关系是单向的。
gremlin> gt.V().has("name","wangwu").out("friend").values("name")
==>lisi

使用官方例子说明:

#初始化数据
gremlin> g = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
#初始化遍历引擎
gremlin> gt = g.traversal(standard())
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
#查询marko knows的人
gremlin> gt.V().has(‘name‘,‘marko‘).out(‘knows‘).values(‘name‘)
==>vadas
==>josh
#查询marko created的人
gremlin> gt.V().has(‘name‘,‘marko‘).out(‘created‘).values(‘name‘)
==>lop
#查询marko knows的人,且这些人 created的人
gremlin> gt.V().has(‘name‘,‘marko‘).out(‘knows‘).out(‘created‘).values(‘name‘)
==>ripple
==>lop
#查询josh created的人
gremlin> gt.V().has(‘name‘,‘josh‘).out(‘created‘).values(‘name‘)
==>ripple
==>lop

图的数据库给人直观的插入,查询,非常方便。

更多查询参考官网: http://tinkerpop.incubator.apache.org/docs/3.0.0.M9-incubating/

3,总结

本文原文连接: http://blog.csdn.net/freewebsys/article/details/46348975 转载请注明出处!

图数据库非常方便,console是一个单机的内存版本,可以进行测试,查询。

生产环境部署需要使用server版本。继续研究。

时间: 2024-10-09 02:17:16

tinkerpop(1) 图数据库console调研的相关文章

图数据库 Titan 快速入门

尤其在互联网世界,图计算越来越受到人们的关注,而图计算相关的软件也越来越丰富.本文将快速展示 Titan这个open source 的图数据库. 注:本文的操作主要基于Titan 官方的两篇文档: - http://s3.thinkaurelius.com/docs/titan/0.5.0/arch-overview.html - http://s3.thinkaurelius.com/docs/titan/0.5.0/getting-started.html 1.架构 Titan的架构图十分清

图数据库 Titan 高速入门

尤其在互联网世界,图计算越来越受到人们的关注,而图计算相关的软件也越来越丰富.本文将高速展示 Titan这个open source 的图数据库. 注:本文的操作主要基于Titan 官方的两篇文档: - http://s3.thinkaurelius.com/docs/titan/0.5.0/arch-overview.html - http://s3.thinkaurelius.com/docs/titan/0.5.0/getting-started.html 1.架构 Titan的架构图十分清

Neo4j图数据库从入门到精通

目录 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章:安装 1.环境 2.下载 3.开启远程访问 4.启动 第三章:CQL 1.CQL简介 2.Neo4j CQL命令/条款 3.Neo4j CQL 函数 4.Neo4j CQL数据类型 第四章:命令 1.CREATE创建 2.MATCH查询 3.RETURN返回 4.关系基础 5.WHERE子句 6.DELETE删除 7.REMOVE删除 8.SET子句 9.ORDER BY排序 10.UNION子句 11.LIMIT

图数据库与关系型数据库的区别与联系

最近我在用图形数据库来完成对一个初创项目的支持.在使用过程中觉得这种图形数据库实际上挺有意思的.因此在这里给大家做一个简单的介绍. NoSQL数据库相信大家都听说过.它们常常可以用来处理传统的关系型数据库所难以解决的一系列问题.通常情况下,这些NoSQL数据库分为Graph,Document,Column Family以及Key-Value Store等四种.这四种类型的数据库分别使用了不同的数据结构来记录数据.因此它们所适用的场景也不尽相同. 其中最为特别的便是图形数据库了.可以说,它和其它的

Neo4j图数据库管理系统开发笔记之二:嵌入式服务端系统界面一览

最近在neo4j java api和rmi的基础上,设计了一套neo4j管理工具,分为server端和client端,中间用rmi进行通信.基本功能包括图数据库基本信息维护管理(创建.编辑.删除.统计等),图数据库数据维护管理(创建节点和关系.编辑节点和关系属性信息.节点标签管理.索引管理.删除管理.路径深度遍历.两点之间路径寻址等),RMI服务管理等功能. 先把部分功能界面贴出来,希望能对别人有所帮助,如果有需要代码的话,给我留言.

大数据图数据库之TAO数据库

节选自<大数据日知录:架构与算法>十四章 14.1.2  TAO图数据库 Facebook是目前世界上最著名的社交网站,如果从数据抽象的角度来看,Facebook的社交图不仅包括好友之间的关系,还包括人与实体以及实体与实体之间的关系,每个用户.每个页面.每张图片.每个应用.每个地点以及每个评论都可以作为独立的实体,用户喜欢某个页面则建立了用户和页面之间的关系,用户在某个地点签到则建立了用户和地点之间的关系--如果将每个实体看作是图中的节点,实体之间的关系看作是图中的有向边,则Facebook的

图数据库cayley+mongo的起航之旅

图数据库,目前比较主流的可能是Neo4j以及cayley了.但是,由于Neo4j只有社区版是免费的,所以,选择cayley作为项目的最终选择! 今天就简单的介绍下,我的起航之旅. 1.安装go语言环境 去官方地址https://golang.org/dl/,下载稳定版本https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz解压,并将其配置到环境变量. [[email protected] tkrobot]# tar -C

基于多种转换语义的图数据库查询

1. 摘要 因为图数据库的复杂模式和不同的信息描写叙述方式,对于非专业用户来说查询复杂的图数据库是异常困难的. 一个好的图查询引擎应该支持多种转化--同义词.缩略词.简写以及本体等等,而且应该可以对搜索结果进行一个非常好地排序. 基于此问题本文提出了一种新型的查询框架来方便用户查询,解放了为构造查询图而抓耳挠腮的用户群. 2. 应用背景 2.1 应用 图数据库也是一种流行的数据存储方式.如知识图.信息网络以及社交网络等应用的数据都存储在图数据库中.由于图数据的无模式或者模式太复杂以及信息的多种描

Google Cayley图数据库使用方法

最近在用Golang做流程引擎,对于流程图的存储,我看到了Google的Cayley图数据库,感觉它可能会比较适合我的应用,于是便拿来用了用. 项目地址在这里:https://github.com/google/cayley 系统环境 : Windows 7 1. 安装 安装的过程项目文档里写的很明白,有两种安装方式: 直接下载二进制版本.解压到你喜欢的位置. 从源码安装,遵照项目文档一步一步来即可. 2. 使用 安装完成之后,你会看到一个[cayley.exe]的文件,它就是我们要用的程序了.