2013-03-19 63 views
0

對於使用Neo4j和傳統的RDBMS(如mysql),你有什麼想法?圖/ RDBMS混合?

我想知道是否在Neo中保留關係/連接等,並且在mysql中的消息/電子郵件和安全性是一個合理的設計。

這將提供兩全其美? Neo會針對關係進行優化,並針對消息傳遞優化mysql?對每個人都有一點壓力 - 也允許在消息和安全方面進行分解等。也允許爲Neo4j更小的備份窗口,據我所知,它必須脫機做..

您看到這樣一個系統有什麼優點和缺點?

回答

0

這不僅是一個完全合理的方法,它完全支持並記錄在Good Relationships指南中(如果您通過Spring使用Neo4j和MySQL)。

http://static.springsource.org/spring-data/data-graph/snapshot-site/reference/html/#reference:cross-store

這肯定會增加複雜性,以您的域模型,你就需要考慮跨店內交易在您需要將相同的事務中進行更新,以兩個數據存儲辦案。除了分片/水平縮放(這是我聽到的Neo Tech正在處理的內容)之外,如果您需要運行任何迭代操作(例如像SUM,COUNT,AVERAGE這樣的聚合)而不是RDBMS,那麼RDBMS的性能會更好一些。大表格集。

相關: Neo4j performance on a fixed column table vs database performance

+0

謝謝你 - 我也想存儲在MySQL的採購/訂單信息,以及 - 不知道該圖提供任何真正的優勢在於種類的數據(事務).. Obviousy我的天堂沒有使用Neo4j,但我不想通過現在採用它來做任何事情,因爲它可能不會爲系統的某些部分打賭最好的工具。所以在採用Neo之前,我想看看是否一個混合是一個很好的解決方案...我使用Ruby on Rails的Active記錄,而不是春天 - 這是一個問題嗎? – 2013-03-19 16:14:35

+0

我只使用Neo4j本地(Java),並通過Spring,但完全支持Ruby驅動程序(https://github.com/andreasronge/neo4j) 我懷疑您可能無法獲得您獲得的跨存儲持久性支持但如果您不希望跨兩個數據存儲區分割對象,並且只在Neo4j中存儲關聯並且在另一個RDBMS中存儲屬性等,則可以輕鬆地手動管理這兩個數據存儲區中的持久化。 我使用Neo4j作爲第一級數據庫(所有對象和關係)和MongoDB的消息/事件。清潔分離 - 像魅力一樣工作。 – mwielbut 2013-03-19 16:20:08

+0

是的,我可以手動分割東西 - 我只需要Neo4j的ID存儲在RDBMS中,我選擇鏈接這兩個...更方便地在RDBMS中存儲購買和訂單,原因有幾個......可以使用Mongo或Cassandra的消息 - 但稍後會做這種優化 - 在這一點上,我只是在製作一個原型,消息傳遞性能不像新聞饋送性能那麼重要 - 而是專注於優化目前的狀態..謝謝.. – 2013-03-19 16:47:59