Не удается загрузить данные CSV в экземпляр GrapheneDB

Я использую GrapheneDB для размещения своего экземпляра Neo4j и использую библиотеку Nuget Readify Neo4jClient для подключения к ней из моего локально работающего приложения 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:

Невозможно загрузить из URL 'file:///C:/source/blah/src/App_Data/Data.csv': свойство конфигурации 'dbms.security.allow_csv_import_from_file_urls' имеет значение false

Где и как мне настроить этот параметр?

Во-вторых, необходимо ли, чтобы файл импорта csv был доступен из экземпляра Graphene DB, или это проблема клиента?

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://...

Это будет

Другие вопросы по тегам