我正在尝试使用以下 CQL3 语句将列族更新 50k 次:
update column_family
set value_1 = ?,
value_2 = ?,
value_3 = ?,
value_4 = ?
where partition_key = ?
and column_key = ?;
这里要说明的重要一点是 partition_key 对于所有 50k 记录都是相同的。
我要么向 cassandra 发送此查询 50k 次,要么使用 BATCH ... APPLY BATCH 一次批量处理 5000 个;无论哪种方式,都需要大约 10 分钟,而没有网络延迟可言。我知道内部结构是一排宽的。这就是它慢的原因吗?
我的内部结构也正确吗?如果 CF 创建 CQL 如下所示:
create table column_family (
partition_key varchar,
column_key uuid,
value_1 int,
value_2 timestamp,
value_3 double,
value_4 double,
PRIMARY KEY(partition_key , column_key)
);
然后我的内部 CF 将 partition_key 作为分区键,列键将是 column_key(0)#value_1, column_key(0)#value_2, column_key(0)#value_3, column_key(0)#value_4, coulmn_key(1)#值_1 .......