无法将CSV数据加载到GrapheneDB实例中

时间:2016-12-18 18:12:57

标签: .net neo4j neo4jclient graphenedb

我使用GrapheneDB来托管我的Neo4j实例,并使用Readify的Neo4jClient nuget库从本地运行的MVC应用程序连接到它,如下所示:

var uri = new Uri(HttpContext.Current.Server.MapPath("~/App_Data/Data.csv"));

client.Connect();

client.Cypher
    .LoadCsv(uri, "user")
    .Create("(u:User { Id: user[1], Name: user[2] })")
    .ExecuteWithoutResults();

这是抛出一个LoadExternalResourceException:

  

无法从网址加载' file:/// C:/source/blah/src/App_Data/Data.csv' ;:配置属性' dbms.security.allow_csv_import_from_file_urls'是假的

我在哪里以及如何配置此参数?

其次,是否有必要从Graphene数据库实例访问csv导入文件,或者这是客户关注的问题?

1 个答案:

答案 0 :(得分:1)

LOAD CSV子句在远程Neo4j实例上执行,该实例无权访问本地文件系统。

为了从远程实例上的CSV文件加载数据,有两个选项:

该文件需要上传到远程服务器的文件系统,配置设置dbms.security.allow_csv_import_from_file_urls应设置为true。

出于明显的安全原因,这在GrapheneDB上是不可能的。

示例:

LOAD CSV FROM file://...

解决方案:

将文件上传到服务器或云服务,即AWS S3,Google Docs,Dropbox或您自己的服务器。 LOAD CSV与文件的URL一起使用。该文件应该是公共可访问的,以便Neo4j可以实际下载文件来处理它。

示例:

LOAD CSV FROM http://...

这会