1.数据库分类: 传统的关系数据库和NoSQL数据库
传统的关系数据库:mySQL、oracle
NoSQL数据库分为Graph,Document,Column Family、Key-Value Store等四种,分别对应titan、ES、hbase、redis。
2.图数据库相对于传统关系型数据库的优点
(1)传统关系型数据库为每一类实体建表,但没有对关系进行表示的机制。因此在更多实体引入之后,我们将需要越来越多的关联表,从而使得基于关系型数据库的解决方案繁琐易错。
(2)图数据库由于其独特的设计,为关系和属性的查询提供了快速的解决方案。
3.常见的图数据库
titan、neo4j、OrientDB、JanusGraph、HugeGraph、Trinity
4.图数据库比较
4.1权威评价标准
bench-mark,主要对单个文件读取、单个文件写入、单个集合上的聚合、找到邻居的邻居、找到19条最短路径等测试
Native multi-model can compete with pure document and graph databases - ArangoDB
4.2 neo4j与titan和JanusGraph:
(1)neo4j的用户生态更加完整,使用量多,受欢迎数据库排名第1。
(2)开源版neo4j不支持分布式,而JanusGraph支持分布式。
(3)neo4j的表示语言不直观,没有sql方便
4.3 Trinity与JanusGraph和Neo4j:
Trinity中的边作为Node的属性存在,本身不能具有属性;JanusGraph和Neo4j的边本身是一个对象,可以具有属性
4.4 titan与JanusGraph
JanusGraph是titan的升级版,titan目前已无人维护。
titan存在的问题:
(1)Titan 1.0.0仅仅稳定支持hadoop 1.2.1
(2)Titan 1.0.0采用较新版本的slf4j(1.7.5)和Hadoop采用的slf4j(1.4.3)版本不一致,可能会导致基于Hadoop的Titan图数据库运算,如mr.updateIndex不能正常运行.
(3)Titan 1.0.0,其PageRankVertexProgram,针对大规模顶点(>= 1000万)时,由于程序bug,没有保存部分顶点的PageRank值
5.为何不采用titan而自主研发?
(1)动态本体
(2)时空、标签、关系 高度融合
(3)录入、查询性能低
参考资料:
Benchmark: PostgreSQL, MongoDB, Neo4j, OrientDB and ArangoDB
Titan 1.0.0存在问题以及JanusGraph的改进_liliang199的专栏-CSDN博客
图数据库JanusGraph介绍及使用(一):简介_家辉自留田-CSDN博客_janusgraph
初识图数据与图数据库_进阶中的程序员吃吃的博客-CSDN博客_图数据库
图形数据库Neo4J简介 - loveis715 - 博客园
深入思考:
1.titan架构有哪些可以借鉴的地方?
图数据库 Titan 快速入门_samhacker的专栏-CSDN博客_titan图数据库
2.如何通过titan实现一个小案例?
Titan图形数据库的应用实例讲解_XiaoXiao_Yang77的博客-CSDN博客_titan数据库
转载于:https://www.cnblogs.com/zhongzihao/p/11328407.html
1. Neo4j
Neo4j是一个流行的图形数据库,它是开源的。最近,Neo4j的社区版已经由遵循AGPL许可协议转向了遵循GPL许可协议。尽管如此,Neo4j的企业版依然使用AGPL许可。Neo4j基于Java实现,兼容ACID特性,也支持其他编程语言,如Ruby和Python。
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。
官网:https://neo4j.com/
下载界面:https://neo4j.com/download-center/#releases
社区版下载链接(2018.11):https://neo4j.com/artifact.php?name=neo4j-community-3.4.10-windows.zip
2. FlockDB
FlockDB是Twitter为进行关系数据分析而构建的。FlockDB迄今为止还没有稳定的版本,对于它是否是一个真正的图形数据库,尚有争议。FlockDB和其它图形数据库(如Neo4j、OrientDB)的区别在于图的遍历,Twitter的数据模型不需要遍历社交图谱。尽管如此,由于FlockDB应用于Twitter这样的大型站点,以及它相比其它图形数据库的简洁性,仍然值得我们值得关注。
FlockDB是一个开源的分布式容错 图数据库,用于管理宽而浅的网络图。[3] Twitter最初用于存储用户之间的关系,例如关注和收藏。FlockDB与其他图形数据库不同,例如Neo4j,它不是为多跳图遍历而设计的,而是为快速设置操作而设计的,与Redis集的主要用例不同。[4]由于它仍处于Twitter使用之外的打包过程中,因此代码仍然非常粗糙,因此尚无可用的稳定版本。FlockDB发布在GitHub上Twitter发布其Gizzard框架后不久,它用于查询 FlockDB分布式数据存储区。该数据库根据Apache许可证进行许可。
Github:https://github.com/twitter-archive/flockdb
维基百科:https://en.wikipedia.org/wiki/FlockDB
3. AllegroGrap
AllegroGrap是一个基于W3c标准的为资源描述框架构建的图形数据库。它为处理链接数据和Web语义而设计,支持SPARQL、RDFS++和Prolog。
AllegroGraph是Franz Lnz公司(Web语义产品提供商,旗舰产品是基于LISP的企业开发工具)的产品之一,Pfizer、Ford、Kodak、NASA和美国国防部都是该公司的客户。
AllegroGraph是一个封闭源三元库,旨在存储RDF 三元组,这是一种标准格式的关联数据。[1] AllegroGraph目前正在商业项目[2] [3] [4] [5]和国防部项目中使用。[6] 它也是TwitLogic项目[7]的存储组件,它将语义Web引入Twitter数据。[8]
维基百科: https://en.wikipedia.org/wiki/AllegroGraph
官网:https://franz.com/agraph/support/documentation/current/agraph-introduction.html
4. GraphDB
GraphDB是德国sones公司在.NET基础上构建的。Sones公司于2007年成立,近年来陆续进行了几轮融资。GraphDB社区版遵循AGPL v3许可协议,企业版是商业化的。GraphDB托管在Windows Azure平台上。
维基百科:https://en.wikipedia.org/wiki/Graph_database
官网:http://www.graphdb.net/
5. InfiniteGraph
InfiniteGraph基于Java实现,它的目标是构建“分布式的图形数据库”,已被美国国防部和美国中央情报局所采用。
除此之外,还有其他一些图形数据库,如OrientDB、InfoGrid和HypergraphDB。Ravel构建在开源的Pregel实现之上,微软研究院的Trinity项目也是一个图形数据库项目。
维基百科:https://en.wikipedia.org/wiki/InfiniteGraph
官网:https://www.objectivity.com/products/infinitegraph/
6. TITAN
Titan是一个可扩展的图形数据库,针对存储和查询包含分布在多机群集中的数百亿个顶点和边缘的图形进行了优化。Titan是一个事务性数据库,可以支持数千个并发用户实时执行复杂的图形遍历。
此外,Titan还提供以下功能:
弹性和线性可扩展性,适用于不断增长的数据和用户群。
用于性能和容错的数据分发和复制。
多数据中心高可用性和热备份。
支持ACID和最终的一致性。
支持各种存储后端:
Apache Cassandra
Apache HBase
Oracle BerkeleyDB
通过与大数据平台集成,支持全球图形数据分析,报告和ETL:
Apache Spark
Apache Giraph
Apache Hadoop
通过以下方式支持地理位置,数值范围和全文搜索:
ElasticSearch
Solr的
Lucene的
与TinkerPop图形堆栈的本机集成:
Gremlin图查询语言
Gremlin图服务器
Gremlin应用程序
使用自由派Apache 2许可证开源。
官网:http://titan.thinkaurelius.com/
7. OrientDb
OrientDB是兼具文档数据库的灵活性和图形数据库管理链接能力的可深层次扩展的文档-图形数据库管理系统。可选无模式、全模式或混合模式下。支持许多高级特性,诸如ACID事务、快速索引,原生和SQL查询功能。可以JSON格式导入、导出文档。若不执行昂贵的JOIN操作的话,如同关系数据库可在几毫秒内可检索数以百记的链接文档图。
官网:https://orientdb.com/
W3C教程:https://www.w3cschool.cn/orientdb/
官方文档:https://orientdb.com/docs/last/