Java Pelops и Cassandra NoSQL DB: Могу ли я пакетно удалить строки?
Я пытаюсь выяснить, как пакетно удалить строки в Cassandra DB с помощью Pelops.
В идеале я мог бы указать KeyRange строк, которые должны быть удалены. Это будет хорошо работать для моих целей.
Тем не менее, мое (хотя и краткое) исследование приводит меня к мысли, что в настоящее время это невозможно. RowDeletor принимает только rowKey, а не KeyRange. Верны ли эти выводы?
Я должен быть в состоянии сделать это программно, используя модифицированную версию одной из моих функций List, но, опять же, KeyRange будет предпочтительнее.
1 ответ
Нет, я не думаю, что вы можете пакетно удалить строки с помощью Pelops, его RowDeletor
не участвует в партиях, а Mutator
В классе есть только операции удаления для столбцов с явно именованными именами.
Если вы посмотрите на код для ПелопсаdeleteColumns
Вы можете видеть, что он создает удаление и добавляет его в список мутаций, я думаю, что просто добавление большего количества удалений в этот список приведет к тому, что они будут выпущены в одном пакете. getMutationList
Метод защищен, поэтому, возможно, вы можете создать подкласс, который либо предоставляет этот метод, либо имеет способ добавить больше удалений в список.
Похоже, вы можете сделать это с Гектором, его Mutator
Интерфейс имеет методы, которые принимают несколько строк строк, например, addDeletion(K key, String cf)
а также addDeletion(Iterable<K> keys, String cf)
, Так что Cassandra должна как минимум поддерживать удаление нескольких строк в пакете.