2017-05-09 85 views
0

我有一個單一的記錄開始,這有一個自定義「的recordId」這是一個UUID的數據模型,然後將它涉及到其他節點,然後他們又相互關聯。這起始節點是什麼定義了「屬於」在一起,在如果我們有內部的Neo4j獨立的數據庫中的數據。我需要導出這些數據,到可以重新導入相同或者輕鬆Neo4j的APOC導入錯誤

一個新的數據庫一些幫助後,我用APOC做導出備份數據集:

call apoc.export.cypher.query("MATCH (start:installations) 
WHERE start.recordId = \"XXXXXXXX-XXX-XXX-XXXX-XXXXXXXXXXXXX\" 
CALL apoc.path.subgraphAll(start, {}) YIELD nodes, relationships 
RETURN nodes, relationships", "/var/lib/neo4j/data/test_export.cypher", {}) 

有那麼2個問題我有:

問題1是真實導出的數據具有內部Neo4j的標識符生成的關係。如果我們需要導入到一個新的數據庫並且UNIQUE IMPORT ID值已經存在,這是不好的。我需要用我自己的自定義recordIds作爲參考點來生成這些數據。

問題2,進口甚至不工作。

call apoc.cypher.runFile("/var/lib/neo4j/data/test_export.cypher") yield row, result 

回報:

未能調用程序apoc.cypher.runFile:由:了java.lang.RuntimeException:訪問文件時出錯/var/lib/neo4j/data/test_export.cypher

我希望有人能幫助我弄清楚什麼可怎麼回事,但我不知道什麼額外的信息是有幫助的。 Neo4j鬆弛頻道中沒有人能夠幫助找到解決方案。

謝謝。

+0

在被明顯的風險,你驗證了該路徑存在*的Neo4j的服務器的計算機系統上*? – cybersam

+0

是的,路徑存在,並且在嘗試恢復文件之前,導出會將文件放在那裏。我從字面上跑了一個,然後把另一個文件名/路徑複製並粘貼到兩者中。找不到任何導出成功的原因,並且導入無法訪問文件。 –

回答

0

問題1: 導出的文件不包含任何內部Neo4j的IDS。從數據庫中使用neo4j標識是不安全的,因爲它們不是全球唯一的。所以您不應該使用它們將數據從一個數據庫傳輸到另一個數據庫。 如果您要使用全球潮頭ID,您可以使用外部插件像GraphAware UUID插件。 (聲明:我GraphAware工作)

problem2: 如果您不能訪問該文件,則可能的原因:

  • apoc.import.file.enabled =真不neo4j.conf
  • 設置
  • 操作系統級別 權限不設置
+0

我最終編寫了自己的使用螺栓協議的導入/導出過程。老實說,Neo4j社區和企業提供的工具在我看來是相當不可用的。 –