检索Cassandra行计数更快



我们已经将我们的cassandra集群设置为aws ec2实例中的3个节点。每个实例都属于t2类型。大型

我们需要从卡桑德拉桌子上得到行数。

我们在卡桑德拉的一张桌子上放了90万张唱片。这张表中大约有91列。大多数记录都是文本数据类型。所有这些900k条记录都是单个分区密钥的一部分。

当我们尝试使用该分区键执行select count(*(查询时,查询超时。

然而,我们能够通过多次调用检索计数,每次调用仅获取10万条记录。这里唯一的缺点是所花费的时间约为1分3秒。

有没有其他方法可以让卡桑德拉的排数更快?我们是否需要改变数据建模方法来实现这一点?

Hades Architect是正确的。您肯定需要重新思考您的数据模型。

有了Cassandra,更多的分区有助于更好的数据分发。另一方面,大的分区会显著降低磁盘读取过程的速度。随着分区的增长,它最终将变得不可用。

在cassandra中还有其他方法可以更快地获得行数吗?

是。DSBulk工具具有内置机制,可以处理集群的分区范围,并可以读取/计数所有行。

dsbulk count 
-k keyspacename 
-t tablename 
-u username 
-p password 
-h 10.0.0.2

最新更新