2

我试图弄清楚如何使用 Pelops 批量删除 Cassandra DB 中的行。

理想情况下,我可以指定需要删除的行的 KeyRange。这对我的目的来说很好。

然而,我(尽管很简短)的研究让我相信这目前是不可能的。RowDeletor 只接受 rowKey,而不接受 KeyRange。这些发现正确吗?

我应该能够使用我的 List 函数之一的修改版本以编程方式完成它,但是,KeyRange 会更可取。

4

1 回答 1

3

不,我认为您不能使用 Pelops 批量删除行,它RowDeletor不参与批量操作,并且Mutator该类仅对显式命名的列进行删除操作。

如果您查看Pelops 的代码,deleteColumns您会发现它创建了一个删除并将其添加到突变列表中,我认为只需在该列表中添加更多删除将使它们在同一批次中发布。该getMutationList方法是受保护的,所以也许您可以创建一个子类来公开该方法,或者有办法向列表添加更多删除。

看起来你可以用 Hector 来做到这一点,它的Mutator接口具有采用多个行键的方法,例如addDeletion(K key, String cf)and addDeletion(Iterable<K> keys, String cf)。所以 Cassandra 至少应该支持每批删除多行。

于 2012-06-04T21:21:24.223 回答