我正在尝试弄清楚如何使用Pelops批量删除Cassandra数据库中的行。
理想情况下,我可以指定需要删除的行的KeyRange。这对我的目的来说很好。
然而,我的(尽管是简短的)研究让我相信目前还不可能。 RowDeletor只接受rowKey,而不是KeyRange。这些发现是否正确?
我应该可以使用我的一个List函数的修改版本以编程方式执行它,但同样,KeyRange会更好。
答案 0 :(得分:3)
不,我认为您不能使用Pelops批量删除行,其RowDeletor
不参与批处理,Mutator
类仅对明确命名的列具有删除操作。
如果您查看code for Pelops' deleteColumns
,您可以看到它创建了一个删除并将其添加到突变列表中,我认为只是在该列表中添加更多删除将使它们在同一个版本中发布批量。 getMutationList
方法受到保护,因此您可以创建一个子类来公开该方法,或者有一种方法可以向列表中添加更多删除。
看起来您可以使用Hector执行此操作,其Mutator
接口具有采用多行键的方法,例如: addDeletion(K key, String cf)
和addDeletion(Iterable<K> keys, String cf)
。所以Cassandra至少应该支持每批删除多行。