Выражение 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)

Другие вопросы по тегам