Cassandraは引き続き幅の広い行を使用できます。この回答は、質問が行われた後に書かれたDataStaxブログエントリを参照しており、CQLと基盤となるアーキテクチャ間のリンクについて詳しく説明しています。
レガシーサポート
次のコマンドを使用してThriftを介して定義された動的列ファミリー(列固有のメタデータがないことに注意してください)。
create column family clicks
with key_validation_class = UTF8Type
and comparator = DateType
and default_validation_class = UTF8Type
CQLの正確な同等物は次のとおりです。
CREATE TABLE clicks (
key text,
column1 timestamp,
value text,
PRIMARY KEY (key, column1)
) WITH COMPACT STORAGE
これらのコマンドは両方とも、日付順にレコードを格納する広い行の列ファミリーを作成します。
CQLエクストラ
さらに、CQLは、行ID、列、および値の要素にラベルを割り当てて、何が格納されているかを示す機能を提供します。次の、CQLで同じ構造を定義する別の方法は、DataStaxの例でこの機能を強調しています。これは、Webサイトでのユーザーのクリックを時間順に保存するために使用される列ファミリーです。
CREATE TABLE clicks (
user_id text,
time timestamp,
url text,
PRIMARY KEY (user_id, time)
) WITH COMPACT STORAGE
ノート
- CQLのテーブルは、常にThriftの列ファミリーにマップされます
- CQLドライバーは、主キー定義の最初の要素を行キーとして使用します
- 複合列は、CQLで定義できる追加の列を実装するために使用されます
- WITH COMPACT STORAGEを使用すると、可能な列の数が固定されるため、新しいデザインにはお勧めしません。つまり、このようなテーブルでは、ALTER TABLE...ADDは使用できません。どうしても必要な場合を除いて、省略してください。