当前位置: 首页 > 知识库问答 >
问题:

在Neo4J3.x中通过Cypher-Shell导入CSV文件

梁丘宏硕
2023-03-14

我试图通过macOS开发机器上的Cypher Shell(而不是neo4j-shell)将一个大型CSV文件导入到neo4j3.x中。

cat <path to the Cypher script file> | $NEO4J_HOME/bin/cypher-shell -u user -p password --format auto

当shell尝试访问CSV文件时,Neo4j应用程序的路径会被添加到前面。这将导致如下所示的concat路径:

file:/<path to the Neo4j App/neo4j-community-3.x>/file:<path to the CSV file set within conf>/Import.CSV

这会抛出一个“无法加载外部资源:...”误差

密码脚本被正确加载,因为预先的约束命令按预期执行。当密码脚本试图使用“load_csv”访问CSV文件时,它将失败。

克里德

共有1个答案

陈松
2023-03-14

开箱即用,唯一可以导入CSV的地方是import文件夹。

任何加载CSV语句都必须相对于此目录;即从“file:///mydata.CSV”加载CSV加载位于导入文件夹中的文件mydata.CSV

这是有充分理由的;文件系统的保护非常重要,能够从任何位置导入任意CSV文件会扩大恶意上载和/或执行的攻击矢量。

这可以通过在配置中设置dbms.directories.import指向不同的文件夹来实现;也就是说,将其设置为/var/uploads将允许从该目录加载CSV,或者将其设置为/home/krid/my-neo-imports/以使用该目录。然后,加载CSV文件URL将相对于该位置。

如果需要,您甚至可以在导入目录中设置目录层次结构,以便组织导入的文件。例如,可以将dataset1dataset2目录放在导入目录中,然后将名为members.csv的文件放在dataset1中,将名为events.csv的文件放在dataset2中。然后,通过分别执行从“file:///dataset1/members.CSV”加载CSV和从“file://dataset2/events.CSV”加载CSV来加载每个文件。

如果您希望能够从任何位置上传,请将其设置为“/”。

如果将dbms.directories.import设置为root(“/”),则可以导入整个文件系统中的任何文件。但是,上载时需要指定相对于文件系统根目录的路径。

请注意,此选项将使潜在攻击者更容易上载恶意导入脚本。

 类似资料:
  • 我尝试使用Neo4j工具和导入csv文件。 我有个问题。我的csv文件是清晰的,但是,在neo4j浏览器。

  • 然后我试着用斜线。

  • 问题内容: 我想通过可手动运行以更新数据的PHP脚本将表格从CSV文件导入SQLite DB。 以下是我要实现的目标的列表: 将旧表(称为“ produkte”)重命名为product-currentdate(或删除表) 然后从CSV文件导入文件(分隔并使用ISO 8859-1字符集/ CSV文件的第一行包含表标题) 将日期保存在表“产品”中 我发现了一个由于某种原因无法运行的脚本: 我希望有人知

  • 我们有一个名为survey.csv的csv文件,我们需要将其加载到rdd中。 我们尝试了这个: 它不起作用。有人能帮忙吗?

  • 我目前正在努力导入一个excel-csv文件到python。我确信我的问题很容易解决,但是我对Python编程还是很陌生的。 我使用的代码是: 然后我得到了这种错误: 我考虑过需要添加sep=“,”之类的内容,但这也不起作用。所以我现在有点无助。已经非常感谢了!:)