写点什么

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

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

关注

评论

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

95后跳槽阿里网晒工资条:多亏面试前补了这个,真香

程序猿阿宇

Java java程序员 大厂面试 大厂面经 内推

3-6月面经总结,200多页真题笔记和详解(含核心考点及6家大厂)

程序猿阿宇

Java java程序员 大厂面试 秋招 大厂面经

JSON 基本使用

兮动人

json

Kubernetes宕机切换源码分析

Jason黄

源码分析 kubelet Kubernetes 集群 宕机

SpringCloud OpenFeign 请求重试

程序知音

Java spring 程序员 微服务 SpringCloud

应用系统日志打印规范实践之道

陈俊

日志 规范

体验家辛济云:CEM不是MarTech,不仅要“从0到1”,更要规避“从1到0”

B Impact

五分钟搞定YAML

俞凡

云原生 yaml

美团二面:如何解决 bin log 与 redo log 的一致性问题

飞天小牛肉

签约计划第三季

Android进阶(十二)Fragment与Activity讲解

No Silver Bullet

android Activity Fragment 8月月更

Go-Excelize API源码阅读(九)——SetSheetBackground(sheet, picture string)

Regan Yue

Go 开源 源码解读 8月日更 8月月更

【LeetCode】检查数组是否存在有效划分Java题解

Albert

LeetCode 8月月更

大逆不道,从天界偷下来的算法修仙秘籍竟然传到你手上~~(结尾有彩蛋)

武师叔

数据结构与算法 有趣的技术知识 复杂度分析 签约计划第三季 8月月更

史上最全的Java并发系列之Java中的线程池

自然

线程池 并发 8月月更

React Server Components 介绍 亮点

HullQin

CSS JavaScript html 前端 8月月更

使用 JavaScript Promise 读取 Github 某用户的数据

汪子熙

JavaScript Promise 异步编程 Javascript框架 8月月更

C++运算符重载(五)之关系运算符重载

CtrlX

c c++ C# 重载 8月月更

Java技术专家成长路线总结(思维导图)

程序猿阿宇

Java java程序员 大厂面试 秋招 大厂面经

知乎疯传,吹爆阿里P7《K8s+Jenkins》的技术手册

程序知音

Java 编程 程序员 后端技术 #k8s

废除“网络君主制”,认识 Usenet ~

掘金安东尼

前端 网络 8月月更

TE数字化共创之路 | 这场旅程,从数字化共创平台开始

明道云

STM32入门开发 编写DS18B20温度传感器驱动(读取环境温度、支持级联)

DS小龙哥

8月月更

千万级学生管理系统的考试试卷存储方案

张立奎

MySQL 原理与优化:意向锁,IS,IX

老崔说架构

计算机网络知识点全面总结(一篇全懂)

C++后台开发

网络编程 计算机网络 网络协议 底层原理 C/C++开发

【云原生】Spring Cloud Alibaba 之 Feign 远程调用 实战

Bug终结者

分布式 微服务 云原生 8月月更

超新概念出炉,JDK17的封闭类使用解析

知识浅谈

8月月更

史上最全的Java并发系列之Java中的锁的使用和实现介绍(二)

自然

多线程 并发 8月月更

如何正确理解Java领域中的多线程模型,主要用来解决什么问题?

PivotalCloud

开源一夏|OpenHarmony视频播放器

坚果

开源 OpenHarmony 8月月更

PyCharm 2022.2 发布了,支持最新 Python 3.11 和 PyScript 框架!

Python猫

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