NEO4J 3.1.1 Загрузить CSV

Я пользуюсь Neo4j уже несколько месяцев и очень раздражаюсь. Похоже, что каждая новая версия ломает предыдущую. У меня есть несколько скриптов Cypher Load, которые я больше не могу запустить через командную строку.

Я могу запустить следующее из браузера:

USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:///person.csv" AS csvLine
MERGE (p:Person {sysurn                     : csvLine.urn})                     
ON CREATE SET p.dob = trim(csvLine.dob)
ON CREATE SET p.forename = trim(csvLine.forename)
ON CREATE SET p.surname =  trim(csvLine.surname );

Ранее в версии 3.0.3 (Community Edition) я запускал следующее:

java -cp "C:\Program Files\Neo4j CE 3.0.3\bin\neo4j-desktop-3.0.3.jar" org.neo4j.shell.StartClient -file "D:/nosql/Load data/load_person.cql"

Это больше не работает в 3.1.1:

java -cp "C:\Program Files\Neo4j CE 3.1.1\bin\neo4j-desktop-3.1.1.jar" org.neo4j.shell.StartClient -file "D:/nosql/Load data/load_person.cql"

Я получаю ошибку Java. Общее мнение состоит в том, чтобы запустить полную версию.tar, поэтому я установил ее.

Теперь я могу запустить Cypher из браузера или используя cypher-shell. Однако это бесполезно, так как нет способа вызвать внешний скрипт, поэтому я должен сделать это, возможно, для сотен скриптов.

Рекомендуется использовать ne04j-shell (сейчас не рекомендуется!). Я пробую neo4j-shell. Это не принимает пробелы в пути!

Я перемещаю файл и пытаюсь запустить следующее:

"C:\Program Files\neo4j-community-3.1.1\bin\neo4j-shell"  -path "D:/nosql/neoDB/databases/graph.db" -config "neo4j.conf" -file "D:/nosql/Loaddata/load_person.cql"

Я получаю следующую ошибку:

ERROR (-v for expanded information):
    Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory,

D: \ NoSQL \neoDB\ базы данных \graph.db

Я пробовал различные комбинации, включая добавление имени хоста в ответ на запрос:

non-JRMP server at remote endpoint

Я пытаюсь добавить параметр -config, однако это опять не позволяет пробелов!

С каждой новой версией становится все сложнее импортировать данные в Neo4j.

У меня вопрос: возможно ли в версии 3.1.1 запускать более одного сценария шифрования одновременно, не запуская каждый вручную? Можно ли использовать neo4j-shell в версии 3.1.1?

2 ответа

Попробуйте использовать процедуру APOC apoc.cypher.runFile изнутри cypher-shell, Вот пример (с file URL отформатирован для Windows):

CALL apoc.cypher.runFile("file:d:/nosql/Load data/load_person.cql");

Если пробел в пути все еще создает проблемы, вы можете переименовать папку "Load data" в "LoadData" и соответственно изменить вышеупомянутый запрос.

Ну, мне удалось найти обходной путь.

  • Установите neo4j 3.1.1
  • Создать базу данных
  • Удалить Neo4j
  • Установите neo4j 3.0.8
  • Запустите мои скрипты Cypher

например, java -cp "C:\Program Files\Neo4j CE 3.0.8\bin\neo4j-desktop-3.0.8.jar" org.neo4j.shell.StartClient -file "D:/nosql/ Загрузить данные /load_person.cql"

  • удалить neo4j
  • установить neo4j 3.1.1

Я не думаю, что это собирается сократить это в производственной среде, хотя:)

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