随身听第21期:图数据库对比指南 TigerGraph vs Neo4j,指导图数据库选型

Gartner®在今年3月份发布了《图技术如何带来商业价值》的最新研究报告,其中提到:将数据表示为图很有用,因为人们把世界理解为相互连接的对象(即人、地点和事物)。 对象可以是静态的,例如在简单的、受约束的组织结构图中,也可以是动态的,例如系统之间的动态交互。 人们会顺着从一个对象到另一个对象的关系,以便从连接中获得新的见解,因为“关联”变得更显而易见。
为你的组织选择最好的图数据库是一个重要的决定。不幸的是,买家往往难以判断不同的图数据库供应商所提出的相互矛盾的断言——这些断言往往包含错误信息。
经常有小伙伴问,你们和Neo4j有什么区别?今天就和大家分享一份图数据库对比指南,通过对TigerGraph和Neo4j这两个领先的图数据库进行比较,希望可以帮助您更好地做出购买决定。考虑到篇幅有限,这里我们将节选5个主题和大家分享,分别围绕速度、可扩展性、关键功能、图数据库即服务和总体经济影响展开。更全面的内容,比如决策摘要、客户反馈、参考资料等,请下载完整版白皮书。

首先,关于速度

我们简单的用一组数字来说明:使用TigerGraph,单台物理机可支持每秒遍历1000万个以上的节点和边,每秒10万次以上更新。在公开数据集测试中可以发现,相比TigerGraph,Neo4j的查询延迟了10到1000倍。

其次,关于可扩展性,我们会从Schema、数据加载和分片、查询、分布式事务处理这4个方面进行横向对比:

Schema:TigerGraph是统一 schema,而如果使用Neo4j的话,对于每台机器/数据库,你必须手动将schema分为不同的子模式;

数据加载和分片:使用TigerGraph,你只需从一个作业中加载,系统会自动分区。而使用Neo4j,你必须手动对数据进行分区,并分别加载到每台机器中;

查询:使用TigerGraph,即使数据分布在几十台机器的数据库上,你也会像使用单个数据库一样进行查询。而使用Neo4j,你必须设计多阶段/相关查询来手动查询每台机器,然后将结果拼接在一起;

分布式事务处理:TigerGraph 完整符合单机和集群的ACID规范,而Neo4j,仅单机符合ACID规范,不支持集群ACID规范。在Neo4j Fabric 中,ACID 合规性仅在单个图中得到保证,即它不支持跨多个图的事务。 如果你在同一事务中对多个图进行写入操作,可能导致数据损坏这类常见错误。

小结:TigerGraph 是原生分布式架构,是能够自动分区的真正的分布式图数据库,性能高,支持与用户无缝对接,不需要为分布式查询做过多额外的处理。而Neo4j 其实并非真正的原生分布式,它实际上是独立的单机数据库的联合,因为需要通过复杂的手工处理,将多个单机图数据库联合在一起,无论是初期搭建还是后续运维都需要大量人工成本,而且容易出错。

接下来,我们来比较 TigerGraph 和 Neo4j 提供的几个关键功能:

设计:TigerGraph是C++核心引擎,原生分布式图存储,支持大规模并行处理,压缩数据比可以达到0.49(即加载到 TigerGraph 后,数据集占用的磁盘空间只有原来的0.49),并且Schema优先的设计可以使查询性能最优化。而Neo4j,是Java核心引擎,原生单结点图存储,只有有限的并行性,未压缩数据,无schema的设计会降低查询性能;

深度链接分析 (OLAP):TigerGraph 支持在所有数据集(包括超大的分布式图)进行深度链接分析,可以从 3跳 到 10 跳以上,并且可以在数据库内直接运行大型图,可以确保数据库内始终是最新数据。而Neo4j,在中型到大型图上如果需要更深入的分析,你需要将数据导出到Spark进行外部处理,而这将需要额外的基础设施成本;

图查询语言:TigerGraph 的图查询语言是GSQL,这是一种图灵完备的语言,可以原生表达复杂的图计算和分析,可用于即席查询和复杂的参数化存储过程。并且TigerGraph一直在国际上积极参与行业标准语言GQL的制定,确保GSQL可以100%兼容GQL,加上GSQL 和 SQL 非常类似,因此语言学习成本低。而Neo4j 的图查询语言是Cypher,能够处理基本查询,包括模式匹配;

事务和集群一致性:正如在前文讨论的“分布式事务处理”,TigerGraph 在整个集群中符合 ACID,而Neo4j 仅在单机级别符合 ACID;

