常见图数据库比较
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.图数据库比较
![](https://img2018.cnblogs.com/blog/924210/201908/924210-20190809170616498-1615908520.png)
4.1权威评价标准
bench-mark,主要对单个文件读取、单个文件写入、单个集合上的聚合、找到邻居的邻居、找到19条最短路径等测试
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)录入、查询性能低
参考资料:
深入思考:
1.titan架构有哪些可以借鉴的地方?
2.如何通过titan实现一个小案例?