Neo4j和Titan的对比
图数据库:
图是顶点和边(或者实体和实体之间的关系)的集合,而图数据库则是按照某种方式将这个中点和边的集合进行高效的存储,以用于复杂的关系查询,或者复杂的图形计算。图形数据库属于NoSQL数据库的一种,图形存储类产品中也以下列几种较为流行及常用: Titan, Neo4J, Infinite Graph, DEX, InfoGrid, HyperGraphDB, Trinity 以及AllegroGraph。
Titan简介:
Titan支持大规模机群上的图数据存储和查询,Titan支持数据的横向扩展,图的大小可以随着机群的扩展而扩展。Titan支持并行的图事务及遍历操作,可以快速返回复杂的关系查询结果。Titan和TinkerPop、Hadoop、Spark以及ES等开源工具具有良好的集成可以协同完成许多复杂的图数据处理任务。Titan及相关生态系统图如下:
(1), Titan可以持久化数据到以下几种数据库:
- Cassandra
- HBase
- BerkeleyDB
(2), Titan 底层的实现须要索引的支持:
- Elasticsearch
- Lucene
(3), Titan数据访问方式:
- Java API
- TinkerPop工具集
Neo4j简介:
Neo4j是一个高速可扩展的本地图数据库,但是Neo4j的企业版是收费的。虽然Neo4j是一个图数据,但是Neo4j依旧是一个遵循ACID特性的数据库系统。Neo4j除了支持属性图之外,还支持标签属性图。Neo4j支持多种数据查询语言,例如TinkerPop Gremlin, API, REST, Cypher, SPARKQL等。
Titan与Neo4j对比:
|
Titan |
Neo4j |
是否免费 |
是(完全免费) |
是(社区版免费,企业版不免费) |
是否支持数据压缩 |
是 |
是 |
是否支持二级索引 |
是 |
是 |
是否支持水平扩展 |
是 |
是 |
是否Unicode编码 |
是 |
是 |
是否支持地理信息索引 |
是 |
是 |
是否支持全文本查找 |
是 |
是 |
是否支持多副本 |
是 |
是 |
是否支持数据模式 |
是 |
否 |
是否支持顶点索引 |
是 |
否 |
是否支持数据分片 |
是 |
否 |
是否支持映射规约 |
是 |
否 |
是否支持组合键 |
是 |
否 |
是否支持TTL |
否 |
否 |
数据查询方式 |
API, Gremlin, REST等 |
API, Gremlin, cypher, REST, SPARQL等 |
数据存储方式 |
Casandra, Hadoop, ES, LevelDB |
磁盘,内存 |
数据类型 |
JSON, JAVA |
JAVA |
图类型 |
属性图 |
属性图,标签属性图 |
副本模式 |
对称副本 |
主从副本 |