Cassandra 命令大全

文章目录

      • 1. 连接与基本操作
      • 2. 数据库管理
      • 3. 表(Column Family)操作
      • 4. 集群管理
      • 5. 权限管理
      • 6. 其他高级功能
      • 7. 条件查询与聚合操作
      • 8. 索引管理
      • 9. 用户权限和角色管理
      • 10. 安全性相关设置
      • 11. 一致性级别控制
      • 12. 用户定义类型 (UDTs)
      • 13. 用户定义函数 (UDFs) 和聚合函数 (UDA)
      • 14. 材料化视图 (Materialized Views)
      • 15. 备份与恢复

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', '[email protected]', toTimestamp(now()));
  • 查询数据
SELECT * FROM users WHERE id = 6b5e7cfc-8a12-11ec-bf63-0242ac130003;
  • 更新数据
UPDATE users SET email = '[email protected]' 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>,
    contact_info frozen
);

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

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

SELECT key, concat_ws(',', tokens) FROM mytable;
  • 创建用户定义的聚合函数
CREATE AGGREGATE average(int)
SFUNC avg_update STYPE tuple 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)
————————————————

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

你可能感兴趣的:(命令大全,数据库)