Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检索一个非常大的cassandra表并从中删除一些未使用的数据?_Cassandra - Fatal编程技术网

如何检索一个非常大的cassandra表并从中删除一些未使用的数据?

如何检索一个非常大的cassandra表并从中删除一些未使用的数据?,cassandra,Cassandra,我创建了一个有2000万条记录的cassandra表。现在我想删除由一个none主键列决定的过期数据。但它不支持对列的操作。所以我尝试检索表并逐行获取数据以删除数据。不幸的是,它太大而无法检索。否则,我无法删除整个表,如何实现我的目标?您的问题实际上是,如何从表中批量获取数据(也称为分页) 可以通过从主键中选择不同的片来实现这一点:例如,如果主键是某种ID,则每次选择一个ID范围,处理结果并对其执行任何操作,然后获取下一个范围,依此类推 另一种方法是使用fetch_size,这取决于您使用的驱动

我创建了一个有2000万条记录的cassandra表。现在我想删除由一个none主键列决定的过期数据。但它不支持对列的操作。所以我尝试检索表并逐行获取数据以删除数据。不幸的是,它太大而无法检索。否则,我无法删除整个表,如何实现我的目标?

您的问题实际上是,如何从表中批量获取数据(也称为分页)

可以通过从主键中选择不同的片来实现这一点:例如,如果主键是某种ID,则每次选择一个ID范围,处理结果并对其执行任何操作,然后获取下一个范围,依此类推


另一种方法是使用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)。有什么建议吗?参考谢谢,你的回答对我很有帮助。这是我的另一个问题,如果你对此感兴趣的话。