Удаление огромных данных в кластере Cassandra - PullRequest
0 голосов
/ 25 сентября 2018

У меня кластер Кассандра с тремя узлами.У нас есть данные, близкие к 7 ТБ за последние 4 года.Теперь из-за меньшего количества свободного места на сервере мы хотели бы хранить данные только за последние 2 года.Но мы не хотим полностью его удалять (данные старше 2 лет).Мы хотим сохранить конкретные данные, даже если они старше 2 лет.В настоящее время я могу думать об одном подходе: 1) Java-клиент, использующий «объект MutationBatch».Я могу получить все записи ключа, которые попадают в диапазон дат и исключая строки, которые мы не хотим удалять.Затем удаление записей в пакете.Но это решение вызывает озабоченность по поводу производительности, поскольку данные огромны.

Возможно ли справиться с этим на уровне сервера (opscenter).Я читал о TTL, но как я могу применить его к существующим данным, а также ограничить некоторые данные, которые я хочу сохранить, даже если они старше 2 лет.

Пожалуйста, помогите мне найти лучшее решение.

1 Ответ

0 голосов
/ 25 сентября 2018

Главное, что вам нужно понять, это то, что когда вы удаляете данные в Cassandra, вы фактически добавляете их, записывая надгробную плиту, и тогда при сжатии происходит удаление реальных данных.

Итакочень важно правильно выполнить удаление.Существуют различные типы удалений - отдельные ячейки, строки, диапазоны, разделы (от наименее эффективных до наиболее эффективных по количеству созданных надгробий).Лучше всего удалить по разделам, затем второй по диапазонам внутри раздела. В следующей статье подробно описывается, как удаляются данные.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...