ユーザー定義型(UDT)の作成

複数のデータ・フィールドを1つのカラムに関連付けるためにユーザー定義型(UDT)を作成する例。

Cassandra 2.1+では、ユーザー定義型(UDT)は複数のデータ・フィールドを1つのカラムに関連付けることができます。
  • ユーザー定義型(UDT)basic_infoを作成します。
  • basic_info型のカラムを定義するテーブルを作成します。

手順

  • cyclingキースペースを使用します。
    cqlsh> USE cycling;
  • ユーザー定義型basic_infoを作成します。
    cqlsh> CREATE TYPE cycling.basic_info ( birthday timestamp, nationality text, weight text, height text );
  • サイクリストのデータをbasic_info型のカラムに格納するテーブルを作成します。ユーザー定義型カラムの定義でfrozenキーワードを使用します。
    frozenキーワードを使用した場合は、ユーザー定義型値の一部を更新できません。値全体を上書きしなければなりません。Cassandraでは、ユーザー定義型であるfrozenの値はBLOBとして扱われます。
    cqlsh> CREATE TABLE cycling.cyclist_stats ( id uuid PRIMARY KEY, lastname text, basics FROZEN<basic_info>);
  • ユーザー定義型は、別のカラム型にネストさせることができます。この例では、UDTlistにネストしています。
    CREATE TYPE cycling.race (race_title text, race_date timestamp, race_time text); CREATE TABLE cycling.cyclist_races ( id UUID PRIMARY KEY, lastname text, firstname text, races list<FROZEN <race>> );