7

Rails を使用して Web ベースのアプリケーションを開発しています。InfoGrid などのグラフ データベースを使用するか、MongoDB などのドキュメント データベースを使用するかを検討しています。

私のアプリケーションは、URL などの小さなデータ セットと、仮想マシンなどの非常に大きなデータ セットの両方を格納する必要があります。このデータは、1 人のユーザーに関連付けられます。

グラフ データベースまたはドキュメント データベースを使用した人々の経験と、そのいずれかを使用する理由について知りたいと思っています。

ありがとうございました

4

2 に答える 2

3

私は両方の世界であなたの質問に適切かつ完全に答えるのに十分な経験を持っていないと感じていますが、私はしばらくの間ドキュメントデータベースを使用しており、ここにいくつかの個人的なヒントがあります。

ドキュメントデータベースは、キー、値、および静的ビューの概念に基づいており、特定の値を持つドキュメントのセットを見つけるのに非常に便利です。

それらは、ドキュメント間の関係を概念化するものではありません。

したがって、ソフトウェアが高度な「クエリ」を提供する必要があり、選択基準が複数の「タイプのドキュメント」に作用する場合、または単に複数の要素を使用して選択を実行する必要がある場合、[key、value]の概念は適切ではありません。

ドキュメントデータベースが不適切な場合も他にもたくさんあります。「ページングされた」テーブルに大きなデータセットを表示し、複数の列で並べ替えることができるのは、パフォーマンスが低く、ディスク領域の使用量が多い場合の1つです

そのため、多くの場合、ピースを取得するために「サーバー側」の処理を実行する必要があります。レールやその他のRubyベースのフレームワークでは、パフォーマンスの問題が発生する可能性があります。

グラフデータベースはトリプルストアの概念に基づいています。つまり、エンティティ間の関係も概念化されています。

グラフは、リレーション(およびエンティティの役割)を使用してトラバースでき、リレーション構造のデータ全体で検索を実行する場合に便利な場合があります。

私はグラフデータベースの経験がないので、グラフデータベースがいくつかの基準で簡単にクエリ/トラバースできるかどうかはわかりませんが、アドバイスを受けた読者がそのような情報を持っている場合は、そのようなクエリ/トラバーサルの例を本当に感謝します。

私は現在InfoGridについて読んでおり、関係を含む非常に大量のデータセットに対して複雑な要求を実行するためにそのようなデータベースが便利であるかどうかを理解しようとしています...。

私が読むことができることから、InfoGrahは、MongoなどのNoSQLデータベースでもある複数のソース(ストア)からのデータを検索/マイニングできる「データフェデレーター」と見なす必要があります。

Wichは、更新にmongoストアを使用し、データ検索にInfoGraphを使用でき nosqlデータベース内の複雑な検索に関しては多くのCPUとディスクを節約できることを意味します。

もちろん、アプリが巨大なバイナリファイルの大規模なセットをデータベースに保存するだけで、単純なキークエリを実行して結果を取得するだけの場合は、少し「やり過ぎ」に見えるかもしれません。その場合、mongoやcouchなどのnosqlデータベースがおそらく便利です。

これのいくつかが役立つことを願っています;)

于 2010-09-16T10:25:15.720 に答える
3

関連するドキュメントをエッジで接続すると、浅いグラフと深いグラフのどちらが得られますか? graphdbs と documentdbs のどちらかを決定する際には、その質問に対する答えが重要だと思います。これらの方針に沿った考えについては、Jim Webber によるNOSQL World の Square Pegs and Round Holes を参照してください。

于 2011-04-27T20:36:29.893 に答える