Neo4jのデータをGraphML形式でエクスポート
Neo4jに貯めこんだデータをRで使いたくなったのでGraphML形式でエクスポートを行った
Web管理画面からじゃなくてシェルからコマンドを実行するらしい
neo4jの実行ファイルと同じディレクトリにあるneo4j-shellを使う
[vayacico@lavie bin]$ ./neo4j-shell Welcome to the Neo4j Shell! Enter 'help' for a list of commands NOTE: Remote Neo4j graph database service 'shell' at port 1337 neo4j-sh (?)$
export-graphmlなるコマンドを使うと出来るらしいのだけどエラー
neo4j-sh (?)$ man export-graphml No manual entry for 'export-graphml'
どうやら含まれていないらしい
neo4j-sh (?)$ help Available commands: alias begin call cd commit create cypher dbinfo drop dump env explain export foreach gsh help index jsh load ls man match merge mknode mkrel mv optional paths planner profile pwd return rm rmnode rmrel rollback runtime schema set start trav unwind using with Use man <command> for info about each command.
exportってコマンドがあったけどシェルのEXPORTと同じものみたいだった
どうやら自分で持ってこなければいけないらしい
neo4j-shell-tools からneo4j-shell-tools_3.0.1.zipをダウンロードして解凍する
[vayacico@lavie tmp]$ wget http://dist.neo4j.org/jexp/shell/neo4j-shell-tools_3.0.1.zip [vayacico@lavie tmp]$ unzip neo4j-shell-tools_3.0.1.zip [vayacico@lavie tmp]$ ls geoff-0.5.0.jar import-tools-3.0.1.jar mapdb-0.9.3.jar opencsv-2.3.jar
解凍して出てきたファイルをneo4jのlib/以下にコピーする
[vayacico@lavie tmp]$ cp * /opt/neo4j-community-3.0.7/lib/
neo4j(本体)を再起動してもう一度neo4j-shellを起動すると使えるようになっている
[vayacico@lavie bin]$ ./neo4j-shell Welcome to the Neo4j Shell! Enter 'help' for a list of commands NOTE: Remote Neo4j graph database service 'shell' at port 1337 neo4j-sh (?)$ man export-graphml -o Output GraphML file. -r Add all nodes of selected relationships. -t Write key types upfront (double pass). neo4j-sh (?)$
あとは出力ファイル名とクエリを引数として与えるとグラフがエクスポートできる
neo4j-sh (?)$ export-graphml -o output.graphml match (n:Foo)-[r]->() return n,r Wrote to GraphML-file output.graphml 0. 100%: nodes = 165 rels = 27390 properties = 27885 time 5712 ms total 5712 ms
ここまでやってから気付いたけど普通にRから直接Neo4jにアクセスできるのねー