JanusGraph图数据库四部曲之选用JanusGraph

一.概论

最近几年,图数据库技术逐渐火热。各种图数据库产品也越来越多,比如,Neo4j,OrientDB,Titan,TigerGraph,DGraph,JanusGraph等。本人所在的公司先后使用过Neo4j,OrientDB,TigerGraph,先就谈谈上述三种图库的特点及使用感受以及为什么会使用到JanusGraph.。

二.部门对图库的需求

现小组成员与风控部门人员对图库的需求:
(1) 需要一个分布式储存分布式计算的图库.
(2) 可以提供足够的算力支撑数据分析
(3) 经济可行,最好是开源免费的产品
(4) 有友好的可视化操作界面

三.图库技术对比

(一)Neo4j
(1)开发者:Neo4j,Inc
(2)初次发布:2007年
(3)最新的一次发布:2019年9月2号V3.5.9
(4)是否收费:企业版收费,社区版免费。
(5)主要支持的数据模型:图
(6)实现语言:java,Scala
(7)SQL支持:不支持
(8)储存架构:单机储存,企业版提供备份功能
(9)分布式支持:企业版支持,社区版不支持
(10)OLAP支持:不支持
(11)是否有二级索引:有(索引由子系统作为插件提供,基于lucene)
(12)APIS及其他访问方法:Cypher query language,Java API,Neo4j-OGM,RESTful HTTP API,Spring Data Neo4j ThkerPop3
(13) 支持的编程语言:Java,Scala,JavaScript,PHP,Python,Go.等
(14)触发器:支持(通过事件处理器)
(15)多节点储存数据:无
(16)多节点数据备份:使用Raft协议集群模式(只有企业版)
(17)外键支持:支持
(18)事务概念:ACID
(19)一致性支持:集群模式可配置最终一致,单机模式支持立即一致
(20)数据持久化:支持
(21)访问控制:支持LDAP,活动目录
(22)性能:单机性能较好
(23)项目成熟度:非常成熟
(24)文档支持度:非常完整
更多信息可参考官网,链接https://neo4j.com/product/

(二)OrientDB
(1)开发者:OrientDB LTD;CallidusCloud
(2)初次发布:2010年
(3)最新的一次发布:2019年7月2号V3.1.0
(4)是否收费:可视化图形界面管理模块收费。
(5)主要支持的数据模型:图,文档,key-value
(6)实现语言:java
(7)SQL支持:有图查询语言但不支持join
(8)储存架构:单机储存,集群储存
(9)分布式支持:支持
(10)OLAP支持:OLAP支持度不是很好
(11)是否有二级索引:有
(12)APIS及其他访问方法: Java API, RESTful HTTP/JSON API, ThkerPop,Gremlin等
(13) 支持的编程语言:Java,Scala,JavaScript,PHP,Python,Go.等
(14)触发器:Hooks
(15)多节点储存数据:切片
(16)多节点数据备份:主-主备份
(17)外键支持:支持
(18)事务概念:ACID
(19)一致性支持:支持
(20)数据持久化:支持
(21)访问控制:字段级安全配置
(22)性能:强于Neo4j
(23)项目成熟度:成熟
(24)文档支持度:完整
更多信息可参考官网,链接https://orientdb.com/orientdb-enterprise/version-3-0/
(三)TigerGraph
JanusGraph图数据库四部曲之选用JanusGraph_第1张图片
更多信息可参考官网,链接https://www.tigergraph.com/product/
(四)JanusGraph
(1)开发者:Linux Foundation;originaily deleloped as Titan by Aurelius
(2)初次发布:2017年
(3)最新的一次发布:2019年7月1号V0.4.0
(4)是否收费:所有功能免费。
(5)主要支持的数据模型:图
(6)实现语言:java
(7)SQL支持:不支持
(8)储存架构:可用关系型数据库做储存,也可用NoSQL数据库做储存
(9)分布式支持:根据用户选用的储存后端而定
(10)OLAP支持:支持(通过外置OLAP计算组件实现)
(11)是否有二级索引:有
(12)APIS及其他访问方法: Java API, ThkerPop,Gremlin等
(13) 支持的编程语言:Java,Python,Clojure
(14)触发器:支持
(15)多节点储存数据:支持(后端存储架构支持)
(16)多节点数据备份:支持
(17)外键支持:支持
(18)事务概念:ACID
(19)一致性支持:最终一致和立即一致
(20)数据持久化:支持
(21)访问控制:通过Rexster Graph Server支持
(22)性能:依赖外部插件
(23)项目成熟度:不太成熟
(24)文档支持度:不太完整
更多信息可参考官网,链接https://janusgraph.org/

四.结论

Neo4j主要单机版用的多,分布式模式需要花钱购买,且不支持OLAP操作,对数据分析的支持度不足;OrientDB业界公认性能不太好,有算力上的瓶颈;TigerGraph是业界新秀,支持OLAP操作,有计算引擎和储存引擎,但价格比较高每G数据的费用是2W人民币一年,1T的数据需花费2000多W价格昂贵。
经过最终的特点对比选择了JanusGraph。
理由如下:
(1) 在计算层上可使用Spark做计算,这点优于Neo4j和OrientDB
(2) 在储存层上可使用Hbase,Cassandra做储存。
(3) 在可视化界面上,可使用第三方开源框架
(4) 即可OLAP也可OLTP,满足风控部门要求的批处理和实时处理

参考链接:
https://baijiahao.baidu.com/s?id=1620612689035884669&wfr=spider&for=pc

你可能感兴趣的:(BigData,Graph,DB)