HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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:5514866
用户头像

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

关注

评论

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

项目开发全流程梳理

甜点cc

团队管理 技术管理 敏捷研发 10月月更

技术同学如何面对裁员浪潮?

老张

职场发展 求职面试

阶段三作业

Johnny

#架构实战营

如何快速解决恶意进程导致CPU飙升问题 | Linux | 运维

Appleex

Linux centos 运维 cpu 服务器

ARM架构下的Docker环境,OpenJDK官方没有8版本镜像,如何完美解决?

程序员欣宸

Java Docker 10月月更

前端安全性问题以及防御措施

甜点cc

前端 安全 学习笔记 10月月更

第九期-模块三

wuli洋

“程”风破浪的开发者|OpenHarmony 开发环境搭建

鸿蒙之旅

OpenHarmony 10月月更 “程”风破浪的开发者

模块三作业-外包学生管理系统架构设计

Diana S

架构训练营

面试官:聊聊长连接下的负载均衡

小小怪下士

Java 负载均衡 程序员 TCP

String源码分析(一)

知识浅谈

10月月更

Laravel-EloquentORM高级部分解析

乌龟哥哥

10月月更

一文带你了解 Python 中的继承知识点

宇宙之一粟

Python 面向对象 继承 10月月更

“程”风破浪的开发者|学习力是这个时代的终极竞争力

石云升

学习方法 知行合一 10月月更 “程”风破浪的开发者

数据湖(十二):Spark3.1.2与Iceberg0.12.1整合

Lansonli

数据湖 10月月更

架构实战训练营模块 3 作业

atcgnu

vue项目启动失败,内存不足处理

甜点cc

JavaScript Vue V8 10月月更

上网冲浪总是慢?试试华为云CDN,高效加速真体验!

路过的憨憨

网络畅通的“无名英雄”:华为云CDN,让数据传输又快又稳

路过的憨憨

华为

架构实战营 - 学生管理系统架构设计

π

#架构实战营

【web 开发基础】PHP 的流程控制之嵌套(巢状)条件分支结构 -PHP 快速入门 (15)

迷彩

嵌套条件表达式 10月月更 web开发基础 PHP基础

速度快、时延低、更安全,华为云CDN助力企业创新发展!

路过的憨憨

华为

“程”风破浪的开发者|数据包分析思路方法分享

穿过生命散发芬芳

学习方法 数据包分析 10月月更 “程”风破浪的开发者

Kafka生产者客户端几种异常Case详解

石臻臻的杂货铺

kafka Kafka实战 10月月更

JavaScript数组常用方法大全

CoderBin

JavaScript 面试 前端 数组 10月月更

node版本管理器:nvm 和 n区别

乌龟哥哥

10月月更

高效IO之零拷贝技术

乌龟哥哥

10月月更

使用NeuVector开展云原生安全测试

QE_LAB

云原生 安全测试

线性表数据结构和使用数组实现顺序表

石柒

10月月更

3分钟快速了解什么是千兆以太网?

wljslmz

网络技术 以太网 10月月更 千兆以太网

熬夜整理前端高频面试题(已拿offer)

loveX001

JavaScript

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