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)