複合プライマリ・キー

複合プライマリ・キーは、データを格納するノードを決定するパーティション・キーと、パーティション上のデータの順序を決定するクラスター化カラムで構成されます。

複合プライマリ・キーを持つテーブルに対しては、Cassandraは単純パーティション・キーまたは複合パーティション・キーのいずれかを使用します。さらに、クラスター化カラムが定義されます。クラスター化とは、各パーティション内でクラスター化カラムの定義に基づきデータをソートするストレージ・エンジンのプロセスです。通常、カラムは昇順のアルファベットでソートされます。一般的に、この単純な方法よりも、データの異なるグループ分けの方が読み込みと書き込みには効率的です。

データはCassandraクラスター全体に分散していることに留意してください。少量のデータを収集するためにパーティション全体を読み込む必要がある場合、大きいパーティションからのデータの取得中にアプリケーションでレイテンシーが高くなる可能性があります。物理ノードでは、パーティション・キーの行がクラスター化カラムの順番に基づいて格納されているときに行の取得が非常に効率的になります。クラスター化カラムを使用したテーブルでのデータのグループ分けは、リレーショナル・データベースでのJOINと同等ですが、アクセスするテーブルは1つのみであるため、パフォーマンスははるかに高くなります。このテーブルは、パーティション・キーにcategoryを使用し、クラスター化カラムにpointsを使用します。各categorypointsが降順になっていることに注意してください。


パーティションからのデータの取得は、クラスター化カラムの使用によってさらに汎用になります。例では、クエリーはOne-day-racesについて200より大きいポイント値のすべてを取得することができます。

複合プライマリ・キーを持つテーブルを作成するには、次の方法を使用します。
  • CREATE TABLE定義で、最後のカラム名の後にPRIMARY KEYキーワードを挿入し、その後にキーのカラム名を続けます。カラム名は丸かっこで囲みます。