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
Я не думаю, что это собирается сократить это в производственной среде, хотя:)