2016-07-28 64 views
6

我們已經開發了定製和專有軟件路由優化, 使用Neo4J作爲我們的圖形數據庫。我們還開發了少量的Java插件和非託管擴展,在圖表上進行搜索時實現特定的業務邏輯。由於我們面對Neo4J嚴重的性能問題,我們正在考慮將我們的專有軟件從Neo4J遷移到DataStaX DSE 5.0 Graph。但最初想評估DSE圖。從Neo4J遷移到DataStax圖形數據庫(DSE)

我們有幾個具體的問題 關於從Neo4j的遷移路徑 - > DataStax圖DB

  1. 如何將數據從Neo4j的遷移到DataStax圖形數據庫?
  2. 在我們的應用程序中,我們需要在Neo4J Cypher代碼中進行哪些更改,以便它可以在DataStax DSE Graph DB上運行?
  3. 我們使用Java在Neo4J中開發了一些插件/非託管擴展,這些擴展在Neo4J中包含了大量核心業務規則。當Neo4J搜索/遍歷圖數據庫時,我們的Java業務邏輯代碼被調用。 DataStax DSE Graph支持類似於插件和/或非託管擴展的東西嗎?

我們想知道將現有的Neo4J Java代碼遷移到DataStax DSE圖形代碼需要什麼。在我們可以在DataStax DSE Graph上運行之前,我們需要確定執行此練習所需的工作量。

+5

您如何期望基於Java的遍歷在分佈式數據庫中比在Neo4j中更快?換句話說,如果你正在做的一切都正確,你正在追逐圍繞SSD(最糟糕的情況)的指針或在Neo4j的內存中。在DSE圖表中,您將要通過網絡... –

+2

DSE圖形是爲了利用底層數據存儲卡桑德拉而建立的。 Cassandra作爲一個基於分區的專欄商店,可以通過簡單的遍歷密鑰來消除許多網絡跳數。 Cassandra還爲讀取和寫入以及無主架構(連續可用性)提供線性擴展。這些只是一個真正的分佈式系統可以給你的東西。分佈式系統是未來!擁抱它的兄弟:) – MarcintheCloud

+1

好吧,我會嘗試不同的方法,然後:) @Auro,你有沒有發現是什麼原因導致你的「嚴重的性能問題」? –

回答

1

這可能幫助:http://www.tinkerpop.com/docs/3.0.0.M1/#neo4j-gremlin

你基本上可以通過小鬼控制檯連接到您的Neo4j實例,讓你想要的數據,並寫入到可以加載到DSE圖形文件。這看起來有點像

graph.io(IoCore.gryo()).writeGraph("tinkerpop-modern.kryo"); 

參見:http://www.tinkerpop.com/docs/3.0.0.M1/#gremlin-kryo

有很多你的問題,尤其是在設計,即不能在StackOverflow的後準確地回答,因爲它的很多是特定於您的使用案件。我建議直接聯繫DataStax來解決這些問題,他們會很樂意提供幫助。話雖如此,我將與您保持一致,Neo4J和DSE Graph是非常不同的系統。因此,您可能不得不重新考慮模式設計以及應用程序代碼設計。

如果您已經非常熟悉Cassandra,那對於架構方面有很大的幫助。儘管如此,我還是建議檢查一下DSE Graph的免費培訓,具體如下:https://academy.datastax.com/courses/ds330-datastax-enterprise-graph