写点什么

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

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

关注

评论

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

AI大模型时代:企业如何构建数据智能基础设施

百度开发者中心

AI 大模型 人工智能’

一文搞懂设计模式—模板方法模式

Java随想录

Java 设计模式

你所在的行业,有必要做小程序么?

天津汇柏科技有限公司

小程序 小程序开发 开发小程序

orca市值机器人/刷量机器人/做市机器人

区块链技术

我是怎么用静态IP代理为Google账号保驾护航的

陈橘又青

直播回顾 | 去哪儿网研发数字化洞察实践

思码逸研发效能

思码逸荣获 TID 质量竞争力大会“2023 软件研发优秀工具奖”

思码逸研发效能

大模型时代下的文档识别与分析

百度开发者中心

人工智能 文档 大模型

细粒度的代码权限怎么做?极狐GitLab 代码所有者来帮忙

极狐GitLab

AWS安全组是什么?有什么用?

行云管家

云计算 AWS 安全组 亚马逊云

智能测试时代来临!人工智能如何颠覆测试开发传统模式?

测试人

人工智能 软件测试 自动化测试 测试开发

实例详解在Go中构建流数据pipeline

华为云开发者联盟

开发 华为云 华为云开发者联盟 Go并发范式

智能测试时代来临!人工智能如何颠覆测试开发传统模式?

霍格沃兹测试开发学社

零门槛AI开发平台EasyDL:百亿参数大模型ERNIE的加持

百度开发者中心

人工智能 深度学习 AI

NGINX Agent 的可观测性和远程配置

NGINX开源社区

Qualcomm’s “core”QCN9274 leads WiFi 7 to break through the boundaries of wireless connections

wallysSK

活动回顾 | 金融科技提质增效的成功方法论与实践案例

思码逸研发效能

Flink 在蚂蚁实时特征平台的深度应用

Apache Flink

大数据 实时计算 flink 实战

软件测试学习笔记丨Docker安装,容器管理和镜像管理

测试人

软件测试 自动化测试 测试开发

可扩展性是什么意思?为什么企业采购软件时候需要考虑可扩展性?

行云管家

软件 可扩展性 采购

AI数字虚拟人来了你会失业吗?

小齐写代码

面试官让我讲讲MySQL三大核心日志实现原理

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟

SpEL应用实战

得物技术

Java sping

通俗易懂剖析Go Channel:理解并发通信的核心机制

王中阳Go

Go golang 面经 Go 语言 Go学习路线

[行业经验] 跨AZ容灾混沌演练

腾讯云混沌演练平台

容灾 混沌演练 跨AZ

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