Cayley:开源的图数据库

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

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

Cayley的主要特点如下:

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

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

感兴趣的读者可以观看Google IO大会上《构建一个小的知识图谱》主题演讲来了解Cayley。

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Cayley:开源的图数据库