图数据库JanusGraph与neo4j对比

图数据库

什么是图?

​ 图由两个元素组成:节点、关系

​ 每一个节点代表一个实体,每一个关系代表两个节点的关联方式

什么是图数据库?

​ 图形数据库是NoSQL数据库的一种类型,它应用图形理论存储实体之间的关系信息。图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。最常见例子就是社会网络中人与人之间的关系。关系型数据库用于存储“关系型”数据的效果并不好,其查询复杂、缓慢、超出预期,而图形数据库的独特设计恰恰弥补了这个缺陷。

何时需要使用图数据库

图数据库常用领域

  • 社交网络
    Facebook, Twitter,Linkedin用它来管理社交关系,实现好友推荐
  • 推荐和个性化
    eBay,沃尔玛使用它实现商品实时推荐,给买家更好的购物体验
  • 欺诈识别
    例如银行欺诈,信用卡欺诈,电子商务欺诈,保险欺诈等
  • 金融领域
    摩根大通,花旗和瑞银等银行在用图数据库做风控处理
  • 汽车制造领域
    沃尔沃,戴姆勒和丰田等*汽车制造商依靠图数据库推动创新制造解决方案
  • 电信领域
    Verizon, Orange和AT&T 等电信公司依靠图数据库来管理网络

怎么确定需要使用图数据库

可以从一下几点进行考虑

  1. 多对多关系

  2. 高价值关系:

    ​ 元素之间的关系和元素本身一样重要,甚至比元素本身还要重要

  3. 大规模低延迟:

    ​ 图数据库可以比其他类型的数据库更快地处理大型数据集所表示的关系,尤其是存在在复杂的关系连接

图数据库的种类

数据库评分排行网站DB-Engines的评分截图图下:

图数据库JanusGraph与neo4j对比

可以看到多模型的数据库有很多种,单一图模型的数据库第一位Neo4j,第二位JanusGraph

Neo4J和JanusGraph比较

特性\数据库名称 Neo4j JanusGraph
是否开源 社区版开源,企业版收费 完全开源
第一版发行时间 2007年 2016年12月【基于TitanDB[2012]】
技术特点 一站式服务、工具齐全 需要开发者自行组合,因此技术门坎高
查询语言 Cypher Gremlin
开发语言 Java Java
集群 企业版支持,社区版不支持 支持
量级 轻量级 重量级
额外组件依赖 官方提供组件,可以与ES、MongoDB、Cassandra等NoSqlDb进行交互 数据存储服务可以选用Cassandra、HBase或Berkeley DB服务。
数据索引可以选用Es、Solr或Lucene服务。

JanusGraph大型用户

图数据库JanusGraph与neo4j对比

JanusGraph功能【官网介绍】

图数据库JanusGraph与neo4j对比

Neo4j的企业与社区版本对比

特性 企业版 社区版
数据库集群 支持 无支持
数据库热备份 支持 手工备份,运行时需要停止服务
在线存储空间再使用 回收并再使用数据删除释放的空间 无支持
LDAP/AD继承 与企业级用户身份认证和访问控制系统集成 无支持
访问控制 为数据库管理员提供指定的用户角色功能 无支持
数据库监控 提供监控数据库运行状况的整套指标 无支持
JMX日志和监控 包含GraphiteJMX客户端 无支持
更全面的日志 包括http,刚才,security日志 无支持
节点、关系、属性限制 无限制 节点344亿,关系344亿
节点键 使用一个或者多个属性来表示唯一的节点(类似主键) 无支持
运营管理工具 管理员命令行界面 无支持
写入锁、执行过程优化、硬件支持 支持超过4核心 最多4核心