4

私は Neo4j の初心者です。私はこのグラフデータベースの学習者です。csv ファイルを Neo4j データベースにロードする必要があります。私は2日間試していますが、csvファイルをNeo4jに読み込むという良い情報を見つけることができませんでした。csvファイルをNeo4jに読み込むサンプルコードまたはブログを提案してください。

例: csv ファイルがあるとします。この方法でそれを Neo4j に読み込むにはどうすればよいですか?

id  name    language
1   Victor Richards West Frisian
2   Virginia Shaw   Korean
3   Lois Simpson    Belarusian
4   Randy Bishop    Hiri Motu
5   Lori Mendoza    Tok Pisin
4

5 に答える 5

4

https://github.com/sroycode/neo4j-importを試してみてください

これにより、一対の CSV ファイルから直接データが取り込まれます (エントリは COMMA で区切る必要があります)。

ビルドするには:(Mavenが必要です)

sh build.sh

ノード ファイルには、必須フィールド ID とその他の任意のフィールドがあります。

NODES.txt
id,name,language
1,Victor Richards,West Frisian
2,Virginia Shaw,Korean
3,Lois Simpson,Belarusian

リレーションシップ ファイルには、from、to、type の 3 つの必須フィールドがあります。フィールド age (long integer) と info があると仮定すると、関係ファイルは次のようになります。

RELNS.txt
from,to,type,age@long,info
1,2,KNOWS,10,known each other from school
1,3,CLUBMATES,5,member of country club

ランニング:

sh run.sh graph.db NODES.txt RELNS.txt

現在のフォルダーにgraph.dbが作成され、neo4jデータフォルダーにコピーできます。

注: 1.6.* 以降の neo4j を使用している場合は、この行を conf/neo4j.properties に追加してください。

allow_store_upgrade = true

楽しむ。

于 2012-12-04T08:45:11.980 に答える
3

https://github.com/jexp/batch-importをご覧ください

出発点として使用できます

于 2012-10-25T19:42:55.453 に答える
2

ソースと宛先のデータ構造が異なるため、CSVデータをNeo4jに一般的にロードするために利用できるものはありません。CSVデータは表形式ですが、Neo4jはグラフデータを保持します。

このようなインポートを実現するには、Neo4jにロードする前に、表形式のデータを何らかの形式のグラフ(ツリーなど)に変換するための別のステップを追加する必要があります。ツリー構造をさらに例として取り上げると、次のページは、XMLデータをCypherに変換し、Neo4jインスタンスに対して直接実行する方法を示しています。

http://geoff.nigelsmall.net/xml2graph/

役立つ場合は、このツールを自由に使用してください(小さなファイルしか処理できないことに注意してください)が、もちろん、最初にCSVをXMLに変換する必要があります。

乾杯

ナイジェル

于 2012-10-25T12:10:16.773 に答える
1

neo4jの既知のCSVインポーターはおそらくないので、自分でインポートする必要があります。

私は通常、gremlinのg.loadGraphML()を介して自分でそれを行います。働き。 http://docs.neo4j.org/chunked/snapshot/gremlin-plugin.html#rest-api-load-a-sample-graph

外部スクリプトを使用してデータを解析してxml構文にし、特定のxmlファイルをロードします。構文は次の場所で確認できます: https : //raw.github.com/tinkerpop/gremlin/master/data/graph-example-1.xml100MBのファイルの解析には数分かかります。

あなたの場合、あなたがする必要があるのは、ユーザーと言語で構成される頂点と「話す」のエッジを持つ単純な2部グラフです。プログラミングを知っている場合は、パラメータidname |を使用してユーザーノードを作成します。パラメータを持つ一意の言語ノード| 各ユーザーを特定の言語に接続する必要がある関係。ユーザーは重複する可能性がありますが、言語は重複できないことに注意してください。

于 2012-10-25T12:16:41.053 に答える
0

あなたの質問は一般的すぎると思います。csv ファイルには何が含まれていますか? csv ファイルの内容の論理的な意味は、非常にさまざまです。互いに接続されたエンティティを表す ID を持つ 2 つの列の例。

3921 584
831 9891
3841 92
...

この場合、インポートを高速化する BatchInserter コード スニペットを記述できます。 http://docs.neo4j.org/chunked/milestone/batchinsert.htmlを参照してください。

または、通常の GraphDatabaseService を使用して、パフォーマンスのために数千回の挿入のトランザクション サイズでインポートすることもできます。http://docs.neo4j.org/chunked/milestone/tutorials-java-embedded.htmlでグラフ データベースをセットアップして使用する方法を参照してください。

于 2012-10-25T10:10:59.517 に答える