テーブルの作成
CQLテーブルの作成方法。
WITH
句とキーワード引数を追加します。table_optionsを参照してください。cqlshを使用したスキーマの作成
cqlsh
を使用してテーブル・スキーマを作成します。DataStax Enterpriseは、動的スキーマの生成をサポートしていません。複数のクライアントがテーブルを同時に生成しようとした場合は、衝突が発生する場合があります。衝突から復旧するには、「スキーマの衝突の修正」の手順に従ってください。
プライマリ・キー
Primary_keyは格納されたデータの場所と順序を指定します。プライマリ・キーはテーブルの作成時に定義され、変更することはできません。プライマリ・キーを変更する必要がある場合は、新しいテーブル・スキーマを作成し、既存のデータを新しいテーブルに書き込みます。作成後のテーブルの変更の詳細については、「ALTER TABLE」を参照してください。
DataStax Enterpriseのデータベースはパーティション行ストアです。プライマリ・キーの最初の要素であるパーティション・キーは、特定のテーブル行を保持するノードを指定します。partition keyは、最低でも1つのパーティション・キーで構成される必要があります。複合パーティション・キーを定義してデータ・セットを分割し、関連データをそれぞれ別々のパーティションに格納することができます。複合プライマリ・キーには、パーティション上のデータを順序付けるクラスター化カラムが含まれます。
- パーティションのサイズ。
- パーティション内でのデータの順序。
- クラスターのノード間におけるパーティションの分散。
テーブル名の規則
- テーブルを含むキースペースを指定するには、keyspace_name.table_nameのように、キースペース名の後にピリオドを付け、その後にテーブルの名前を記述します。これで、現在のセッション(たとえばUSEコマンドのセッション)のキースペースとは異なるキースペースに新しいテーブルを作成できます。
- 現在のキースペースにテーブルを作成する場合は、単に新しいテーブル名を使用します。
カラムの特性
CREATE TABLE cycling.cyclist_alt_stats ( id UUID PRIMARY KEY, lastname text, birthday timestamp, nationality text, weight text, height text );
CREATE TABLE cycling.whimsey ( id UUID PRIMARY KEY, lastname text, cyclist_teams set<text>, events list<text>, teams map<int,text> );
コレクション型をネストすることはできません。コレクションにはfrozenデータ型を含めることができます。例と使用方法については、「コレクション型のフリーズ」を参照してください。CREATE TABLE cycling.route (race_id int, race_name text, point_id int, lat_long tuple<text, tuple<float,float>>, PRIMARY KEY (race_id, point_id));
詳細については、「タプル型」を参照してください。CREATE TYPEを使用して、ユーザー定義型(UDT)を複数のフィールドのデータ型として作成します。複数のテーブル定義に使用できるUDTを作成するようにしてください。ユーザー定義カラム型(UDT)にはfrozenキーワードが必要です。ユーザー定義型は、それを定義したキースペース内で有効です。その範囲外のキースペースから型にアクセスするには、ドット表記を使用します。キースペース名の後にピリオドを付け、その後に型の名前を記述します。たとえば、test.myType
のtest
はキースペースの名前で、myType
は型名です。データベースは、指定されたキースペース内の型にアクセスしますが、現在のキースペースは変更しません。キースペースを指定しない場合、データベースは現在のキースペース内の型にアクセスします。例と使用法については、「ユーザー定義型の使用」を参照してください。
カウンターは、インクリメントで変化する数値の格納に使用される特別なカラムです。カウンターは、counterデータ型カラムを含む専用のテーブルでのみ使用できます。例と使用法については、「カウンターの使用」を参照してください。