Coursera 笔记

Module 03 · Introducing Apache Cassandra: An Open-Source NoSQL Database

Table OperationsApache Cassandra 表操作

Coursera ↗

欢迎观看关于 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 中的表和数据。