【问题标题】:Keeping neo4j updated with production MSSQL使用生产 MSSQL 更新 neo4j
【发布时间】:2026-01-13 10:00:01
【问题描述】:

我正在研究使用 neo4j 处理我们的 java web 应用程序的一些查询的可能性,这些查询在 MSSQL 上运行时间太长,因为它们需要在大型表上进行如此多的连接,即使已实现索引。

然而,我担心完成 ETL 可能需要的时间最终会影响查询时信息的过时程度。

有人可以就生产策略或工具包/库提供建议,以帮助读取生产 sql-server 数据库(如果可能,使用 deltas 进行优化)和更新正在运行的 neo4j 数据库实例?我想必须有某种映射配置,但想法是以自动化方式运行,用一个或多个 sql-server 表或视图内容更新 neo4j 数据库。

【问题讨论】:

    标签: java sql-server neo4j migration etl


    【解决方案1】:
    1. 将 MS SQL 数据库连接到 Neo4j 数据库的直接方法是使用 apoc.load.jdbc 过程。
    2. 对于初始加载,您可以使用 Neo4j ETL (https://neo4j.com/blog/rdbms-neo4j-etl-tool/)。
    3. 但是,如果您希望两个数据库持续保持同步(并且如果所涉及的逻辑超出了几个简单的查询),那么将涉及一些计划和工作这一事实是无法避免的。您可能希望每隔一段时间(每月、每天、每小时……)将增量卸载到 CSV 文件中,并使用 LOAD CSV 加载这些文件(使用 CYPHER 语法确定需要添加、删除、更改或连接的内容)

    可悲的是,没有免费的午餐。

    希望这会有所帮助, 汤姆

    【讨论】:

    • Neo4j ETL 是否支持 Microsoft SQL Server?据我所知,它只支持 MySQL、Postgres 和 Oracle