Cassandra Время ожидания при выполнении запроса для массового удаления - PullRequest
0 голосов
/ 09 октября 2019

У меня кластер Кассандра с тремя узлами. Я хочу выполнить задачу очистки определенной таблицы, которая содержит около 1 ТБ данных в каждом узле.

Table Structure

Таблица состоит из нескольких строк подписчика с date_created(отметка времени), я хочу очистить все строки подписчика, для которых последняя запись (date_created) старше 7 дней.

Например - в примере, прикрепленном выше данных, мы должны удалить все строки подписчика 2, тогда как все строкиабонента 2 будет сохранен, если выполняется 2019-12-10.

У нас около 10 М абонента. Чтобы получить общее количество записей, выберите количество (*), которое выбрасывает запрос ниже исключения

ReadTimeout: ошибка сервера: code = 1200 [Время ожидания для узла-координатора ожидания ответов узлов реплики] message = "Время ожидания операции - получено только 0 ответов."info = {'receive_responses': 0, 'required_responses': 1, 'консистентность': 'ONE'}

Какой подход я должен использовать для чтения Cassandra, так как это не может быть выполнено в памяти как огромноеданные 3 ТБ.

1 Ответ

0 голосов
/ 09 октября 2019

Ваш запрос подсчета выполняет полное сканирование таблицы. Вот почему это время ожидания. Вам необходимо удалить свои данные, используя ключи разделов / кластеризации.

...