後で分析、検索、クラスタリングなどを行うために、永続ストレージにグラフを保存する最良の方法は何だろうと思っています。
私はneo4jがオプションだと思います.他のグラフデータベースも利用できるかどうか興味があります. 大規模なソーシャル ネットワークがグラフ ベースのデータ (または RDF などのグラフのようなモデルのストレージを必要とする他のサイト) をどのように保存するかについて、誰かが洞察を持っていますか?
Cassandra や MySQL などのオプションはどうですか?
後で分析、検索、クラスタリングなどを行うために、永続ストレージにグラフを保存する最良の方法は何だろうと思っています。
私はneo4jがオプションだと思います.他のグラフデータベースも利用できるかどうか興味があります. 大規模なソーシャル ネットワークがグラフ ベースのデータ (または RDF などのグラフのようなモデルのストレージを必要とする他のサイト) をどのように保存するかについて、誰かが洞察を持っていますか?
Cassandra や MySQL などのオプションはどうですか?
グラフ データベース:
ソース: http://nosql.mypopescu.com/post/498705278/quick-review-of-existing-graph-databases
グラフ ライブラリ:
免責事項:私はグラフ分析の観点から話しています。
グラフ データを保存するためのファイル形式はいくつかあります: GraphML、GXL、およびその他のいくつか。しかし、保管は通常問題ではありません。グラフを RAM に完全にロードせずにグラフを操作するのは、注意が必要な部分です。
RDF モデルは一般的すぎて、本格的なグラフ分析を行うことができません。分析が遅いことや自分でアルゴリズムをプログラミングすることを気にしない場合は、既存のグラフ データベースを使用してください。これについてはウィキペディアを参照してください。
実際の分析では、 SNAPなどの既存のグラフ分析ライブラリを使用してすべてのデータを RAM にロードするか、この質問を参照してください。
ここに絶対的な正解はありません。多種多様なオプションがあり、その選択はニーズに大きく依存します。大規模な検索/トラバーサル (ソーシャル ネットワークや同様のバックエンドなど) では、ランダム I/O のボトルネックにすぐに遭遇します。現在のところ、グラフを RAM に保存することが唯一の実用的な方法だと思います。遅延の影響を受けにくいアプリケーションには、 neo4j (商用フレーバーのオープン ソース) やAllegrograph (限定無料版の商用) など、さまざまなオプションがあります。
Delver では、独自の非正規化データ モデル (本質的にはグラフを表す隣接リスト) をGigaSpaces上の RAM に実装し(一部の情報はこのプレゼンテーションに記載されています)、クエリとデータ分析用のカスタム map-reduce コードを使用しました。この道をたどれば、Cassandraは構築に適したオープン ソース プラットフォームのように思えます。
まもなくベータ版がリリースされる InfiniteGraph を見ることができます ( http://www.infinitegraph.com/ ) 。
これが商用目的の場合は、より大きなグラフを持つサイトを対象としていることがわかります。ソーシャル ネットワーキング サイトは、当時は機能していたカスタム ソリューションを構築していました。しかし、それらは社内ソリューションであり、InfiniteGraph などを使用するよりも制限があります。Cassandra や MySQL などの製品は、この多対多の問題セット用に設計されていません。それできますか?もちろんですが、手書きのコーディングが多く、スケーラブルではありません。実際のプロジェクトがある場合はお知らせください。グラフの要件を把握するのに役立ちます。ありがとう、ウォーレン wdavidson@objectivity.com