2011-11-14 129 views
4

我在尋找處理數據的最佳實踐。所以,這就是我迄今爲止所獲得的:1.000.000個類型爲「A」的節點。每個「A」節點可連接到1-1000個「B」型節點和1-10個「C」型節點。處理大數據集(neo4j,mongo db,hadoop)

我已經編寫了一個RESTful服務(Java,Jersey)來將數據導入到neo4j圖中。在導入節點「A」(只有節點,帶有ID,沒有其他數據)後,我注意到neo4j db已經增長到〜2.4GB。

在neo4j中存儲附加字段(名稱,描述,...)是一個好主意嗎?或者我應該設置一個mongoDB/hadoop來使用鍵/值組合來訪問數據?

+1

在我看來,100萬個節點/幾GB不足以保證進入Hadoop。 –

回答

2

在插入過程中是否刪除了很多節點?通常一個節點需要9個字節的磁盤,所以你的1M節點只需要9M字節。您必須啓用標識符重用才能積極回收內存。

您能否列出您的數據目錄的內容與文件大小?

一般來說,將其他字段放在neo4j中是不成問題的,如果它們不是大的blob字段的話。

你是如何創建數據庫的?

+0

嘿!不,我不是刪除節點。我只是「插入」具有「id」,「name」和「code」屬性的節點。該ID是一個自動生成的字符串(長度= 32)。當我插入節點時,名稱是計數器(節點975.648 - > name =「name975648」)。代碼與名稱相同(代碼975648)。當我回到家時,我會發布數據目錄的內容細節;) – Alebon

+0

名稱+代碼的用途是什麼。僅使用長前綴而不使用前綴就會佔用更少的空間。你使用的是什麼版本的Neo4j?您也可以查看(http://docs.neo4j.org/annotated/#short-strings和http://docs.neo4j.org/chunked/snapshot/configuration-caches.html以瞭解磁盤使用情況) –

+0

好的, 謝謝!我忘記了一個事實。我正在索引節點。 :D只看了一下文件大小。 neostore.propertystore.db約爲1.4 GB。該指數的大小相同。所有在一起它導致〜2.8GB。我想,我需要索引來定位節點? – Alebon