一、安装
1、下载:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/cassandra/3.11.4/apache-cassandra-3.11.4-bin.tar.gz
2、解压
tar -xvf apache-cassandra-3.11.4-bin.tar.gz
3、修改配置
vim conf/cassandra.yaml
指定服务的地址和端口号
listen_address: 192.168.0.1
native_transport_port: 9042
远程连接如thrift服务,配置端口:
rpc_port: 9160
4.以root 启动
./cassandra -R //用root用户启动
5、关闭防火墙
systemctl stop firewalld.service
二、使用
1、创建 数据库
create keyspace alarm
with replication={'class':'SimpleStrategy', 'replication_factor':2 }
and durable_writes=true
class:SimpleStrategy(简单策略,一个数据中心) NetworkTopologyStrategy(网络拓扑策略,多个数据中心)
replication_factor:副本数
durable_writes:是否持久写入,默认为true
2、创建表table
包括表的查看、创建和删除、字段的增加和修改、索引的创建和删除。
例子: 创建学生表
CREATE TABLE alarm.stu (
stu_id int PRIMARY KEY,
stu_age int,
stu_name text,
school map,
cource_set set,
teacher_list list
);
#删除指定table
drop table alarm.stu
#修改table 增加字段
alter table alarm.stu add stu_age_1 text
#修改table 删除字段
alter table alarm.stu drop stu_age_1
#创建索引
create index stu_name_idx on alarm.stu(stu_name)
#删除索引
drop index alarm.stu_name_idx
3、数据操作
包括数据的增删改查,详情查看注释,如下:
#插入数据
insert into alarm.stu(stu_id, stu_age, stu_name) values(2, 18,'张工');
#更新数据
update alarm.stu set stu_name='李四' where stu_id=1;
#查看数据
select * from alarm.stu;
#删除列的值
delete stu_age from alarm.stu where stu_id=1;
#删除一行数据
delete from alarm.stu where stu_id=1;
#清空表数据
truncate alarm.stu;
4、数据类型
cassandra的数据类型
cassandra数据类型除了基本类型外,还添加了集合类型,如list、set、map。
下面列出常用的类型(第一列为cassandra中的类似,第二列为相应描述,第三列为java中的类型),
################## 常用字段类型 ##########################
int 32位整数 int
bigint 64整数 long
float 32位浮点数 flaot
counter 计数器,支持原子性增减,不能直接赋值 long
double 64位浮点数 double
boolean 布尔 boolean
decimal 高精度小数 BigDecimal
list 列表 List
set 集合 Set
map 键值对 map
text utf8编码的字符串 String
varchar 与text一样
timestamp 日期 Date
4、导入导出数据
stu_file="tmp/stu_file.csv"
//下载数据到指定csv文件
copy alarm.stu(stu_id, stu_age, stu_name) to '${stu_file}';
//下载数据到指定csv文件 参数: pagesize=单个页面的行数,默认1000 encoding=字符编码,默认utf8 maxoutputsize=单个文件最大行数, 默认-1,不限制
copy alarm.stu(stu_id, stu_age, stu_name) to '${stu_file}' with maxoutputsize=2;
//上传数据到表中 参数: maxrows=导入最大行数 skiprows=跳过初始行数 skipcols=要忽略的列名,以逗号分隔
copy alarm.stu(stu_id, stu_age, stu_name) from '${stu_file}' with maxrows=5;