2017-05-09 12 views
0

私は単一のレコードで始まるデータモデルを持っています。これはuuidというカスタムの "recordId"を持っていて、それは他のノードに関連していて、次に互いに関連しています。その開始ノードは、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

はい、パスが存在し、エクスポートはファイルの復元を試みる前にファイルを最初に置きます。私は文字通り1つを実行し、もう1つはファイル名/パスをコピーして両方に貼り付けました。エクスポートが正常に機能する理由が見つからず、インポートに問題があります。 –

答えて

0

問題1: エクスポートされたファイルには、内部のneo4j IDは含まれていません。データベースからneo4j idsを使用するのは安全ではありません。なぜなら、それらはグローバルに一意ではないからです。したがって、あるデータベースから別のデータベースにデータを転送するためにそれらを使用すべきではありません。 グローバルにuniqe idsを使用しようとしている場合は、GraphAware UUIDプラグインのような外部プラグインを使用できます。 (免責事項:私はGraphAwareのために働く)

problem2: ファイルにアクセスすることができない場合、考えられる理由:

  • =真apoc.import.file.enabledがneo4j.conf
  • に設定されていません
  • OSレベル 許可が明らかにされる危険が
+0

ボルトプロトコルを使用する独自のインポート/エクスポートプロセスを作成しました。正直なところ、Neo4jコミュニティと企業の両方で提供されているツールは、私の意見ではかなり使用できません。 –

関連する問題