静的(STATIC)カラムの共有
クラスター化カラムを使用するテーブルでは、テーブル定義で非クラスター化カラムを静的(STATIC)なカラムとして宣言できます。
クラスター化カラムを使用するテーブルでは、テーブル定義で非クラスター化カラムを静的(STATIC)なカラムとして宣言できます。静的カラムは特定のパーティション内だけで静的になります。
CREATE TABLE t ( k text, s text STATIC, i int, PRIMARY KEY (k, i) ); INSERT INTO t (k, s, i) VALUES ('k', 'I''m shared', 0); INSERT INTO t (k, s, i) VALUES ('k', 'I''m still shared', 1); SELECT * FROM t;
出力は以下のようになります。
k | s | i ---------------------------- k | "I'm still shared" | 0 k | "I'm still shared" | 1
制限事項
- クラスター化カラムが定義されていないテーブルに静的カラムを含めることはできません。クラスター化カラムがないテーブルには、すべてのカラムが本質的に静的である1行パーティションで構成されます。
- COMPACT STORAGEディレクティブを使用して定義されたテーブルに静的カラムを含めることはできません。
- パーティション・キーとして指定されるカラムを静的カラムにすることはできません。
Cassandra 2.0.9以降では、DISTINCTキーワードを使用して静的カラムを検索できます。この場合は、パーティションの最初(静的カラム)だけが取得されます。