Как удалить строки на основе индексированного столбца в cassandra

Текущий подход, который я использую для удаления строк на основе индексированного столбца

  1. Выберите запрос с ограничением 100.
  2. Если есть строки Удалите все выбранные строки одну за другой.
  3. Сбросьте диспетчер сущностей.
  4. Перейти к шагу 1.

Использование cassandra 2.1.8 и kundera-cassandra-ds-driver для выборки строк из cassandra.

Есть ли способ запустить запрос на удаление от Кундеры.


person Prabhath    schedule 13.01.2016    source источник


Ответы (1)


Вы можете сделать следующее:

Query findQuery = entityManager.createQuery("Delete from PersonCassandra p where p.age = 10",
            PersonCassandra.class);
findQuery.setMaxResults(5000);
findQuery.executeUpdate();

PS: Cassandra не позволяет удалять строки на основе непервичных ключей, Kundera обрабатывает это внутри так же, как и вы.

person karthik manchala    schedule 13.01.2016
comment
В конечном итоге запрос удаляет только 5000 строк?? - person Prabhath; 13.01.2016
comment
@Prabhath Да .. если вы не укажете ограничение, по умолчанию будет удалено 100 строк. - person karthik manchala; 13.01.2016