cassandra常用操作总结
前言
在上一篇,我们演示了如何基于centos7快速搭建起cassandra的运行环境,以及服务的启动和cql客户端命令行,本篇将基于此环境对cassandra的基础使用做一些总结
操作运维命令总结
1、查看键空间
DESCRIBE keyspaces;
该命令用于展示casandra下的所有的keyspaces(类比mysql的show databases;),casandra的keyspaces和mysql的数据库概念相似,属于从逻辑上区分的物理隔离空间,基于各个keyspaces,管理各自的tables
上图展示出了当前包含的所有和系统相关的keyspaces,如果想进入到某个keyspace下,可以使用, use [keyspace名称]
2、创建keyspace
CREATE KEYSPACE [名称] WITH replication = {‘class’ : ‘SimpleStrategy’,‘replication_factor’ : 3};
class:keyspace的策略类型,默认SimpleStrategy
replication_factor:副本数,默认为1,可以自己指定(类似kafka)
创建完毕之后,可以使用 : DESCRIBE keyspace 进行查看
3、修改keyspace
ALTER KEYSPACE [名称] WITH replication = {‘class’ : ‘SimpleStrategy’,‘replication_factor’ : 3};
比如我们可以将replication_factor从3修改为2
4、删除键空间
DROP KEYSPACE [名称]
5、创建表
类比mysql,当我们创建了一个数据库之后,就可以在这个数据库下创建表了,下面是cassandra的常用数据类型,可供参考
比如在上面的school下,创建一张表,建表sql如下:
CREATE TABLE user(id int PRIMARY KEY,name text,age int,gender tinyint,address text,interest set<text>,phone list<text>,education map<text,text>
);
创建完毕后,可以通过: DESCRIBE tables; 查看当前keyspace下的表
也可以通过: DESCRIBE table user; 查看具体的表详情
5、添加表字段和删除表字段
alter table [表名称] add [字段名称] datatype
比如为上表user添加一个email字段
alter table user add email text;
删除表字段
alter table name drop cloumn name
删除email字段
alter table user drop email;
6、删除表和清空表
DROP TABLE <表名称>
清空表数据
truncate <表名称>
表数据操作
1、表插入数据
insert into <表名称>(<col1 name>,<col2 name> ...) values(val1,val2...)
比如为user表添加一条数据
insert into user(id,name,age,gender,address,interest,phone,education) values(1001,'李飞',17,1,'霞飞路13号',{'跑步','羽毛球'},['13321277546','13321277547'],{'小学':'丁庙中小','初中':'黄元中学'});
2、带过期时间的插入数据
cassandra支持插入数据时候设定一个过期时间,只需要在插入语句后面加上TTL关键字进行标识即可,如下所例:
insert into user(id,name,age,gender,address,interest,phone,education) values(1003,'李晓华',16,0,'航空路232号',{'跑步','看书'},['0710-7677856','13121277138'],{'小学':'丁庙中小','初中':'肖云中学'}) USING TTL 30;
可以看到30秒之后,这条数据被自动删除了
3、修改表数据
cassandra和mysql不同的是,被更新的这一列数据如果不存在时,会添加进去
简单更新,对普通列进行更新
比如,更新user表中id 为1001的这条数据
update user set age=16 where id = 1001;
复杂更新,对普集合类型字段进行更新
更新set字段
update user set interest = interest + {'看小说'} where id = 1001;
同样,可以从set集合中删除一个数据
update user set interest = interest - {'跑步'} where id = 1001;
如果删除集合所有元素呢?只需要 set interest = {} 即可
更新list类型字段
update user set phone= ['13825522321'] where id = 1001;
list集合前面加一个数据
update user set phone= ['027-8867678'] + phone where id = 1001;
既然是集合,很容易联想到可以使用下标的方式去修改,这种操作是可以的,但是不推荐,因为数据量大的时候,可能会比较慢
update user set phone[1]= '0717-8867555' where id = 1001;
删除list集合中的某个值
update user set phone =phone - ['0717-8867555'] where id = 1001;
更新map类型字段
直接更新整个字段,进行数据覆盖
update user set education = {'小学':'江陵路1小','初中':'黄元中学'} where id = 1001;
按照key进行更新
update user set education['初中'] = '杭高一中' where id = 1001;
为map追加元素
删除map中的元素
delete education['小学'] from user where id = 1001;
按照key进行更新
update user set education = education - {'高中'} where id = 1001;
4、删除数据行
这个和mysql基本类似
5、批量操作
利用批量操作可以把多次请求合并为一次,减少客户端与服务端的多次IO,对于batch操作来说,针对同一个分区中的key操作,具有隔离性
BEGIN BATCH<insert> / <update> / <delete>APPLY BATCH
比如要实现下面的需求
- 查询id=1001的数据
- 删除所有数据
- 插入一条数据
BEGIN BATCHdelete from user where id=1002;insert into user(id,name,age,gender,address,interest,phone,education) values(1001,'李飞',17,1,'霞飞路13号',{'跑步','羽毛球'},['13321277546','13321277547'],{'小学':'丁庙中小','初中':'黄元中学'});APPLY BATCH;
小结:本篇主要介绍了cassandra增删改查相关操作常用命令,希望对看到的同学有用,本篇到此结束,最后感谢观看!
cassandra常用操作总结相关推荐
- 【数据库】第一章 数据库的分类、SQL、数据库、表和表记录的常用操作
[数据库]第一章 数据库的分类.SQL.数据库与表的常用操作 文章目录 [数据库]第一章 数据库的分类.SQL.数据库与表的常用操作 一.数据库的分类 1.关系型数据库 2.非关系型数据库 3.MyS ...
- TensorFlow常用操作:代码示例
1,定义矩阵代码示例: import tensorflow as tftf.zeros([3,4]) #定义3行4列元素均为0的矩阵tensor=tf.constant([1,2,3,4])#定义一维 ...
- Ubuntu 常用操作
Ubuntu常用操作 外观操作 修改应用icon图标 终端美化 内存管理 内存查询 分区管理 日志清理 操作执行 自动执行多条命令 外观操作 修改应用icon图标 在/usr/share/applic ...
- IOS沙盒Files目录说明和常用操作
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...
- 用Python轻松搞定Excel中的20个常用操作
来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...
- python和R对dataframe的常用操作的差异:head、tail、shape、dim、nrow、ncol、descirbe、summary、str
python和R对dataframe的常用操作的差异:head.tail.shape.dim.nrow.ncol.descirbe.summary.str # python df.head() # R ...
- 【node】Sequelize常用操作、基本增删改查
[node]Sequelize常用操作.基本增删改查 sequelize初始化 先初始化一个数据库实例 再初始化一个model实例 sequelize的数据类型 基本增删改查的写法 SELECT * ...
- JavaScript:对Object对象的一些常用操作总结
JavaScript对Object对象的一些常用操作总结. 一.Object.assign() 1.可以用作对象的复制 var obj = { a: 1 }; var copy = Object.as ...
- ubuntu的学习教程(常用操作)
摘要 最近在学习linux,把自己学习过程中遇到的常用操作以及一些有助于理解的内容记录下来.我主要用的是ubuntu系统 命令提示符 '~' 这个是指用户的家目录,用户分为root用户和普通用户,ro ...
最新文章
- 免安装版 mysql-5.6.29-winx64 下载,配置
- Java 14 发布了,终于可以扔掉Lombok了?
- [剑指offer]面试题48:不能被继承的类
- 数据不平衡问题及解决方案
- 开课吧课堂:详解挂起、恢复和终止线程
- [推荐]WebService开发知识介绍
- 1 月份 Github 上最热门最有价值的开源项目
- ASP.NET 表单认证与角色授权
- 本地数据库环境搭建(PhpStudy)
- 苹果/安桌点歌系统代码
- RTF文件格式研究报告
- 查看电脑硬盘分区格式
- Ubuntu 20.04 创建桌面快捷方式
- python获取图片长宽高,Python获取图片的大小/尺寸
- 实现微信公众号自定义分享功能,分享给朋友,分享到朋友圈,点击链接,获取点击分享者的openid。
- 沉睡者 - 微信内测一个手机可注册2微信号
- uniapp 下载文件却变成了跳转
- java-常量和变量
- Android手机连接笔记本电脑上网 linux环境
- SpaceX载人航天飞船点火升空 送4名宇航员去空间站