如何检索一个非常大的cassandra表并从中删除一些未使用的数据?
我创建了一个有2000万条记录的cassandra表。现在我想删除由一个none主键列决定的过期数据。但它不支持对列的操作。所以我尝试检索表并逐行获取数据以删除数据。不幸的是,它太大而无法检索。否则,我无法删除整个表,如何实现我的目标?您的问题实际上是,如何从表中批量获取数据(也称为分页) 可以通过从主键中选择不同的片来实现这一点:例如,如果主键是某种ID,则每次选择一个ID范围,处理结果并对其执行任何操作,然后获取下一个范围,依此类推如何检索一个非常大的cassandra表并从中删除一些未使用的数据?,cassandra,Cassandra,我创建了一个有2000万条记录的cassandra表。现在我想删除由一个none主键列决定的过期数据。但它不支持对列的操作。所以我尝试检索表并逐行获取数据以删除数据。不幸的是,它太大而无法检索。否则,我无法删除整个表,如何实现我的目标?您的问题实际上是,如何从表中批量获取数据(也称为分页) 可以通过从主键中选择不同的片来实现这一点:例如,如果主键是某种ID,则每次选择一个ID范围,处理结果并对其执行任何操作,然后获取下一个范围,依此类推 另一种方法是使用fetch_size,这取决于您使用的驱动
另一种方法是使用fetch_size,这取决于您使用的驱动程序。您可以看到一个Python示例和一个Java示例。谢谢您的帮助。但这对我真的不起作用。我的桌子有些复杂。主键是(a,b,c,d),a是varchar,b是Long,c是varchar,d是Long。现在我可以使用如下查询语言在cqlsh中对其进行分页:从usertoken中选择*FROM,其中token(a)>=token('avalue'),(b,c,d)>=(bvalue,'cvalue',dvalue)LIMIT 1000允许过滤;值avalue、b值、c值、d值代表上一页的最后一条记录。但当我在spring data cassandra中使用它时,它每页只返回100条记录。发生了什么?似乎spring支持分页,这可以解释这一点。有关spring数据的cassandra分页类,请参见。可能我的引用误导了我。现在我已经通过cassandra驱动程序直接获得了数据,但问题是如何将上面描述的行转换为我的java类(字符串a、长b、字符串c、长d)。有什么建议吗?参考谢谢,你的回答对我很有帮助。这是我的另一个问题,如果你对此感兴趣的话。