2012-04-28 8 views
12

Neo4jは、本当に高速でスケーラブルなグラフデータベースです。ビジネスプロジェクトで使用でき、無料です!RDFとトリプルストレージのNeo4jへの利点は何ですか?

同時に、大きなデータでうまく動作したり、高速アクセスを提供するRDFトリプルストアはありません。さらに、無料のRDFトリプルストアはさらに悪化します。

RDFとRDFトリプルストアがNeo4jのメリットは何ですか?

+2

「本当に速い」、これを数量化できますか?たとえば、ローディング速度... 1秒あたりの頂点数は「本当に速い」とは何ですか? "スケールグラフデータベース"、これを数量化できますか?たとえば、X GBのRAMを搭載したサーバー上の頂点の数はいくつですか? – castagna

+0

@castagna:挿入または取り込み? Pythonicバインディングを使用すると、最適化されたSQLAchemy/SQLiteスタックと比較して、トリプレット挿入で使用すると2倍の速度しか低下しません。トラバーサルについては、私がよく覚えていれば、私の個人的なマシン(6GBのRAM)の1Mエッジ/秒を超えていましたが、それ以上に進むことができると思います。 リレーション(頂点、リレーションなど)に関する純粋なクエリの場合、データベースが100kのノードを持つ1Mのインデックス付きプロパティに近づいていても、マシン上のno4jサーバは1kトランザクション以上でうまくいきますMの関係 – chiffa

答えて

18

Neo4jではなくRDFにトリプルストアを使用する利点は、のように設計されていることです。 Neo4jは多くのユースケースではかなり良いですが、私の経験では、RDFの読み込みとクエリのパフォーマンスは、すべての専用RDFデータベースの下にあります。

RDFデータベースが拡張されていないか、または高速ではないという誤った考えです。確かに、彼らはリレーショナルデータベースの性能レベルである&のレベルまではまだ達していませんが、50年前のスタートです。多くのトリプルストアは、何十億ものトリプルに拡張し、標準のエンタープライズ機能を提供し、多くのユースケースに対して優れたパフォーマンスを提供します。

プロジェクトにRDFを使用する場合は、トリプルストアを使用します。 RDFを使用してアプリケーションを構築するための最高のパフォーマンスと一連の機能/ APIを提供する予定です。

+4

Neo4JはSparqlとGremlinをサポートしています:http://blog.neo4j.org/2010/02/top-10-ways-to-get-to-know-neo4j.htmlクエリ言語 プログラムでNeo4jを使用する以外にも、クエリ言語を使用してクエリを発行することもできます。現在サポートされているオプションは次のとおりです。 SPARQL:Neo4jは、トリプルストアまたはクワッドストアとして使用でき、SAILおよびSPARQLの実装があります。関連するコンポーネントの詳細については、コンポーネントサイトを参照してください。 Gremlin:グラフベースのプログラミング言語で、異なるバックエンド実装がサポートされています。 – sdw

-3

10MのトリプルをNeo4jに読み込むという噂が聞こえました(実際にはRDF用に構築されていないため、実際には最も遅いです)。

セサミと4Storeは最も速いものですが、Jenaは強力なAPIを備えています。

+3

どこでこの噂が聞こえましたか? –

+0

参考資料を提供してください – Kartoch

10

RDFとSPARQLは標準であるため、複数の実装を選択でき、1つのRDFストアから別のRDFストアにデータを移行できます。

さらに、SPARQLクエリ言語のバージョン1.1は非常に洗練されており(ほとんどのSQL実装よりも表現力があります)、Neo4Jで多くのコードを記述する必要があるすべての種類のクエリを実行できます。

2

トリプルでグラフマイニング(グラフのトラバーサルなど)を行う場合は、neo4jを選択するとよいでしょう。大規模なトリプルに対しては、かなり高速なbatchInserterを使用したいかもしれません。