2017-07-01 4 views
0

orientdb 11Mエッジと20000ノードのグラフとして、重要なサイズのファイルをインポートしています。 これは無駄に時間がかかりすぎています。 には、グラフの負荷を最適化する方法や、16Gマシンのパフォーマンスの最大値を調べる方法があります。グラフをロードするために永遠に取るOrientdb

私の質問はなぜ時間がかかりますか? 次に、どのように最適化できますか?高速のインポート用

+0

グラフをどのようにインポートしていますか?あなたはplocalを使用していますか?どのようなグラフですか(エッジの分布)? – Lvca

+0

@Lvca、それは巨大なグラフです。最初に頂点をインポートしてから、各部分から3つのjsonファイルETLを作成します。 v1-hasedge ----> v2。私はv1を挿入してからv2を挿入し、最後のエッジが作成されます –

答えて

0

いくつかのアドバイス:

  • 使用plocal接続あなたは
  • は、トランザクション接続を使用して〜500レコード
  • のバッチでコミットすることができれば、頻繁に頂点のリロードを避けるようにしてください。ほとんどの場合、新しいエッジを挿入する時間の最大部分は、2つの頂点を探すことです。
  • あなたのグラフは、巨大なものではなく、ユースケースは十分に簡単です、あなたがあなたの主な関心事は、挿入速度である場合は、このhttp://orientdb.com/docs/2.2.x/Graph-Batch-Insert.html
  • を見てしようとすることができ、OrientDB ETLは最良の選択ではない、いくつかのカスタムのJavaを使用している場合代わりにコード
+0

私はjavaを使用することはできません。私はすでに1000のplocalとbatchコミットを使用しています。私は、デフォルトのパラメータでそれを維持しているので、サーバの設定と関係があると思う。 –

+0

javaはJavaプログラム自体に組み込まれているので、ネットワークラウンドトリップや実質的にストレージレイヤへの直接アクセスはできない。したがって、あなたはスタンドアロンのサーバーで作業しています。 "なぜそれは多くの時間がかかりますか?"数字のない時間が長すぎるとは不十分です。さらに、グラフをロードするためのコードのスニペット、および少しのシナリオがインポートのワンショットですか、定期的に繰り返す必要がありますか? –

+0

頂点間にエッジを作成するときに、ルックアップに使用している頂点プロパティ()のインデックスを作成しましたか? – Lvca

関連する問題