2017-03-08 3 views
0

を保存するために、私は次のように言葉や記事でその頻度が格納されている、転置インデックスを格納するカサンドラを使用する必要があります。ユニークワードのカサンドラパーティションおよびクラスタキー転置インデックス

word, article_title, frequency 

数は約40MでありますCassandraノードの数= 2となります。 単語の最初の文字をPartitionキーまたは単語自体として使用する方が良いですか? プライマリキーはどうですか?

+0

テーブルが提供するクエリがわからなくても難しいと言えます。 – Aaron

+0

クエリは次のようになります。select * from inverted_indexどのワードが(word1、word2、...)か; –

+0

sasiインデックスを見ましたか? –

答えて

0

TL; DR:クエリに関して、私は間違いなくその単語をパーティションキーとして使用すると言います。

最初の文字のみを使用する場合、パーティションは26個になります。あなたがそれを望んでいない、他の何か、あなたがホットスポットを取得します。特定の文字で始まる単語がたくさんありませんし、他は非常に長く、多分、それは使用する演奏者のポイントを超えています。はい、Cassandraには行ごとに20億の制限がありますが、行のサイズを数百万に保つことが推奨されています。また、 'AIRPORT'だけを使用したい場合は、 'A'で始まるすべての単語にアクセスする必要はありません。

行全体がクラスタ全体に分散されるように、可能な限りランダムなパーティションキーとして高いカーディナリティが必要です。一方、あなたのアクセスパターンを反映しなければなりません。あなたの場合は、単語や単語の集まりの統計を見ることはできません。パーティション/プライマリでアクセスするのは基本的にCassandraと同じくらい速いです。

クラスタリングキーに関しては、それは多かれ少なかれ、記事タイトルを使用することができます。または、私が行うことは、実際には記事ID(UUIDなど)をクラスタキーとして使用することです。記事のタイトルは変更される可能性があります(タイプミス)、あなたは確かにすべての行を繰り返してタイトルを変更する必要はありません。

関連する問題