推荐答案
在 Cassandra 中创建表可以使用 CREATE TABLE
语句。以下是一个基本的创建表的语法示例:
CREATE TABLE keyspace_name.table_name ( column1_name column1_type, column2_name column2_type, ... PRIMARY KEY (partition_key_column, clustering_column) ) WITH additional_options;
示例
假设我们有一个名为 my_keyspace
的 keyspace,并且我们想在其中创建一个名为 users
的表,表中有 user_id
、username
和 email
三个列,其中 user_id
是主键:
CREATE TABLE my_keyspace.users ( user_id UUID, username TEXT, email TEXT, PRIMARY KEY (user_id) );
本题详细解读
1. 表的基本结构
在 Cassandra 中,表的基本结构由列名和列类型组成。每个表必须有一个主键,主键可以是一个或多个列的组合。主键分为两部分:
- 分区键(Partition Key):用于确定数据在集群中的分布位置。分区键可以是单个列或多个列的组合。
- 聚类列(Clustering Column):用于在分区内对数据进行排序。聚类列是可选的。
2. 主键的定义
主键的定义方式决定了数据的存储和查询方式。以下是一些常见的主键定义方式:
单列主键:主键只包含一个列,通常是分区键。
PRIMARY KEY (user_id)
复合主键:主键包含多个列,第一个列是分区键,其余列是聚类列。
PRIMARY KEY ((user_id, username), email)
3. 表的选项
在创建表时,可以通过 WITH
子句指定一些额外的选项,例如:
压缩选项:指定数据的压缩方式。
WITH compression = {'sstable_compression': 'LZ4Compressor'}
复制策略:指定数据的复制策略。
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3}
TTL(Time To Live):指定数据的生存时间。
WITH default_time_to_live = 86400
4. 示例解析
在示例中,我们创建了一个名为 users
的表,其中 user_id
是主键。这意味着每个 user_id
对应一个唯一的分区,数据将根据 user_id
分布在集群中。
CREATE TABLE my_keyspace.users ( user_id UUID, username TEXT, email TEXT, PRIMARY KEY (user_id) );
这个表的结构非常简单,适合存储用户的基本信息。user_id
是分区键,确保了每个用户的数据存储在一个独立的分区中。