2011-01-13 7 views
3

私は30-40 GBのデータと3つの開発マシン(Core Duo i4、3 GB)を持っています。データはグラフのような構造のセットで、グラフを横断するクエリがあります。 Cassandraや古典的なソリューション(SQLやSemantic Storeなど)の使用を決める手助けとなるガイドラインはありますか?私の現在の計画はCassandraをセットアップし、それがどのように機能するか見ることですが、インストールを開始する前にもっと学びたいと思います。SQL/Semantic StoreソリューションでCassandraを選択するタイミングは?

+4

グラフのような構造を使用する場合は、neo4jまたは別のグラフDBを参照してください。http://neo4j.org/ –

答えて

1

私はどのような種類のグラフレベル構造に対してもCassandraを使用しません。似たようなやり方を検討してから約6ヶ月が経ちました。それ以来、カッサンドラはこれからも変わってきましたが、基本的に行レベルのインデックスしかないということが根本的に制限されていました。

グラフベースの構造(単純な1行のアークレイアウトを想定)では、グラフを横断したい場合は、特定のノードAから始めることができるので、実際には列インデックスも必要です。特定の列にAを持つ行を与えるという機能が組み込まれていないため、そのノード(有向グラフを前提としています)からのアークは、データセット全体の行スキャンを行う必要があります。

これを達成するには、カサンドラのデータレイアウトを効果的に設計し、逆インデックスを与える必要があります。これはややこしいことであり、事前に回答したいタイプのクエリを事前に知っておく必要があります。設計しないと、後のデータで新しいタイプのクエリに答えることは非常に困難または不可能な場合があります。これらのslidesがそのアイデアを示していますが、あなたが実際に独自のインデックスを構築しなければならないことが明らかになったことを願っています。

トリプルに分解できるグラフ構造では、RDFストアを考慮してください。より複雑な構造の場合は、完全なグラフデータベースを検討してください。 NoSQLを本当にしたいのであれば、文書データベースの上に何かを構築することができます。なぜなら、索引付けの方がはるかに優れている傾向がありますが、データの保管方法を慎重に考える必要があるからです。

関連する問題