コレクション型のフリーズ

コレクション・カラムはコレクション型を使用して宣言し、コレクション型の後に別の型を指定します。

コレクション・カラムはコレクション型を使用して宣言し、コレクション型の後にinttextなどの別の型を山かっこで囲みます。たとえば、text、整数、またはその他のデータ型要素のセットを含むテーブルを作成できます。

frozen<set<data_type>>

コレクション型をネストするには、ネストされたコレクションをフリーズします。たとえば、マップ内にセットをネストします。

map<frozen <set<int>>>

インデックスは任意の型のコレクション・カラムに対して作成できます。

コレクションでのfrozenの使用

複数のコンポーネントを単一値にシリアライズするには、frozen<collection_definition>の形式でセット、マップ、またはリストに対してfrozenを使用します。frozen以外の型を使用すると個々のフィールドを更新できますが、frozenコレクション内の値はBLOBと同様に処理され、upsertを実行すると値全体が上書きされます。

column_name collection_type<data_type, frozen<column_name>>

例を次に示します。

CREATE TABLE mykeyspace.users (
  id uuid PRIMARY KEY,
  name frozen <fullname>,
  direct_reports set<frozen <fullname>>,  // a collection set
  addresses map<text, frozen <address>>,  // a collection map
  score set<frozen <set<int>>>            // a set with a nested frozen set
);
注: frozen以外のコレクションでは、コレクションでの挿入および非増分更新用にトゥームストーンが作成されます。増分更新では、コレクションの既存の値に特定の値が追加されます。非frozenコレクションでの挿入および非増分更新により、膨大な数のトゥームストーンが生じる可能性があります。