请描述在 Cassandra 中创建表的具体步骤和语法结构。
考察说明
考查对 Cassandra 表定义语法和基本概念的理解。
回答思路
- 【回答框架 1】Cassandra 使用 CQL(Cassandra Query Language)来定义表,语法类似于 SQL 的 CREATE TABLE 语句。基本语法为 CREATE TABLE keyspace.table_name (column1 data_type, column2 data_type, PRIMARY KEY (partition_key, clustering_key))。
- 【回答框架 2】定义表时,必须指定主键,主键由分区键(partition key)和可选的聚簇键(clustering key)组成。分区键决定数据分布,聚簇键决定同一分区内数据的排序和唯一性。
- 【回答框架 3】列的类型包括 text、int、uuid、timestamp 等。还可使用复合主键,例如 PRIMARY KEY ((col1, col2), col3) 表示 col1 和 col2 联合作为分区键,col3 作为聚簇键。
- 【回答框架 4】创建表时还可以指定选项,如 WITH comment 添加注释,WITH compaction 调整压缩策略,WITH caching 控制缓存等,但核心是主键的设计。
- 【回答框架 5】实际使用时,需要确保 keyspace 存在,可以使用 CREATE TABLE 时用完整限定名,或先 USE keyspace;如果表已存在,可使用 IF NOT EXISTS 避免错误。
- 【关键点 1】CREATE TABLE 语法必须包含主键,主键由分区键和可选的聚簇键组成。
- 【关键点 2】分区键影响数据分布,聚簇键影响排序和唯一性,设计顺序至关重要。
- 【关键点 3】支持多种列类型和复合主键,使用 WITH 子句可配置表选项。
- 【易错点 1】混淆分区键和聚簇键的作用,导致数据分布不均或查询效率低下。
- 【易错点 2】未指定主键或主键设计不当,违反 Cassandra 数据模型约束。
- 【易错点 3】忽略 keyspace 存在性,直接使用未创建的 keyspace 导致报错。