Cassandra 的基础 CQL

1. 创建 Keyspace (数据库)

Keyspace 是 Cassandra 中最顶层的命名空间,类似于关系型数据库中的数据库(schema)。每个 keyspace 有自己的复制策略和副本数。

CREATE KEYSPACE IF NOT EXISTS my_keyspace
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};
  • IF NOT EXISTS: 只在 keyspace 不存在时创建。
  • replication_factor: 副本因子,表示数据在集群中的副本数量。
  • SimpleStrategy: 复制策略,适用于单数据中心的集群。

2. 查看 Keyspaces

查看当前 Cassandra 集群中的所有 keyspace。

DESCRIBE KEYSPACES;

SHOW KEYSPACES;

3. 使用 Keyspace

在 Cassandra 中执行任何操作之前,首先要选择一个 keyspace(数据库)。

USE my_keyspace;

4. 创建表

创建一个表用于存储数据。你需要定义每一列的数据类型和主键。

CREATE TABLE IF NOT EXISTS my_keyspace.users (
    user_id UUID PRIMARY KEY,
    first_name TEXT,
    last_name TEXT,
    email TEXT
);
  • PRIMARY KEY: 每个表必须有一个主键,user_id 列在这里是主键。

5. 插入数据

向表中插入数据。插入的数据行需要匹配表的列类型和顺序。

INSERT INTO my_keyspace.users (user_id, first_name, last_name, email)
VALUES (uuid(), 'John', 'Doe', 'john.doe@example.com');
  • uuid(): 生成一个唯一的 UUID 作为 user_id

6. 查询数据

使用 SELECT 查询表中的数据。

SELECT * FROM my_keyspace.users;
  • SELECT: 查询所有列的数据。
  • 如果需要查询特定列,可以只列出需要的列名:
    SELECT first_name, last_name FROM my_keyspace.users;
    

7. 更新数据

更新表中的数据。Cassandra 中的 UPDATE 是基于行的,不会更新表中的每个列,只有指定的列才会被更新。

UPDATE my_keyspace.users
SET email = 'newemail@example.com'
WHERE user_id = <some-uuid>;
  • WHERE 子句指定了主键,用于定位要更新的行。

8. 删除数据

删除表中的数据。删除行时,你需要通过主键来指定要删除的行。

DELETE FROM my_keyspace.users WHERE user_id = <some-uuid>;

9. 删除表

如果不再需要某个表,可以删除它。

DROP TABLE IF EXISTS my_keyspace.users;

10. 删除 Keyspace

如果不再需要某个 keyspace,可以删除它。

DROP KEYSPACE IF EXISTS my_keyspace;

11. 查看表结构

查看某个表的结构(列名和数据类型)。

DESCRIBE TABLE my_keyspace.users;

12. 查看数据

查看表中的某一部分数据,使用 LIMIT 限制返回的行数。

SELECT * FROM my_keyspace.users LIMIT 10;

13. 创建索引

在列上创建索引以提高查询效率。

CREATE INDEX ON my_keyspace.users (email);

14. 数据导出与导入

  • 导出数据:你可以使用 COPY 命令将表的数据导出为 CSV 文件。

    COPY my_keyspace.users TO 'users.csv';
    
  • 导入数据:你也可以使用 COPY 命令从 CSV 文件导入数据。

    COPY my_keyspace.users FROM 'users.csv';
    

总结

  • Keyspace 是 Cassandra 中的数据库,包含表和数据。
  • 用于存储数据,必须定义列及主键。
  • CQL(Cassandra Query Language) 是与 Cassandra 交互的查询语言,类似于 SQL。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值