Выражение drop_chunks TimescaleDB не отбрасывает точные синхронизированные куски
Я использую TimescaleDB и хочу избавиться от старых данных.
В целях тестирования я заполняю пустой Hyptertable некоторыми другими данными.
Я выполнил следующее утверждение с данными за 2 часа, с данными за 10 часов и с данными за 15 часов:
select drop_chunks(interval '1 hours', 'my_table')
Только данные за 15 часов удаляются. Читая https://docs.timescale.com/v1.1/api, я бы предположил, что все данные должны быть отброшены.
2 ответа
drop_chunks только удаляет полные куски. если ваш chunk_time_interval установлен примерно на 12 часов, timescaledb будет сбрасывать только полные 12-часовые блоки.
Позвольте мне прояснить комментарий Дианы: каждый кусок определяется ограничительной рамкой; на время, вы можете думать о них как start_time
а также end_time
, Если вы укажете что-то вроде:
select drop_chunks(interval '1 hours', 'my_table')
Это говорит, чтобы отбросить все куски которых end_time
более 1 часа назад. Итак, я думаю, из вашего приведенного выше примера, что ваши 15-часовые данные были в одном чанке, а ваши 2- и 10-часовые данные были в другом чанке с end_time > now() - 1 hour
,
Чтобы увидеть временные рамки ваших кусков и другую информацию:
SELECT * FROM chunk_relation_size_pretty('my_table');
(При рассмотрении я вижу, где документы немного неясны; я обновил инструкции: https://github.com/timescale/docs.timescale.com-content/pull/86)