图算法库:如今,越来越多的企业正在利用图算法加速机器学习,获得大规模的洞察力。TigerGraph 目前已发布50多个图算法,所有这些图算法都开放源代码,用户可定制、可审计,并且这些图算法可直接在TigerGraph 图数据库内运行,无需导出数据到其他平台,从而保证数据库内始终是最新数据。而Neo4j,使用预先编译的API调用,用户不能修改参数或逻辑,而且数据必须导出,以便在一个单独的平台上运行;

可视化界面:GraphStudio™ 是TigerGraph提供的简单而强大的可视化图分析工具,支持完整的工作流程,比如可视化建模、ETL、图探索和查询开发。并且带有AdminPortal,可用于监控和管理。只要是使用TigerGraph,你就可以同时使用GraphStudio 和 Admin Portal,无需额外费用。而Neo4j的可视化工具是Bloom,仅用于图探索,你需要额外付费才可以使用其它功能;

可视化工具包:TigerGraph 提供适用于各种用例的工具包,包括客户 360、金融犯罪和供应链优化等。而Neo4j 目前还没有提供相应的工具包;

API 标准:TigerGraph 采用统一的行业标准,支持REST API、JSON 输出、JDBC、Python、Spark、GraphQL等。而Neo4j 采用多种标准,以及它们专有的 Bolt API;

连接器:TigerGraph 一直在提供多样的连接器,从而使用户更好地与上游和下游数据源深度集成,比如数据摄取连接器包括JDBC、Kafka、Snowflake、Spark,同时也可用流式数据连接器。数据可视化连接器包括PowerBI和Tableau,还有D3、Plotly/Dash 等。生态系统方面,TigerGraph 支持包括C++、pyTigerGraph和Ruby。 而Neo4j 的数据摄取连接器包括 JDBC 和 Spark, GO、Java 和其他驱动程序。

云产品 – 图数据库即服务(类似于SaaS)

在比较了速度、可扩展性,以及几个关键功能后,接下来我们一起来看看TigerGraph Cloud和Neo4j Cloud (Aura DB)提供的关键功能:

免费套餐:TigerGraph 提供终身可用的免费套餐,支持用于非商业用途。支持50 GB 存储空间,并且顶点和边的数量不受限制。而Neo4j 提供的是”共享 “的免费套餐,最多支持5万个顶点和17万5千条边。可能有小伙伴会问这个“共享”是怎么回事?我们可以想象成“整租”和“合租”,即TigerGraph 提供的是一套“整租”的空间,而Neo4j 提供的是类似于“合租”的空间,并且最多支持5万个顶点和17万5千条边;

入门套件:TigerGraph 提供 25 个以上的入门套件,适用于各种流行的用例(例如客户 360、实体解析/统一ID、欺诈检测、知识图谱和推荐引擎等)。而Neo4j 目前还没有提供这方面的入门套件;

大小:在TigerGraph 云上,每个实例支持高达768GB RAM,2TB 磁盘,如果你需要更高的配置,也无需担心,因为TigerGraph 支持真正的分布式。而Neo4j 每个实例最多 64 GB RAM,128 GB 磁盘;

此外,TigerGraph 提供开箱即用的HA多副本,可以轻松实现高可用。通过专用链接和 VPC 对等互连确保网络安全,并且支持多用户基于角色的访问控制以及集成式登录。而Neo4j 在这些方面都是相对欠缺的。

最后,我们来聊聊两大图数据库带来的总体经济影响:

Forrester 分别在去年10月份发布了《Neo4j图数据平台的总体经济影响™》报告,今年4月份又发布了《TigerGraph的总体经济影响™》报告。我们可以根据Forrester的研究报告来对比TigerGraph和Neo4j:

根据Forrester的计算,TigerGraph 三年内的投资回报率为600%,净现值为 2428 万美元。而Neo4j 三年内投资回报率为417%,净现值为418万美元。

您可以点击下方按钮,下载Forrester完整的研究报告,查看这些经济影响是如何得出的。

总结

通过以上的对比,相信大家对于两大图数据库有了一些新的认识,下面我们简单地总结下今天分享的内容。今天我们一起从5个方面横向对比了TigerGraph和Neo4j,包括速度、可扩展性、关键功能、图数据库即服务和总体经济影响。除了今天我们一起讨论的5个方面外,在完整的白皮书中,我们还从决策、客户反馈方面对比了两大图数据库。您可以下载完整的白皮书,查看更详细的对比。

当然,评估任何产品的最佳方式就是亲自体验。你可以通过在我们的官网注册TigerGraph Cloud来开始使用免费套餐——这只需要几分钟,无需信用卡。如果希望本地部署试用,你也可以通过我们官网下载免费企业版。

最后,图数据库及图分析解决方案正成为所有IT堆栈的核心组件,无论您最初选择了哪款产品,作为这项技术的早期采用者,我们都要祝贺您,您都将收获极佳的效益。

相关资源