Как установить TTL на Cassandra sstable - PullRequest
0 голосов
/ 04 марта 2019

Мы используем Cassandra 3.10 с кластером из 6 узлов.

В последнее время мы заметили, что объем наших данных резко увеличивается, примерно на 4 ГБ в день на каждом узле.Мы хотим реализовать более агрессивную политику хранения, в которой мы изменим сжатие на TWCS с размером окна 1 час и установим TTL на несколько дней, этого можно достичь с помощью свойств таблицы.

Поскольку ETL долженЭто будет медленный процесс, чтобы облегчить рабочую нагрузку Cassandra, возможно, он не завершит извлечение всех данных до TTL, поэтому я хотел знать, есть ли способ для процесса ETL установить TTL = 0 для всего SSTable, как только он завершит извлечениеэто?

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Вы должны установить TTL 0 на уровне таблицы и запроса.По истечении времени TTL данные будут преобразованы в надгробия.На основании значения gc_grace_seconds следующее уплотнение очистит все надгробия.Вы также можете запустить основное уплотнение, чтобы очистить надгробия, но это не рекомендуется в Кассандре, основываясь на стратегии уплотнения.если для выполнения работоспособного сжатия требуется STCS не менее 50% диска.

0 голосов
/ 04 марта 2019

TTL = 0 читается как надгробная плита.При следующем уплотнении будет написано надгробие или очищено в зависимости от вашего gc_grace.Кроме затрат на выполнение записи надгробного камня, может быть проще просто удалить или создать sstables, которые содержат необходимые надгробные камни, чем переписать все существующие sstables.Если будет более эффективно использовать надгробия для диапазона или точки, будет зависеть от вашей версии и схемы.

Опция, которая может быть проще всего, - это фактически использовать другую стратегию уплотнения все вместе или пользовательскую, такую ​​как * 1004.* Затем вы можете просто очистить данные от уплотнений, которые были обработаны.Это все еще в значительной степени зависит от вашей схемы от того, насколько трудно будет пометить, что было обработано или нет.

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