#singlestore
#хранилище данных
Вопрос:
Я планирую использовать memsql для хранения моих данных за последние 7 дней для аналитики в реальном времени с использованием SQL.
Я проверил документацию и обнаружил, что в MemSQL нет такой функции TTL / истечения срока действия
- Есть ли такая функция (на случай, если я ее пропустил)?
- Подходит ли memsql для использования, если я ежедневно удаляю данные за > 7 дней? Мне очень любопытно узнать о фрагментации
Мы попробовали это на postgresql, и нам нужно выполнить команду Vacuum, для запуска требуется много времени.
Ответ №1:
Отсутствует функция TTL / истечения срока действия. Вы можете сделать это, запустив запросы на удаление. Многие варианты использования клиентами делают подобные вещи, так что да, MemSQL действительно подходит для использования. Фрагментация, как правило, не должна быть здесь слишком большой проблемой — о какой фрагментации вы беспокоитесь?
Ответ №2:
В MemSQL нет готовой функции TTL.
Мы достигли TTL, добавив дополнительный столбец TS в нашу таблицу MemSQL Rowstore с типом данных TIMESTAMP(6).
Это обеспечивает автоматическую вставку текущей временной метки при добавлении новой строки в таблицу.
При запросе данных из этой таблицы вы можете применить простой фильтр на основе этого столбца временных МЕТОК, чтобы отфильтровать старые записи за пределами вашего значения TTL.
https://docs.memsql.com/sql-reference/v6.7/datatypes/#time-and-date
У вас всегда может быть пакетное задание, которое может выполняться один раз в месяц, которое может удалять старые данные.
мы не видели никаких проблем из-за фрагментации, но вы можете время от времени делать следующее, если фрагментация вас беспокоит:
Распределители памяти MemSQL могут со временем фрагментироваться (особенно если большая таблица резко сокращается из-за случайного удаления данных). В настоящее время нет доступной команды, которая бы их уплотняла, но запуск ALTER TABLE ADD INDEX, за которым следует ALTER TABLE DROP INDEX, сделает это.
Предупреждение При этом обходе следует соблюдать осторожность. Планы будут перестроены, и два запроса ALTER дважды переместят все ходы в таблице, поэтому это не следует использовать так часто.
Ссылка:https://docs.memsql.com/troubleshooting/latest/troubleshooting /