Unable to run 'USING PERIODIC COMMIT' since last week on NEO4J
我上周在MAC上下载了NEO4J的桌面版本。 (版本1.2.4)
Neo4j浏览器版本:4.0.3
Neo4j服务器版本:3.5.14(企业)
上周,我使用
查询:
1 2 3 4 5 6 | USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM "file:/Volumes/Twitter_Dataset/tweets.csv" AS csvLine MATCH (tweet:Tweet {tweetID: csvLine.tweetID}) MATCH (user:User {username: csvLine.username}) MERGE (user)-[:POSTS]->(tweet); |
简短答案:
使用
前缀您的USING PERIODIC COMMIT查询
此处已进行更改以提供更多上下文,因此错误消息现在包括有关正在发生的事情的更多信息的链接,以及上面的
长答案:
这与Neo4j浏览器中最近的功能改进有关,这与使用PERIODIC COMMIT操作有副作用,但是有一种解决方法,并且已经推动了浏览器更新以提供更多上下文和清晰的解决方法。
Neo4j浏览器的最新一轮更新包括此更改,该更改使用事务功能而不是自动提交的事务,通过浏览器提供了自动重试功能的查询,并且在遇到因果群集时具有更好的应对成员更改的能力。铅>
问题在于使用USING PERIODIC COMMIT需要在自动提交的事务中运行。这需要一种方法来切换我们是否正在使用自动提交的事务。
您说您正在使用浏览器版本4.0.3。我相信这是昨天发布的,并在其中进行了更改,提供了有关正在发生的事情以及如何使其正常运行的详细信息。遇到该错误时,您现在应该在
The :auto command will send the Cypher query following it, in an auto committing transaction. In general this is not recommended because of the lack of support for auto retrying on leader switch errors in clusters.
Some query types do however need to be sent in auto-committing transactions, USING PERIODIC COMMIT is the most notable one.
卡上提供了一个示例,该示例使用