接下来,我们来比较 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 和其他驱动程序。