2016-07-28 4 views
6

Neo4JをグラフDBとして使用して、経路最適化のためのカスタムおよび独自のソフトウェア、 を開発しました。また、Javaでプラグインやアンマネージドエクステンションを開発しました。これは、グラフ上で検索が行われるたびに特定のビジネスロジックを実装します。我々はNeo4Jに重大なパフォーマンス問題があるため、当社独自のソフトウェアをNeo4JからDataStaX DSE 5.0グラフに移行することを検討しています。しかし、最初にDSEグラフを評価したいと思います。Neo4JからDataStaxグラフDB(DSE)への移行

我々はいくつかの具体的な質問 のNeo4jからの移行パスについて持っている - > DataStaxグラフDB

  1. DataStaxグラフDBへのNeo4jからデータを移行する方法を?
  2. DataStax DSE Graph DBで動作するように、アプリケーションのNeo4J Cypherコードでどのような変更を加える必要がありますか?
  3. 私たちはNeo4Jにいくつかのコアビジネスルールが組み込まれたJavaを使用して、いくつかのプラグイン/アンマネージドエクステンションを開発しました。 Neo4Jがグラフデータベースを検索/トラバースするたびにJavaのビジネスロジックコードが呼び出されます。 DataStax DSE Graphは、プラグインやアンマネージエクステンションに類似したものをサポートしていますか?

既存のNeo4J JavaコードをDataStax DSE Graphコードに移行するために必要なことを確認したいと思います。 DataStax DSE Graphを起動して実行する前に、この練習を行うために必要な作業のレベルを決定する必要があります。

+5

JavaベースのトラバーサルがNeo4jよりも分散データベースの方が速いと思いますか?言い換えると、すべてを正しく実行している場合、SSD(最悪の場合)またはNeo4jのメモリ内のポインタを追いかけています。 DSEグラフでは、ネットワーク経由で行くつもりです... –

+2

DSEグラフは、基礎となるデータストアCassandraを利用するために構築されています。パーティションベースの列ファミリストアであるCassandraは、単にトラバーサルにキーを与えるだけで、多くのネットワークホップを排除できます。 Cassandraは、読み書きのリニアスケーリングとマスタレスアーキテクチャ(継続的な可用性)も提供します。これらは本当に分散されたシステムだけがあなたに与えることができるものです。分散システムは未来です!それを抱きしめてください:) – MarcintheCloud

+1

OK、私は別のアプローチを試してみるつもりです:) @Auro、あなたの "重大なパフォーマンスの問題"の原因を特定しましたか? –

答えて

1

これは役立つかもしれない:http://www.tinkerpop.com/docs/3.0.0.M1/#neo4j-gremlin

あなたは、本質的に、グレムリンコンソール経由でのNeo4jのインスタンスに接続しますが好きなデータを取得し、DSEグラフにロードできるファイルに書き出すことができます。あなたの質問への多くは、それの多くは、あなたの使用に固有であるため、正確にStackOverflowのポストに答えることができないよう、特に設計を中心に、ありますhttp://www.tinkerpop.com/docs/3.0.0.M1/#gremlin-kryo

:それは何かを参照してください

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

のように見えます場合。私はこれらの質問のためにDataStaxに直接お問い合わせいただくことをお勧めします。つまり、私はあなたと前向きになるでしょう、Neo4JとDSEグラフは非常に異なるシステムです。したがって、スキーマ設計とアプリケーションコード設計について再考する必要があります。

あなたが既にCassandraに精通しているなら、それはアーキテクチャー側にかなり役立ちます。それでも、私はDSE Graphの無料トレーニングのいくつかをチェックすることをお勧めします。具体的にはhttps://academy.datastax.com/courses/ds330-datastax-enterprise-graph

関連する問題