QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

Cayley:Google 开源的图数据库

  • 2014-06-30
  • 本文字数:908 字

    阅读完需:约 3 分钟

近日,Google 开源了图数据库 Cayley 。Cayley 是受 Freebase 和 Google 的 Knowledge Graph 背后的图数据库 graphd 所启发,由 Google 工程师 Barak Michener 开发的一款开源图数据库。图数据库是一种 NoSQL 数据库,适合处理大量复杂、互连接、低结构化的数据。图数据库与其他数据库不同,它更擅长描述数据之间的关系,所以被大量用于社交网络、推荐系统等专注于构建关系图谱的系统。

Cayley 使用 Go 语言编写,创始人 Barak 在博客中解释了选择 Go 的原因,“Cayley 需要支持高速且大并发的存取,Go 看起来是不错的选择。基于官方提供的标准包以及社区开源的包,开发过程中的一些大的障碍已经得以解决,再结合 Go 的并发模式,开发一个比 graphd 性能更高的图数据库成为可能。”

Cayley 的目标是成为开发者在 Linked Data 和图数据(语义网络、社交网络等)的工具之一。初步性能测试表明,在普通 PC 硬件和硬盘上,基于 LevelDB 存储的 Cayley 跑 1.34 亿三元组毫无压力,多跳交叉查询(比如有 X 和 Y 两位影星同时出演的电影)只需 150ms。Cayley 的主要特点如下:

  • Go 语言实现
  • 运行简单(三四条命令)
  • RESTful API(或者 REPL)
  • 内置查询编辑器和可视化工具
  • 支持多种查询语言:JavaScript、MQL
  • 多种后端存储数据库:LevelDB(单机)、MongoDB 或者内存
  • 模块化设计,容易扩展
  • 良好的测试覆盖
  • 速度快

值得注意的是,虽然 Cayley 在 GitHub 上放在 Google 名下,但它却不是 Google 官方项目,只是得到了 Google 的许可,由其员工创建并维护,类似的项目也有很多,比如 Protocol Buffers、AngularJS。

目前社区中比较成熟的图数据库是 Neo4j,它是一个用 Java 实现、完全兼容 ACID 的图形数据库。Cayley 与 Neo4j 相比最大的优势可能就是免费(Neo4j 不完全免费,使用全部功能需要有商业许可),关于二者性能的比较目前社区中还没有,相信接下来会有比较多的对比类文章。另外,在 Hacker News 上有开发者也提到另外一款图数据库 Orly ,从其 GitHub 状态来看,发展势头也不错。

感兴趣的读者可以观看 Google IO 大会上《构建一个小的知识图谱》主题演讲来了解 Cayley。在 GAE 上也运行了一个 Cayley 的案例,包括 30000 部电影以及它们的演员、角色、导演信息,读者可以测试学习。

2014-06-30 05:5515046
用户头像

发布了 219 篇内容, 共 142.8 次阅读, 收获喜欢 194 次。

关注

评论

发布
暂无评论
发现更多内容

线程池的优点及其原理,代码实现线程池。简单、明了。

Linux服务器开发

后端 网络编程 线程池 Linux服务器 web服务器

【得物技术】搜索引擎技术简介

得物技术

搜索引擎 技术 算法 排序 搜索

讲述我在阿里六面的经历,幸好我掌握了这份“Java并发编程+面试题库”成功拿到20K的offer

比伯

Java 编程 架构 面试 计算机

打造Django私有化缓存组件django-api-cache

pygodnet

django django-api-cache django缓存 私有化缓存 接口缓存

技巧收藏|10个JavaScript常用数组操作方法

华为云开发者联盟

Java 数组 开发

ETV全球熵APP系统开发|ETV全球熵软件开发

系统开发 现成系统

想了解任务型对话机器人,我们先从自然语言理解聊起

华为云开发者联盟

人工智能 机器人 自然语言

已拿腾讯后台开发岗offer,简单说下自己的面试经历和学习路线

程序员小灰

c++ 后台开发 架构师 TCP/IP Linux服务器开发

《迅雷链精品课》第十课:共识算法理论基础

迅雷链

区块链

mysql的这些坑你踩过吗?快来看看怎么优化mysql?

比伯

Java 编程 架构 面试 计算机

训练营第七周作业

大脸猫

极客大学架构师训练营

我在阿里巴巴做 Serverless 云研发平台

阿里巴巴云原生

Serverless 容器 开发者 云原生 CloudNative

价值、产业、数据加密,区块链如何助力互联网升级?

CECBC

区块链 互联网

LeetCode题解:52. N皇后 II,回溯+哈希表,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

程序员的故事

Philips

敏捷开发 快速开发 原创小说 企业开发 企业应用

每周学点TARS——服务自定义命令

TARS基金会

c++ DevOps 后端 TARS

架构师训练营第二周框架设计课后练习

Geek_xq

一周信创舆情观察(11.23~11.29)

统小信uos

智能与影像的强耦合:华为Mate 40系列的视觉探索

脑极体

拆解增长黑客之知识篇

懒杨杨

产品 运营 增长

接口测试怎么进行,如何做好接口测试

测试人生路

软件测试 接口测试

年轻人想详细了解做了十年Linux跟做了十年Windows的程序员差距有多大吗?听我慢慢道来!

ShenDu_Linux

Linux 程序员 windows

看区块链如何打通信息壁垒,盘活万亿级”积分”市场

CECBC

区块链 信息

只能用分布式锁,也能搞定每秒上千订单的高并发优化?

Java架构师迁哥

挑战赛 | 话题王者VS互动先锋(第一季)

InfoQ写作社区官方

话题讨论 热门活动

训练营第七周总结

大脸猫

极客大学架构师训练营

区块链产业下的“非遗”突围战:商业化和手艺人发掘

CECBC

区块链 非遗

我对业务方提出需求的态度

boshi

随笔杂谈 需求落地

HTTP协议概述

落日楼台H

https HTTP 协议 HTTP2.0 HTTP3.0

「更高更快更稳」,看阿里巴巴如何修炼容器服务「内外功」

阿里巴巴云原生

容器 运维 云原生 双十一 CloudNative

架构师训练营 1 期 -- 第十一周总结

曾彪彪

极客大学架构师训练营

Cayley:Google开源的图数据库_Google_小盖_InfoQ精选文章