NSF Back-end Dev Engineer

cassandra

2020-11-26
nsf

cassandra备忘

官方文档见: https://cassandra.apache.org/doc/latest/

1.cassandra操作

1.1 关键字

操作名 操作含义   类别 类别含义
create 创建   keyspace 命名空间
alter 修改(非数据粒度)   table 表(默认不区分大小写,加双引号区分)
drop 删除   primary key 主键
select(json)? 选择   index 索引
truncate 清空   replication 复制策略
batch 批处理   durable_writes 是否使用提交日志来更新此键空间
update 更新   materialized view 视图
insert 插入   cluster 集群
delete 删除(数据)   timestamp 设置操作的时间戳
describe 查看   ttl 为插入的数据设置过期时间
alter filtering 允许过滤      

1.2 数据类型

数据类型 常量 描述
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 表示任何类型UUID
varchar strings 表示uTF8编码的字符串
varint integers 表示任意精度整数

1.3 集合类型

集合 描述
list 列表是一个或多个有序元素的集合。
map 字典是键值对的集合。
set 集合是一个或多个元素的集合。

1.4 批量操作

from cassandra.query import SimpleStatement
query = "SELECT * FROM users"  # users contains 100 rows
statement = SimpleStatement(query, fetch_size=10)
datas = session.execute(statement)
while datas.has_more_pages:
    datas.fetch_next_page()
    print(len(datas.current_rows))

1.5 分页

from cassandra.query import SimpleStatement
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider

auth_provider = PlainTextAuthProvider(username='cassandra', password='cassandra')
db = Cluster(["x.x.x.x"], auth_provider=auth_provider, port='9042')
db_name = 'xxx'
query = "SELECT * FROM xxx"
statement = SimpleStatement(query, fetch_size=10)
a = db.connect(db_name).execute(statement)
for user_row in a.fetch_next_page():
    print(user_row)

上一篇 uwsgi

下一篇 mongodb进阶

Comments

Content