【51CTO.com快译】图形数据库明确表达了节点之间的关系,在分析网络(计算机、人类、地理或其他对象)时比关系数据库更有效。这让图形数据库在面对欺诈检测和推荐系统等应用场景时更胜一筹。
图形数据库的主要优点之一是能够运行图形计算算法。这些算法用于不是很适合关系数据库的任务,比如图形搜索、路径寻找、中心性、PageRank和社区检测。图形算法主要在分析(OLAP和HTAP)图形数据库中受到支持,不过Neo4j等一些事务(OLTP)图形数据库也支持它们。
本文讨论的所有图形数据库都有良好的横向可扩展性。一些还支持读取副本、全局分布和自动横向分片。
1.Amazon Neptune
Amazon Neptune是一种完全托管的事务(OLTP)图形数据库服务,拥有ACID属性和即时一致性,其核心是一个定制的高性能图形数据库引擎,该引擎针对存储数十亿个关系,并查询图形(毫秒级延迟)进行了优化。Neptune支持两种流行的开源图形查询语言:Apache TinkerPop Gremlin和W3C SPARQL。
Neptune数据库集群可以在跨三个可用区的六个数据副本中拥有高达64 TB的自动扩展存储,如果你在另外的可用区使用读取副本以启用高可用性,可以使用更多的存储容量。 Neptune会自动检测数据库崩溃,并重新启动——通常在30秒或更短时间内,无需执行崩溃恢复或重建数据库缓存,因为缓存与数据库进程隔离开来,重新启动后继续有效。如果整个主实例失效,Neptune会自动故障切换到最多15个读取副本中的一个。备份不断流式传输到Amazon S3。
可以通过修改实例来增减Neptune集群,或者通过添加所需大小的实例来避免停运,一旦数据副本迁移过去,将新实例提升为主实例,就可以关闭旧实例。Neptune虚拟机实例的大小从db.r4.large(2个vCPU和16 GiB的内存)到db.r4.8xlarge(32个vCPU和244个GiB的内存)不等,使Neptune的写入动态范围为16倍,读取动态范围为256倍(计数读取副本)。
链接:
2.AnzoGraph
AnzoGraph是一种大规模并行的内存中OLAP图形数据库,与企业数据源兼容,并行加载RDF和CSV格式的数据。AnzoGraph可以部署在单节点沙箱中,也可以部署在拥有生产环境所需的众多节点的集群中。AnzoGraph拥有ACID事务属性。
AnzoGraph使用W3C标准的RDF三元组和四元组数据及SPARQL 1.1查询。它支持作为RDF存储一部分的标记属性图,符合提议的RDF *和SPARQL *标准,它还有SPARQL的扩展件,以支持图形算法、推理、窗口聚合、BI函数和命名视图。计划支持与Neo4j兼容的OpenCypher语言和Neo4j协议Bolt。
AnzoGraph拥有高性能图形查询执行和可扩展性(可扩展至数十亿甚至数万亿个三元组),以及不需要使数据库下线的快速并行数据加载。AnzoGraph集群可以部署在CentOS、Kubernetes和AWS上。部署在谷歌云平台和Azure上的AnzoGraph通常被当作部署的Kubernetes来对待。AnzoGraph在综合基准测试中可以扩展至40个节点。
链接:
3.Neo4j
Neo4j是一种可扩展的OLTP图形数据库,拥有一些OLAP功能。Neo4j是最初的图形数据库,创建于1999年,如今继续是市场领导者。
开源Neo4j社区版仅限于单台服务器,Neo4j企业版却让你可以根据性能需要,为集群添加任意数量的节点。
Neo4j高可用性集群中的每个节点都包含数据库和集群管理组件,集群则可以通过负载均衡系统来访问。整个图复制到集群的每个实例,每个HA集群的读取能力随服务器实例的数量呈线性增加。Neo4j每秒可以提交数万次写入,同时保持完整的ACID事务。
在Neo4j因果集群中,读写服务器的核心集群与一个或多个异步更新的读取副本集群相结合。为任何应用程序保证了因果一致性,这意味着即使硬件和网络出现故障,也能保证至少读取自己的写入。因果集群中的读取副本可能分布在不同地域,为靠近副本的用户改进查询性能。
链接:
4.TigerGraph
TigerGraph是一种实时原生并行HTAP图形数据库,可在云端或本地部署。TigerGraph支持ACID属性,内置数据压缩,可自动分区集群内的图形,声称速度比竞争对手更快。它使用一种天生并行的消息传递架构,可随数据大小而扩展。
TigerGraph旨在能够执行深度链接分析以及实时联机事务处理和大批量数据加载。TigerGraph的“深度链接分析”是指从一个顶点开始遍历图,找到三个或更多的跳转关系,并分析结果。
虽然几种开源图形查询语言已得到广泛采用,比如Cypher、Gremlin和SPARQL,但TigerGraph有一种新的查询语言GSQL。GSQL结合了类似SQL的查询语法和类似Cypher的图形导航,以及过程编程和用户定义的函数。TigerGrpah可以为迁离Neo4j数据库的人将Cypher转换成GSQL。
TigerGraph拥有托管云产品,目前处于有限预览版状态。结果表明,TigerGraph在运行有8台机器的读写集群时速度可以提升6.7倍,但读取副本或地理分布方面未透露任何信息。
链接:
原文标题:The best graph databases,作者:Martin Heller
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】