程序员

Cassandra基础(2)—— Cassandra使用及其数据

2018-12-25  本文已影响51人  黄宝玲_1003

Cassandra基础(1)—— Casasndra集群搭建
Cassandra基础(2)—— Casasndra使用及其数据类型

本文参考Cassandra教程,重点梳理使用Cassandra的一些常用过程,一些细节请自行参看文档。

登陆

登陆Casandra有2种方式:(下面涉及到一些上一章集群搭建提到的知识)

// 1、在本地终端安装单节点的Cassandra,即有了一个可以使用cqlsh指令的客户端。运行指令:
cqlsh 192.168.8.110 -u casandra -p cassandra  //默认用户是Cassandra,如果自己设置了超级用户就把用户名和密码改成相应的即可。

// 2、如果是运行的docker容器,也可以直接进入容器内部,然后输入命令cqlsh,再回车。就进入了Cassandra。

键空间操作

keyspace相当于mysql中的datastore。

// 第一次使用需要创建键空间
CREATE KEYSPACE mydatastore WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3};  //策略和复制因子是用于数据恢复了,感兴趣可以去了解,一般使用简单策略,复制因子数为节点数

// 键空间建好后就可以直接进入了
use mydatastore;  //注意Cassandra指令都是以分号;结尾

// 其他的操作也和mysql指令类似
// 修改键空间
ALTER KEYSPACE “KeySpace Name” WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of  replicas’};
// 删除键空间
DROP KEYSPACE “KeySpace name”;

表操作

// 创建表
CREATE TABLE data (
    device_id text,
    create_time timestamp,
    id uuid,
    data_name text, 
    data_type text,
    data_value_bool Boolean,
    data_value_bytes blob, 
    data_value_double double,
    data_value_int int,
    datat_value_string text,
    PRIMARY KEY (device_id, create_time, id)
) WITH CLUSTERING ORDER BY (create_time DESC);
// 修改表
ALTER TABLE table data ADD  new column datatype;
ALTER table data DROP column data_type;
// 删除表
DROP TABLE data;

Cassandra创建表有几个需要注意的点:主键、数据类型、排序。

主键

主键(由分区键和集群键组成):唯一标识一条记录。
分区键:分区键的哈希值决定该条数据落在哪片物理分区上。
集群键:用于对分区中的记录进行排序,默认升序。

上述例子中:

PRIMARY KEY (device_id, create_time, id)   // device_id是分区键,(create_time, id)是集群键。 

//分区键也可以有多个:
PRIMARY KEY((k_part_one,k_part_two), k_clust_one, k_clust_two, k_clust_three)  // 第一部分(k_part_one,k_part_two)是分区键,k_clust_one, k_clust_two, k_clust_three是集群键。

数据类型

下表是Casandra的数据类型:

数据类型 常量 描述
ascii strings 表示ASCII字符串
bigint bigint 表示64位有符号长
blob blobs 表示任意字节
Boolean booleans 表示true或false
counter integers 表示计数器列
decimal integers, floats 表示变量精度十进制
double integers 表示64位IEEE-754浮点
float integers, floats 表示32位IEEE-754浮点
inet strings 表示一个IP地址,IPv4或IPv6
int integers 表示32位有符号整数
text strings 表示UTF8编码的字符串
timestamp integers, strings 表示时间戳
timeuuid uuids 表示类型1 UUID
uuid uuids 表示类型1或类型4
UUID
varchar strings 表示uTF8编码的字符串
varint integers 表示任意精度整数

排序

最后一句 WITH CLUSTERING ORDER BY (create_time DESC); 决定了分区的升降序,升序是ASC,降序是DESC。

上一篇下一篇

猜你喜欢

热点阅读