首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2018-11-23 graph图数据库概览,经过一个星期的Demo终于看懂了这篇文章20180818图数据库概览

2018-11-23 graph图数据库概览,经过一个星期的Demo终于看懂了这篇文章20180818图数据库概览

作者头像
Albert陈凯
发布2018-12-17 10:17:37
3.5K0
发布2018-12-17 10:17:37
举报
文章被收录于专栏:Albert陈凯Albert陈凯

20180818图数据库概览

20180818图数据库概览

朱金华

朱金华

1.总体趋势

Knowledge Base of Relational and NoSQL Database Management Systems​db-engines.com

根据DB-Engines的数据库DB-Engines排名,图数据库一骑绝尘,

图数据库2018-8的最新排名如下

Neo4j仍是最流行的图数据库,图中JanusGraph的排名并不靠前,但要考虑到他是之前很火已经被收购停止发展的titan的fork分支,所以这点加成还是可以算上的。图中与OrientDB趋势基本一致的哪个黑线就是titabDB生前的排名。

CosmosDB/DatastaxStardog/Sqrrl等商业数据库就不做分析了, 本文只对Neo4j、OrientDB、JanusGraph、Giraph、HugeGraph做下分析,其中HugeGraph并不在上面,这是百度开源的图数据库,简单看了下也不错,列在这。

2.图数据库组件

一个完善的图数据系统应该至少包括图存储及图处理引擎,数据导入导出,管理运维,查询和计算,商业化产品需要有高可用及容灾备份。

图存储和图处理:这个是图数据库的核心,图存储负责将关系型数据集非结构化数据转成图结构进行存储,这里的存储可以为原生存储或序列化之后的非原生存储;图处理则负责数据的更新及运算。

数据导入导出:数据从外界到图存储的导入导出能力,如从外界的json、csv,rdf等数据形式导入到图数据库中,或将图数据库中的数据导出来。

管理运维:管理运维则包含系统的监控,配置及可视化能力

查询和计算:主要指提供查询语言供用户进行图的查询遍历等操作。

3.图数据库

【1】Neo4j

是老牌的图数据代表。其功能强大,性能也不错,单节点的服务器可承载上亿级的节点和关系,单节点性能不够时也可进行分布式集群部署。

Neo4j有自己的后端存储,不必如同JanusGraph等一样还要依赖另外的数据库存储。 Neo4j在每个节点中存储了每个边的指针,因而遍历时效率相当高。

Neo4j分为社区版和企业版,社区版功能受限,另外其提供可视化的客户端感觉很不错。

据neo4j的中国合作方的社区中描述,主要区别如下:

1、容量:社区版最多支持 320 亿个节点、320 亿个关系和 640 亿个属性,而企业版没有这个限制;

2、并发:社区版只能部署成单实例,不能做集群。而企业版可以部署成高可用集群或因果集群,从而可以解决高并发量的问题;

3、容灾:由于企业版支持集群,部分实例出故障不会影响整个系统正常运行;

4、热备:社区版只支持冷备份,即需要停止服务后才能进行备份,而企业版支持热备,第一次是全量备份,后续是增量备份;

5、性能:社区版最多用到 4 个内核,而企业能用到全部内核,且对性能做了精心的优化;

6、支持:企业版客户能得到 5X10 电话支持(Neo4j 美国电话、邮件,微云数聚电话、微信、邮件);

考虑到这些限制,要选开源免费大容量分布式的图数据库的可以跳过了,研究图论及小型应用或不差钱的项目则选其的支持服务则另当别论。另外neo4j的协议为GPLv3,这个也不适合选用。

【2】OrientDB

OrientDB据描述性能可以达到Neo4j的数倍,但也有测试表明在遍历时磁盘空间增加,以空间换时间,遍历性能不高,但计算最短路径等性能高。 Neo4J和OrientDB在插入数据时候都会默认建立索引,索引的不同也造成了其不同操作的性能差异; Neo4J:擅长遍历图及不存在大量关系的节点的图计算 OrientDB:侧重文档数据库,主要还是SB树索引导致,空间浪费比较大;插入节点与neo4j差不多,但是在插入节点关系即边时无优化;在图论算法上性能高,但遍历性能低。 OrientDB也有社区版及企业版,但是其基于Apache2.0协议,这个更友好

