Cassandra 命令大全


Apache Cassandra 数据库使用 CQL (Cassandra Query Language) 进行交互,以下是一些常用CQL命令的摘要列表。由于篇幅限制,无法提供详尽的“大全”,但可以给出一些基础和常用的命令类别:

1. 连接与基本操作

  • 连接到Cassandra节点
cqlsh [hostname] [port] [username] [password]

例如:

cqlsh localhost 9042
  • 显示帮助信息
help

2. 数据库管理

  • 创建Keyspace(数据库空间)
CREATE KEYSPACE IF NOT EXISTS mykeyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};
  • 选择Keyspace
USE mykeyspace;

3. 表(Column Family)操作

  • 创建表
CREATE TABLE users (
    id uuid PRIMARY KEY,
    username text,
    email text,
    created_at timestamp
);
  • 插入数据
INSERT INTO users (id, username, email, created_at) VALUES (uuid(), 'user1', 'user1@example.com', toTimestamp(now()));
  • 查询数据
SELECT * FROM users WHERE id = 6b5e7cfc-8a12-11ec-bf63-0242ac130003;
  • 更新数据
UPDATE users SET email = 'newemail@example.com' WHERE id = 6b5e7cfc-8a12-11ec-bf63-0242ac130003;
  • 删除数据
DELETE FROM users WHERE id = 6b5e7cfc-8a12-11ec-bf63-0242ac130003;

4. 集群管理

  • 列出Keyspaces
DESCRIBE keyspaces;
  • 查看表结构
DESCRIBE TABLE users;
  • 修改表结构
ALTER TABLE users ADD last_login_time timestamp;
  • 删除表
DROP TABLE users;
  • 删除Keyspace
DROP KEYSPACE mykeyspace;

5. 权限管理

  • 创建用户
CREATE USER user1 WITH PASSWORD 'password';
  • 授权
GRANT SELECT ON ALL KEYSPACES TO user1;

6. 其他高级功能

  • 索引创建
CREATE INDEX ON users (username);
  • 批量操作
BEGIN BATCH
   INSERT INTO ...;
   UPDATE ...;
APPLY BATCH;
  • 时间序列相关的TTL(生存期)设置
INSERT INTO logs (id, message) VALUES (uuid(), 'log message') USING TTL 3600;

7. 条件查询与聚合操作

  • 条件查询
SELECT * FROM users WHERE username = 'user1' AND email LIKE '%example.com';
  • 分页查询
SELECT * FROM users LIMIT 10 OFFSET 20;
  • 聚合函数
SELECT COUNT(*) FROM users;

或者按字段进行计数:

SELECT COUNT(username) FROM users WHERE created_at > '2020-01-01';

8. 索引管理

  • 查看索引
DESCRIBE INDEXES ON users;
  • 删除索引
DROP INDEX users_by_username;

9. 用户权限和角色管理

  • 列出用户权限
LIST ALL PERMISSIONS OF user1;
  • 撤销权限
REVOKE SELECT ON KEYSPACE mykeyspace FROM user1;
  • 创建角色并分配权限
CREATE ROLE admin WITH LOGIN = true AND SUPERUSER = true;
GRANT ALL PERMISSIONS ON ALL KEYSPACES TO admin;

10. 安全性相关设置

  • 更改密码
ALTER USER user1 WITH PASSWORD 'new_password';
  • 禁用或启用用户
ALTER USER user1 WITH PASSWORD 'password' AND OPTIONS = {'login': 'false'};

11. 一致性级别控制

在Cassandra中,可以为每个查询设置一致性级别以控制读取和写入的保证程度。例如:

CONSISTENCY LEVEL ONE; -- 设置当前会话的一致性级别为ONE(至少一个副本响应)
INSERT INTO users (...) VALUES (...) IF NOT EXISTS; -- 使用当前会话的一致性级别执行插入

12. 用户定义类型 (UDTs)

  • 创建用户定义类型
CREATE TYPE address (
    street text,
    city text,
    zip_code int,
    country text
);
  • 在表中使用UDT
CREATE TABLE users (
    id uuid PRIMARY KEY,
    name text,
    addresses map<text, frozen<address>>,
    contact_info frozen<address>
);

13. 用户定义函数 (UDFs) 和聚合函数 (UDA)

  • 创建用户定义函数
CREATE FUNCTION concat_ws(separator text, values set<text>) 
RETURNS text LANGUAGE java AS '...'; -- 实现函数逻辑的Java代码

SELECT key, concat_ws(',', tokens) FROM mytable;
  • 创建用户定义的聚合函数
CREATE AGGREGATE average(int)
SFUNC avg_update STYPE tuple<int,bigint> INITCOND (0,0);

SELECT key, average(value) FROM mytable GROUP BY key;

14. 材料化视图 (Materialized Views)

  • 创建材料化视图
CREATE MATERIALIZED VIEW user_by_email AS
    SELECT * FROM users
    WHERE email IS NOT NULL AND id IS NOT NULL
    PRIMARY KEY (email, id);

15. 备份与恢复

虽然CQL本身不直接支持备份和恢复,但可以通过驱动程序或工具(如nodetool snapshot)执行这些操作。

  • 创建快照
nodetool snapshot -t backup_keyspace keyspace_name
  • 清理快照
nodetool clearsnapshot [snapshot-name]

请注意,在实际操作中,可能需要结合其他运维命令、工具及策略来实现更复杂的数据管理任务。对于Cassandra的所有命令以及其具体用法,请查阅官方文档以获取详细信息和最新指南。

python推荐学习汇总连接:
50个开发必备的Python经典脚本(1-10)

50个开发必备的Python经典脚本(11-20)

50个开发必备的Python经典脚本(21-30)

50个开发必备的Python经典脚本(31-40)

50个开发必备的Python经典脚本(41-50)
————————————————

​最后我们放松一下眼睛
在这里插入图片描述

相关推荐

  1. Linux 命令大全备忘录

    2024-02-06 00:38:03       47 阅读
  2. git撤销命令大全

    2024-02-06 00:38:03       31 阅读
  3. Docker命令大全

    2024-02-06 00:38:03       27 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-06 00:38:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-06 00:38:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-06 00:38:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-06 00:38:03       18 阅读

热门阅读

  1. PyTorch的 torch.unsqueeze() 和 torch.squeeze()方法详解

    2024-02-06 00:38:03       23 阅读
  2. 2.5 作业

    2024-02-06 00:38:03       26 阅读
  3. P2SH地址嵌套SegWit脚本

    2024-02-06 00:38:03       31 阅读
  4. #vu3# element plus表格的序号字段

    2024-02-06 00:38:03       33 阅读
  5. 【Android-Compose】Material3 新版下拉刷新 PullRefresh

    2024-02-06 00:38:03       31 阅读
  6. 【工具介绍】Herbie:浮点数运算化简工具

    2024-02-06 00:38:03       34 阅读
  7. Qt中设置全局字体

    2024-02-06 00:38:03       35 阅读
  8. MongoDB 聚合:$listSessions

    2024-02-06 00:38:03       35 阅读
  9. 基于FPN的小目标检测算法设计思路

    2024-02-06 00:38:03       38 阅读
  10. 对象分配内存时的指针碰撞与空闲列表机制

    2024-02-06 00:38:03       30 阅读