静的(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キーワードを使用して静的カラムを検索できます。この場合は、パーティションの最初(静的カラム)だけが取得されます。