2011-11-14 17 views
4

私はデータを扱うためのベストプラクティスを探しています。ですから、それは私がこれまでに得たものです:タイプ "A"の1.000.000個のノード。すべての「A」ノードは、タイプ「B」の1-1000ノードとタイプ「C」の1-10ノードに接続することができます。大きなデータセットを扱う(neo4j、mongo db、hadoop)

私はneo4jグラフにデータをインポートするためのRESTfulサービス(Java、Jersey)を作成しました。ノード "A"(唯一のノード、ids、さらなるデータなし)のインポート後、私はneo4j dbが〜2.4GBまで成長したことに気付きました。

neo4jに追加のフィールド(名前、説明、...)を格納することをお勧めしますか?または、データアクセスにキー/値の組み合わせを使用するmongoDB/hadoopを設定する必要がありますか?

+1

私の意見では、100万ノード/数GBでハイドープに行くことを保証するには不十分です。 –

答えて

2

挿入中に多くのノードを削除しましたか?通常、ノードはディスク上で9バイトを取るので、1Mノードは9Mバイトを取るだけです。積極的にメモリを再利用するには、IDの再利用を有効にする必要があります。

データディレクトリの内容をファイルサイズでリストしてください。

大規模なblobフィールドでない場合は、一般に、他のフィールドをneo4jに配置することは問題ありません。

dbをどのように作成しましたか?

+0

ちょっと!いいえ、私はノードを削除していません。私は属性 "id"、 "name"、 "code"を持つノードを挿入するだけです。 IDは自動生成文字列(長さ= 32)です。名前は、ノードを挿入するときのカウンタです(ノード975.648 - > name = "name975648")。コードは名前(code975648)と同じです。私は家に戻ったときにデータディレクトリの内容の詳細を投稿します;) – Alebon

+0

名前+コードの用途は何ですか? w/oを使わないでちょうど長い値を使うと、接頭辞のスペースがかなり少なくなります。 Neo4jのどのバージョンを使用していますか?また、ディスクの使用方法については、http://docs.neo4j.org/annotated/#short-stringsおよびhttp://docs.neo4j.org/chunked/snapshot/configuration-caches.htmlを参照してください。 –

+0

Ok 、ありがとう!私は一つの事実を忘れてしまった。私はノードを索引付けしています。 :Dちょうどファイルサイズを見ました。 neostore.propertystore.dbは〜1.4 GBです。インデックスは同じサイズで静かです。全体で2.8GBになります。私は、ノードを見つけるためにインデックスが必要だと思いますか? – Alebon

関連する問題