我正在尝试弄清楚如何使用Pelops在Cassandra DB中批量删除行。
理想情况下,我可以指定需要删除的行的KeyRange。对于我的目的来说,这将很好地工作。
然而,我(尽管简短)的研究让我相信这目前是不可能的。RowDeletor只接受rowKey,而不接受KeyRange。这些发现是正确的吗?
我应该能够使用我的一个列表函数的修改版本以编程方式完成这项工作,但是,同样,KeyRange会更好。
发布于 2012-06-05 05:21:24
不,我不认为您可以使用Mutator批量删除行,它的RowDeletor不参与批处理,并且Pelops类只对显式命名的列执行删除操作。
如果你看一下code for Pelops' deleteColumns,你会看到它创建了一个删除,并将其添加到突变列表中,我认为只需在该列表中添加更多的删除,就会使它们在同一批中发布。getMutationList方法是受保护的,所以也许您可以创建一个子类,它要么公开该方法,要么可以向列表中添加更多删除项。
看起来你可以用赫克托来做这件事,它的Mutator接口有接受多个行键的方法,例如addDeletion(K key, String cf)和addDeletion(Iterable<K> keys, String cf)。所以Cassandra至少应该支持每批删除多行。
https://stackoverflow.com/questions/10885475
复制相似问题