9月5日消息,Neo4j近期发布了全新Infinigraph架构,宣称该架构解决了图数据库扩展中的根本性挑战:随着数据量增长,难以将图数据库结构完整保留在内存中。该公司表示,这项创新将为欺诈检测等运营场景释放全新扩展能力,同时强化新兴的GraphRAG工作负载。
得益于节点间关联的数据存储方式,图数据库处理特定数据密集型工作负载的效率可比传统关系型数据库高出一个数量级。面对特定数据集中的关联关系(例如曾与某公司合作过的人员),传统数据库需通过计算密集型连接操作来识别关联,而Neo4j这类属性图数据库仅需简单查询即可发现相似性——因为数据最初就是基于关联关系建模的。除加速查询响应外,图数据库还能节省CPU周期、降低能耗并减少相关成本。
但图数据库存在局限性。首先,当整个图结构可加载至内存时,其性能最 佳。对于小型数据集这不成问题,但随着数据规模增长便会成为瓶颈。Neo4j最初设计运行于配备海量内存的大型对称多处理器(SMP)纵向扩展机器上。约五年前,该公司开始开发分布式横向扩展版本以满足海量数据客户需求。尽管在分布式领域取得进展,但图结构在分布式架构中的根本限制依然存在。
Infinigraph使Neo4j能在保持节点与边在内存中的同时实现横向扩展(图片由Neo4j提供)
Neo4j推出的Infinigraph为这一困境提供了创新解决方案。该公司决定在数据分片策略上作出权衡:并非将属性图架构的核心组件(即节点与关系)拆分至集群中不同机器,而是仅对节点与关系关联的属性进行分片,从而使节点和关系完整保留在同一内存空间中。
图数据库中的属性是与节点或关系关联的值。每个节点或关系可关联任意数量的属性。例如,“人”节点可能拥有“姓名”或“年龄”属性,而关系组件则可能包含额外属性,如“工作地点”属性的具体日期或位置信息。
Neo4j云产品管理副总裁Dan McGrath表示,通过Infinigraph,Neo4j引入了属性分片技术——节点与关系可驻留在单台服务器,而海量属性则分散存储于集群中的独立节点。
McGrath在博客中写道:“数据库行业面临的重大挑战之一,是在不牺牲性能、结构或易用性的前提下扩展事务型与分析型图工作负载。Infinigraph架构通过将图的属性数据分布到集群中的服务器来解决这一难题。属性分片使图本身保持逻辑完整性;查询行为符合预期,应用程序无需代码修改或手动变通即可实现扩展。”
据McGrath介绍,Neo4j图分片中的每个实体在属性分片中都存在唯一对应实体。当查询请求属性时,系统会自动从正确分片获取数据,而遍历操作仍局限于拓扑分片内。
“整个系统运行于自主集群中,”他写道,“图数据分片构成标准Raft组,确保可用性与故障转移。属性分片可通过添加副本独立扩展,实现高可用性——这是Neo4j自主集群为属性分片引入的新特性。”
Neo4j声明,采用Infinigraph技术后图数据库应用无需改动,Cypher查询仍可如常运行。节点与关系数据写入图分片,而节点及关系的具体属性可写入不同分片。开发者仅需编写单一查询,数据库会自动判断应从哪个属性分片获取数据。
McGrath指出该方案带来多重优势:支持图数据规模扩展至100TB以上;可直接在图中嵌入数十亿向量数据;消除ETL管道需求;同时完全符合ACID特性。
Neo4j表示,这种新方法将帮助团队同时开展运营和分析工作,包括从同一数据集中检测欺诈行为并分析欺诈团伙,或在分析数十年的客户数据和行为趋势时生成实时客户推荐。“它们能够基于统一的数据源为生成式AI助手、合规系统和交易应用程序提供支持,”该公司称。
但该方案仍存在局限性:Infinigraph初始版本中属性分片数量在创建时即被固定,且尚未支持自动重新平衡功能。Neo4j建议将Infinigraph用于属性密集型图数据处理。
目前Infinigraph已集成于Neo4j自主管理服务中,并即将登陆其云原生平台Neo4j AuraDB。
作者:Alex Woodie