gpt4 book ai didi

file-upload - 使用 LOAD CSV 功能在 neo4j 中上传的最大文件大小是多少

转载 作者:行者123 更新时间:2023-12-02 03:12:26 24 4
gpt4 key购买 nike

使用他们的 LOAD CSV 功能可以上传到 Neo4J 数据库的最大文件大小是多少?这取决于系统规范吗?我已经成功上传了包含 500K 条记录(大约 180MB)的文件,但是在尝试 4.8GB 的​​文件时上传崩溃并出现 java 堆空间错误

最佳答案

PERIODIC COMMIT 中使用LOAD CSV 时,您需要注意eager 问题。根据您执行的操作,查询计划可能会显示一个包含 eager 的元素。

可以通过EXPLAIN LOAD CSV ..... 检查查询计划(剥离PERIODIC COMMIT 以进行检查)。

eager 基本上意味着 Cypher 认为可能存在跨行依赖,因此该语句无法在多个事务中执行,并且 PERIODIC COMMIT 被停用。因此,您的 CSV 文件是在一次交易中处理的。

但是有一种方法可以解决这个问题:Neo4j APOC允许您结合使用 apoc.periodic.iterateapoc.load.csv,请参阅以下从 csv 文件导入一些 twitter 数据的复杂示例:

call apoc.periodic.iterate('call apoc.load.csv("file:/tmp/all.csv", {
sep:";",
header:true,
mapping:{
retweets:{type:"int"},
favorites:{type:"int"},
date:{type:"int"},
mentions:{array:true, arraySep:" "},
hashtags:{array:true, arraySep:" "}
}
}) yield map',
"with {map} as map
merge (u:User{username:map.username})
merge (t:Tweet {id:map.id})
on create set t.text=map.text, t.date=map.date, t.retweet=map.retweets, t.favorite=map.favorites, t.link=map.permalink
merge (k:Keyword{name:map.keyword})
merge (t)-[:HAS_KW]->(k)
merge (u)-[:SENT_TWEET]->(t)
FOREACH (m IN [x in map.mentions WHERE x<>''] |
MERGE (mentioned:User {username:substring(m,1)})
MERGE (t)-[:MENTIONS]->(mentioned)
)
FOREACH (h in [x in map.hashtags WHERE x<>''] |
MERGE (ht:HashTag{name:h})
MERGE (t)-[:USES_HASHTAG]->(ht)
)
", {batchSize:5000, parallel:false});

关于file-upload - 使用 LOAD CSV 功能在 neo4j 中上传的最大文件大小是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39173595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com