数据库名 | Neo4j | HugeGraph | Nebula Graph | Dgraph |
---|---|---|---|---|
开发者 | 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 的监视系统 | 支持监控接口 |
图数据库选型之Four Fellow速比
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...