使用 Neo4j 进行扩展InfinigraphAura 不可用2025.12 版本引入
Neo4j 提供多种扩展选项,可针对特定用例和需求进行定制。您可以混合并搭配这些策略,创建满足您需求的扩展解决方案。
以下是部分受支持的扩展策略
-
通过 Neo4j 分析集群进行数据复制(读取扩展) — Neo4j 集群是一个支持多数据库的高可用性集群。它是由一组运行 Neo4j 并配置为相互通信的服务器组成的集合。这意味着服务器和数据库是解耦的:服务器为数据库的使用提供计算和存储能力。每个数据库依赖于其自身的集群架构,组织为主要成员(至少 3 个以实现高可用性)和次要成员(用于读取扩展)。扩展性、分配/重新分配、服务弹性、负载均衡和自动路由功能是自动提供的(也可以进行精细控制)。
Neo4j 分析集群 适用于
-
横向读取扩展
-
始终在线、高可用,支持灾难恢复和滚动升级(Neo4j 5.0+)。
-
从单一副本到同一数据库的多个副本,基础架构灵活。
-
服务器可以是特定于服务的(分析/事务工作负载、数据科学、报告等)。多区域、多租户、SaaS 风格的扩展性。
-
-
通过复合数据库进行数据联合和分片 — 通过使用联邦查询,Neo4j 允许您通过单个查询查询多个 Neo4j 数据库。数据被分区为更小、更易于管理的片段,称为分片 (shards)。每个分片可以存储在单独的服务器上,从而分担资源和存储压力。或者,您可以将分片部署在不同的位置,以便独立管理它们或分担网络流量负载。复合数据库适用于
-
访问远程数据库,对联合数据执行查询。
-
对大数据量进行并行子查询执行。
-
横向,读写扩展。
分片逻辑采用分片函数、基于时间的最优分片以及其他分片键。其主要优势在于结合了 Neo4j 集群和复合数据库。
-
-
通过 Infinigraph 进行数据分布 — 使用分布式图架构来扩展单个系统,而无需对图进行分段。
属性分片(Infinigraph 的一部分)允许您将附加到节点和关系的属性解耦,并将它们存储在单独的图中。这种架构支持属性数据的独立扩展,从而能够处理大量数据、繁重的查询以及高读取并发。
下表总结了分析集群、复合数据库和属性分片数据库之间的异同
| 分析集群 | 复合数据库 | 属性分片数据库 | |
|---|---|---|---|
典型用例 |
高可用性 |
联邦数据 |
具有大量属性的图 |
可扩展性 |
数据量:受限于单台服务器大小 |
数据量:无限制 |
数据量:最高可达 100TB |
事务 |
因果一致性 |
并行读事务 |
所有分片上的并行读写事务 |
数据加载 |
通过 neo4j-admin 和 Aura 导入器进行初始和增量数据导入 |
手动编排导入 |
通过 neo4j-admin 和 Aura 导入器进行初始和增量数据导入 |
Cypher 查询 |
单数据库查询。 |
分片上的并行执行。 |
分片上的并行执行。 |
用户工具 |
支持所有工具。 |
支持 Browser 和 Cypher Shell。 |
支持所有工具。 |
管理工具 |
支持所有工具。 |
复合数据库不支持在单个分片上使用的工具。 |
支持所有工具。 |
库 |
支持所有库。 |
在单个分片上受支持。 |
支持所有库。 |