MemSQL для данных за последние n дней

Я планирую использовать memsql для хранения данных за последние 7 дней для аналитики в реальном времени с использованием SQL.

Я проверил документацию и обнаружил, что в MemSQL нет такой функции TTL / истечения срока действия.

  • Есть ли такая функция (если я пропустил)?
  • Подходит ли memsql для случая использования, если я ежедневно удаляю данные > 7 дней? Меня очень интересует фрагментация

Мы попробовали это на postgresql, и нам нужно выполнить команду Vacuum, она выполняется долго.


person rendybjunior    schedule 20.10.2016    source источник


Ответы (2)


Нет функции TTL/expiration. Вы можете сделать это, запустив запросы на удаление. Многие варианты использования клиентов делают такие вещи, так что да, MemSQL подходит для этого варианта использования. Фрагментация, как правило, не должна быть большой проблемой — какая именно фрагментация вас беспокоит?

person Jack Chen    schedule 20.10.2016

В MemSQL нет встроенной функции TTL.

Мы достигли TTL, добавив дополнительный столбец TS в нашу таблицу MemSQL Rowstore с типом данных TIMESTAMP(6).

Это обеспечивает автоматическую вставку текущей метки времени при добавлении новой строки в таблицу.

При запросе данных из этой таблицы вы можете применить простой фильтр, основанный на этом столбце TIMESTAMP, чтобы отфильтровать более старые записи за пределами вашего значения 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/

person Dean Jain    schedule 30.11.2018