Module 03 · Introducing Apache Cassandra: An Open-Source NoSQL Database
Table OperationsApache Cassandra 表操作
欢迎观看关于 Apache Cassandra 表操作 的视频。在本视频中,您将能够:
- 解释 Cassandra 表 的作用,
- 描述 Cassandra 表的一些属性,
- 创建、修改和删除表。
表概述
在 Cassandra 中,数据以表的形式存储,每个表在创建之前都需要定义一个 键空间。每个表都属于一个键空间,一个键空间可以包含多个表。表的 模式 定义了数据在集群和节点级别的存储方式。
创建表的基本语法
CQL 中创建表的基本语法如下:
CREATE TABLE IF NOT EXISTS keyspace_name.table_name (
column1 datatype,
column2 datatype,
...,
PRIMARY KEY (column1, column2)
);
- IF NOT EXISTS:用于避免重复创建表。如果表已经存在,则不会报错,且不会创建新表。
- PRIMARY KEY:指定一个或多个列作为表的主键。
静态表与动态表
- 静态表:表的主键只有 分区键,适用于不需要排序的数据。
- 动态表:表的主键由 分区键 和 聚类键 组成,适用于需要按顺序查询的情况。
创建静态表
在静态表中,我们只需要声明一个分区键作为主键:
CREATE TABLE IF NOT EXISTS users (
username TEXT,
email TEXT,
PRIMARY KEY (username)
);
创建动态表
动态表的主键包含分区键和聚类键。举个例子,我们使用 groupid 作为分区键,username 作为聚类键:
CREATE TABLE IF NOT EXISTS groups (
groupid INT,
username TEXT,
email TEXT,
PRIMARY KEY (groupid, username)
);
表的属性
WITH CLUSTERING ORDER BY:指定聚类键内数据的排序方式(升序或降序)。DEFAULT_TIME_TO_LIVE:为表中的数据设置 Time-To-Live (TTL),到期后数据会自动删除。
修改表
您可以通过 ALTER TABLE 命令修改表的结构,例如添加新列、删除列、修改列名等,但 主键 一旦定义不能修改。如果需要更改主键,必须创建一个新表并重新导入数据。
修改表的示例
ALTER TABLE users ADD age INT;
ALTER TABLE users RENAME email TO contact_email;
删除表
TRUNCATE:删除表中的所有数据,但保留表的结构。DROP:删除表及其所有数据和结构。
注意执行TRUNCATE或DROP时,Cassandra 会默认拍摄数据快照,以便在需要时恢复数据。
总结
通过本视频,您学习了:
- Cassandra 表 存储数据的结构和方式,表的 主键 决定了数据在集群和节点级别的分布。
- 可以为表设置 TTL(Time-To-Live) 参数来管理数据的过期和删除。
- 可以通过
ALTER TABLE修改常规列,但不能修改主键。 - 使用
DROP或TRUNCATE命令删除表及其数据。
这些操作帮助您有效地管理 Cassandra 中的表和数据。