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 должна как минимум поддерживать удаление нескольких строк в пакете.

Другие вопросы по тегам