通过 neo4j 中的螺栓端口定期提交(java 驱动程序)
Periodic commit through bolt port in neo4j (java driver)
我正在使用 neo4j-java-驱动程序(螺栓端口)将我的 java 应用程序与 neo4j DB 连接起来。我想 运行 加载 CSV 查询,该查询应该是 运行 一批 500,所以我想使用定期提交。所以首先,我使用了:
USING PERIODIC COMMIT 500 ...
在这种情况下,我得到了错误:
Caused by: org.neo4j.driver.exceptions.ClientException: Executing queries that use periodic commit in an open transaction is not possible.
我在这里找到了一些关于它的答案,说我应该在查询之前添加 :auto
,所以我这样做并得到了这个错误:
Caused by: org.neo4j.driver.exceptions.ClientException: Invalid input ':': expected <init> (line 1, column 1 (offset: 0))
:auto USING PERIODIC COMMIT 500
^
https://neo4j.com/docs/driver-manual/1.7/sessions-transactions/
在这种情况下我们需要使用自动提交事务。正如文件所说:
自动提交事务是执行 USING PERIODIC COMMIT Cypher 语句的唯一方法。
示例:
public void addPerson( String name )
{
try ( Session session = driver.session() )
{
session.run( "CREATE (a:Person {name: $name})", parameters( "name", name ) );
}
}
在 python 工作时面临同样的问题。您可以根据您的要求使用 apoc
apoc.periodic.iterate('statement returning items', 'statement per item', {batchSize:1000,iterateList:true,parallel:false,params:{},concurrency:50,retries:0})
或
apoc.periodic.commit(statement,params)
我正在使用 neo4j-java-驱动程序(螺栓端口)将我的 java 应用程序与 neo4j DB 连接起来。我想 运行 加载 CSV 查询,该查询应该是 运行 一批 500,所以我想使用定期提交。所以首先,我使用了:
USING PERIODIC COMMIT 500 ...
在这种情况下,我得到了错误:
Caused by: org.neo4j.driver.exceptions.ClientException: Executing queries that use periodic commit in an open transaction is not possible.
我在这里找到了一些关于它的答案,说我应该在查询之前添加 :auto
,所以我这样做并得到了这个错误:
Caused by: org.neo4j.driver.exceptions.ClientException: Invalid input ':': expected <init> (line 1, column 1 (offset: 0))
:auto USING PERIODIC COMMIT 500
^
https://neo4j.com/docs/driver-manual/1.7/sessions-transactions/
在这种情况下我们需要使用自动提交事务。正如文件所说:
自动提交事务是执行 USING PERIODIC COMMIT Cypher 语句的唯一方法。
示例:
public void addPerson( String name )
{
try ( Session session = driver.session() )
{
session.run( "CREATE (a:Person {name: $name})", parameters( "name", name ) );
}
}
在 python 工作时面临同样的问题。您可以根据您的要求使用 apoc
apoc.periodic.iterate('statement returning items', 'statement per item', {batchSize:1000,iterateList:true,parallel:false,params:{},concurrency:50,retries:0})
或
apoc.periodic.commit(statement,params)