Выражение drop_chunks TimescaleDB не отбрасывает точные синхронизированные куски - PullRequest
0 голосов
/ 18 января 2019

Я использую TimescaleDB и хочу избавиться от старых данных.

В целях тестирования я заполняю пустой Hyptertable некоторыми другими данными.

Я выполнил следующий оператор сДанные за 2 часа, данные за 10 часов и данные за 15 часов:

select drop_chunks(interval '1 hours', 'my_table')

Удаляются только данные за 15 часов.Читая https://docs.timescale.com/v1.1/api#drop_chunks, я бы предположил, что все данные должны быть отброшены.

Ответы [ 2 ]

0 голосов
/ 19 января 2019

Позвольте мне уточнить комментарий Дианы: каждый кусок определяется ограничительной рамкой; на время вы можете думать о них как 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)

0 голосов
/ 19 января 2019

drop_chunks только удаляет полные куски. если ваш chunk_time_interval установлен примерно на 12 часов, timescaledb будет сбрасывать только полные 12-часовые блоки.

...