图数据库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 /usr/local -xvf go1.8.1.linux-amd64.tar.gz

配置环境变量:

vim /etc/profile
export PATH=$JAVA_HOME/bin:$MONGODB_PATH/bin:/usr/local/go/bin:$PATH
export GOPATH=/usr/local/go

2.下载cayley的binary安装程序

去官方的下载网址https://github.com/cayleygraph/cayley/releases,选择下载稳定版的最新版本,我的环境是Redhat7,64位的linux环境。下载v.0.6.1的AMD64位linux版本。

https://github.com/cayleygraph/cayley/releases/download/v0.6.1/cayley_v0.6.1_linux_amd64.tar.gz

这个地址,若下载有问题,可以去这个地址下载.

cayley这个是二进制程序,解压后直接可以使用。

3.配置cayley

解压下载的cayley文件gz包,将里面的cayley.cfg.example拷贝到/etc/下,重命名为cayley.cfg

[[email protected] cayley_v0.6.1_linux_amd64]# cp cayley.cfg.example /etc/cayley.cfg

将/etc/cayley.cfg的内容修改为如下:

{
"database": "mongo",
"db_path": "10.90.7.10:27017",
"read_only": false,
"listen_host":"0.0.0.0",
"listen_port":"64100"
}

mongo数据库的安装过程,请参照我前面的博客spring4与mongodb的集成,还是很简单的。

4.加载数据到cayley,这个过程,cayley用到了cayley.cfg这个配置文件

[[email protected] cayley_v0.6.1_linux_amd64]# ./cayley load -quads data/testdata.nq --alsologtostderr=true
I0516 12:58:06.691039   30116 cayley.go:190] Cayley v0.6.1 built 2017-04-12T11:41:20-07:00
I0516 12:58:06.691323   30116 cayley.go:197] Setting GOMAXPROCS to 24
I0516 12:58:06.691337   30116 db.go:51] Opening quad store "mongo" at 10.90.7.10:27017
I0516 12:58:06.711636   30116 db.go:67] Opening replication method "single"

此时,连接到mongo数据库,可以看到,多了一个cayley的db。里面有3个collection。

> show dbs;
admin     0.000GB
cayley    0.000GB
local     0.000GB
robotkdb  0.000GB
> use cayley
switched to db cayley
> show collections
log
nodes
quads
> 

5.测试

命令行的方式操作cayley:

[[email protected] cayley_v0.6.1_linux_amd64]# ./cayley repl
creating new history file: ".cayley_history"
cayley> :a
Error: not a valid quad: incomplete N-Quad
cayley> 2+2

=> 4
-----------
1 Result
Elapsed time: 0.108118 ms

cayley> 2*9

=> 18
-----------
1 Result
Elapsed time: 0.106414 ms

cayley> graph.Vertex("<dani>").All()

****
id : <dani>
=> <nil>
-----------
2 Results
Elapsed time: 0.693895 ms

cayley> 

http的方式操作cayley:

[root[email protected] cayley_v0.6.1_linux_amd64]# ./cayley http
Serving Gephi GraphStream at http://localhost:64100/gephi/gs
Cayley now listening on 0.0.0.0:64100[[email protected] cayley_v0.6.1_linux_amd64]# ./cayley http
Serving Gephi GraphStream at http://localhost:64100/gephi/gs
Cayley now listening on 0.0.0.0:64100

这个时候,会出现html的操作界面。我这里有截图,以示安装效果!

下面这个图,是写四元组的示例:

到此,cayley基于mongo的环境就算完成。至于cayley的具体如何使用,比如增删改查之类的,下一个博文进行介绍!

周末愉快!

时间: 2024-12-05 06:20:31

图数据库cayley+mongo的起航之旅的相关文章

Google Cayley图数据库使用方法

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

neo4j 图数据库安装及介绍

neo4j 图数据库安装及介绍 一.neo4j图数据库介绍 图数据库,顾名思义就是利用了"图的数据结构来作为数据存储逻辑体现的一种数据库",所以要想学好图数据库当然需要了解一些关于图数据结构的算法!同样的作为图数据结构中很多常用的算法在图数据库中是默认提供支持的,对数据进行查询.计算的操作,比如常见的最短路径算法.pagerank算法等等这些算法,都是图数据结构中常见的算法!当然了neo4j作为一个图数据库当然也会提供这些算法的实现,方便使用者对数据进行操作! 那么图数据结构具体又包含

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

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

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

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

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

图数据库 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的架构图十分清

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

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

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