私は NoSQL と BigTable を初めて使用し、スーパー カラムを使用して BigTable に適したスキーマを作成する方法 (および使用する必要がある場合) を学ぼうとしています。
NoSQL データ モデリングに関するこの記事に基づくと、JOIN 中心の RDBMS スキーマを使用する代わりに、データをより大きなテーブルに集約して、可能な場合は非正規化する必要があるように思えます。それに基づいて、Cassandra 用に作成しようとしている「ユーザー」用に想定した単純なスキーマを次に示します。
User: {
KEY: UserId {
name: {
first,
last
},
age,
gender
}
};
キーが「UserID」である上記の列ファミリー (ユーザー) は、3 つの列 (名前、年齢、性別) で構成されます。その列「名前」は、「名」と「姓」で構成されるスーパー列になります。列。
だから私が求めているのは:
CQL 3.0は、その中に「名前」スーパー列を持つこの列ファミリ「ユーザー」を作成するように見えますか?(更新:これは可能ではないようです。)- (このような) スーパー カラムを使用する必要がありますか? 他のものを使用する必要がありますか?
- このスキーマを表す別の方法は何ですか?
- テーブル/列ファミリーで値のリストを表すにはどうすればよいですか?
私が見つけたこれに関するいくつかの有用なリンクを次に示しますが、私の質問に答えるのに十分明確に理解していません:
ありがとう!
アップデート:
多くの研究の後、私はいくつかのことを学んでいます:
- CQL を使用してスーパー カラムを作成することはできません。そうする他のメカニズムがあるかもしれませんが、CQL はそれらの 1 つではないようです。
- SQL 3.0 の構文は、「COLUMN FAMILY」中心のアプローチから、SQL に似た「TABLE」ベースの構文に移行しているようです。
それに応じて質問を変更しました。