【3】JanusGraph

Distributed graph database​janusgraph.org

图标

JanusGraph基于Titan发展而来,包含其所有功能,采用Tikerpop的Gremlin图查询语言,

有单独的后端存储,支持Cassandra/HBase/BerkeleyDB等做存储,支持Solr/ES/Lucence等做图索引 支持Spark GraphX/Giraph等图分析计算引擎及Hadoop分布式计算框架 原生支持集成了Tinkerpop系列组件:Gremlin查询语言,Gremlin-Server及Gremlin applications。 采用很友好的Apache2.0协议,支持对接可视化组件如Cytoscape, plugin for Apache TinkerPop,GraphexpKeyLines by Cambridge IntelligenceLinkurious

【4】HugeGraph

王二铁:百度安全开源大规模图数据库HugeGraph​zhuanlan.zhihu.com

图标

HugeGraph是支持Apache TinkerPop 3框架和Gremlin图查询语言的大型分布式图数据库,据其描述其性能是相当强劲,刚开源不久。不过貌似每个都说自己是最好最强的...

HugeGraph是一款面向分析型,支持批量操作的图数据库系统,它能够与大数据平台无缝集成,有效解决海量图数据的存储、查询和关联分析需求。HugeGraph支持HBase和Cassandra等常见的分布式系统作为其存储引擎来实现水平扩展。HugeGraph可以与Spark GraphX进行链接,借助Spark GraphX图分析算法(如PageRank、Connected Components、Triangle Count等)对HugeGraph的数据进行分析挖掘。 HugeGraph的主要特点包括: 基于TinkerPop 3 API实现,支持Gremlin图查询语言; 拥有完善的周边工具链和相关功能组件,可以满足图数据库开发的基本需求,提供易用高效的使用体验; 具备独立的Schema管理模块,丰富完善的Schema校验机制,确保图数据库中的数据完整性和一致性; 支持数据的备份和还原,可以在不同的后端存储之间转换; 多种ID生成策略应对不同业务场景,拥有完善的索引管理机制,支持多种索引查询操作; 可以实现与Hadoop、Spark、HBase、ES等大数据系统集成,支持多种Bulk Load操作,实现海量数据快速插入; 除上述特定之外,HugeGraph还针对图数据库的高频应用(例如:ShortestPath、k-out、k-neighbor等)做了特定性能优化,并且为用户提供更为高效的使用体验

我的感觉是跟titan/JanusGraph蛮像的

看其致谢果不其然,不过里面还是蛮多创新及扩展的,如果他能持续的接纳Janus和DataStax的新特性并长久发展的话用这个倒是不错。

HugeGraph relies on theTinkerPopframework, we refer to the storage structure ofJanusGraphand the schema definition ofDataStax. Thanks to Tinkerpop, thanks to JanusGraph and Titan, thanks to DataStax. Thanks to all other organizations or authors who contributed to the project.

3.图分析系统

上面简单介绍了几个图数据库,也提到其后端存储,neo4j等使用自己的原生图存储,而JanusGraph/HugeGraph等则用非原生图存储。

原生图存储一般都是经过专门为了存储和管理图结构而优化的,遍历查询性能很高,但掐非遍历类的查询则不占优势,且为了全局搜索还会占用大量内存。

非原生图存储通常将图结构序列化存储到RDBMS或其他通用存储中,如JanusGraph的HBase/Cassandra,HugeGraph甚至增加了对MySQL等的支持。

一个图分析系统除了图数据库外还要有图计算引擎,主要目的是为了进行除遍历外的图算法分析。前述的图数据库相当于OLTP,而图计算则相当于OLAP。有的图数据库也继承了少量的图计算能力,但真正的大型系统还是需要单独的计算框架。

基于图的并行计算框架,有google的Pregel,基于Spark的GraphX,Apache下的Giraph/HAMA以及GraphLab,其中Giraph是Pregel的开源实现。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.11.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 20180818图数据库概览
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档