开发者 |
Neo4j.Inc |
百度 |
欧尚 |
Dgraph Labs Inc. |
初次发布 |
2007 |
2016 |
2019 |
2016 |
是否收费 |
企业版收费,社区版只能单机 |
内容 |
内容 |
免费 |
支持的数据模型 |
图 |
图 |
图 |
图 |
实现语言 |
java、scala |
java |
C++ |
Go |
图查询语言 |
cypher |
gremlin |
nGQL |
GraphQL |
图处理 |
独立图处理引擎 |
使用Tinkerpop3 |
nGQL |
gRPC (using protocol buffers) API |
多图实例 |
不支持 |
一个server配置多个图,可以同时应用互不影响 |
支持多图空间 |
支持 |
存储架构 |
单机存储,企业版提供备份功能 |
支持持后端存储转换(hbase、rocksdb、cassandra、postgreSQL、mysql、ScyllaDB) |
RAFT分布式存储 |
自身存储 |
分布式支持 |
企业版提供集群模式 |
支持 |
支持 |
原生切片支持 |
OLAP支持 |
数据库本身不支持 |
内容 |
支持 |
支持 |
二级索引 |
有(索引由子系统作为插件提供,基于lucene) |
支持 |
支持 |
有(中文索引支持不好) |
范围索引 |
支持 |
支持 |
支持 |
支持 |
高级索引(联合索引、全文索引) |
支持 |
支持 |
支持 |
? |
APIs及其他访问方法 |
Cypher query+Java API+RESTful HTTP API+Spring Data neo4j+Tinkerpop3 |
支持HTTP RESTful API,原生仅支持Java语言Client;支持Gremlin API,如果对外暴露Gremlin-Server后可支持Java、Python、C#、JS语言版本的Client |
RESTful HTTP API+web services |
GraphQL+gRPC API+HTTP API |
支持语言 |
java、JS、Python等 |
内容 |
Java、Python、Go |
java、JS、Python等 |
多节点存储数据 |
无 |
支持 |
支持 |
支持 |
多节点数据备份 |
只有企业版使用raft协议集群模式 |
支持 |
支持 |
多主备份,用raft协议实现集群化 |
外键支持 |
支持 |
支持 |
不支持 |
不支持 |
事务概念 |
ACID |
支持RC级别事务 |
内容 |
不支持 |
一致性支持 |
集群模式可配置最终一致,单机模式支持立即一致 |
立即一致性 |
立即一致性 |
最终一致和立即一致 |
数据持久化 |
支持 |
支持 |
支持 |
支持 |
访问控制 |
支持LDAP,活动目录 |
支持用户角色访问控制 |
基于角色的访问控制 |
不支持 |
全文检索功能 |
Lucene |
内置支持全文索引,不依赖额外存储,易维护 |
不支持 |
不支持 |
图分区 |
不支持 |
支持 |
支持 |
支持 |
全内存式存储 |
不支持 |
支持 |
支持 |
支持 |
容量在线水平扩展 |
不支持 |
支持 |
支持 |
支持 |
属性图 |
支持 |
支持 |
支持 |
支持 |
多ID类型(自增、主键、自定义ID) |
不支持 |
支持 |
支持 |
支持 |
属性类型(数字、字符串、日期、集合) |
支持 |
支持 |
支持 |
支持 |
图算法 |
通过cypher自行实现 |
封装了(ShortestPath、k-out、k-neighbor等),使用更友好 |
支持全路径 / 最短路径算法 |
支持 |
性能 |
单机性能较好 |
大数据量时,多跳查询某些情况下有可能不如neo4j |
分布式很好 |
支持batch处理,号称新一代图数据库处理引擎 |
大规模查询 |
单机查询,十亿级别;数据到达一定规模,性能会降低 |
支持千亿级数据规模查询;支持 大规模分页查询 |
支持千亿级数据规模查询 |
支持千亿级数据规模查询 |
大规模数据写入性能 |
在线导入速度慢,脱机导入速度较快 |
在线导入速度快,支持覆盖写 |
支持亿级数据规模写入 |
支持 |
可视化工具 |
可视化工具,可以创建图,删除图,可以支持图数据查询。不支持数据导入等操作,不支持多图管理。 |
提供原生的可视化界面,支持多图管理、图查询、数据导入、schema复用。易用性强,新手更容易使用。 |
Nebula Graph Studio |
支持 |
高可用HA |
支持 |
支持,原生HA组件 |
支持 |
支持 |
数据导入 |
本地csv文件,支持CSV在线导入速度在1万/秒内;支持neo4j-import脱机导入,速度在10万/秒级别,只能用于初始化导入 |
支持本地csv,json,text,hdfs文件导入;也支持常用的数据库mysql、oracle、sqlServer等数据导入 |
本地csv文件,rdbms暂时不支持 |
支持 |
图管理 |
可实现可视化界面图管理 |
两种方案:1、有tools组件可以实现图的管理 2、可视化界面进行图管理 |
Nebula Graph Studio |
支持 |
Spark GraphX |
不支持 |
支持 |
支持 |
支持 |
发展模式 |
社区版开源但较多限制,商业版闭源 |
开源,兼容Apache Tinkerpop生态,由百度领头,提供本土化技术与服务,有商业版 |
支持 |
支持 |
开放及可扩展性 |
无法扩展 |
可扩展,插件化机制扩展容易,内置支持6种以上后端存储:RocksDB、Cassandra、HBase、ScyllaDB、MySQL、PostgreSQL等 |
开源可扩展 |
开源 |
数据备份恢复 |
支持脱机备份与恢复,需停机状态,商业版支持在线增量备份与脱机恢复 |
支持在线远程备份,支持在线远程恢复 |
不支持 |
支持 |
数据增量备份 |
商业版支持,且支持备份数据加密 |
不支持 |
不支持,但小时级全量导入 |
支持 |
可视化界面 |
支持,功能丰富 |
支持,功能丰富,支持可视化的数据建模、导入、分析等 |
Nebula Graph Studio |
Dgraph Ratel |
Schema约束 |
商业版支持,包括属性非空、唯一性等约束,同时也支持Schema-Free |
支持,包括模式校验、属性非空、唯一性等约束,不允许Schema-Free |
支持多图空间,Space 中独立管理 Schema 和 Data |
支持 |
超级点问题 |
超级点的邻接边查询慢,十字链表存储结构难以加速部分边的查询 |
通过Vertex-Centric索引可缓解,支持全量获取数据 |
支持 Reservoir Sampling蓄水池算法 |
? |
顶点或边数据的TTL |
不支持 |
支持 |
支持 |
不支持 |
用户认证与权限控制 |
商业版支持 |
支持用户认证、支持基于用户角色的权限控制 |
支持 |
不支持 |
高危查询语句限制 |
cyper无关 |
支持,可限制用户执行高危Gremlin语句,如禁止访问本地文件、退出进程、打开Socket连接等高危操作 |
支持 |
支持 |
运行中语句跟踪 |
商业版支持,包括:列出正在运行的查询语句、中断正在运行的查询 |
同步Gremlin查询不支持跟踪,异步Gremlin查询支持状态跟踪和任务取消 |
支持 |
? |
监控 |
商业版支持 |
支持监控接口 |
Nebula Stats Exporter 对接基于 Grafana 和 Prometheus 的监视系统 |
支持监控接口 |
网友评论