Временная шкала БД ручное сжатие дисковое пространство не уменьшено

#timescaledb

Вопрос:

Когда мы выполняем ручное сжатие, вместо уменьшения свободного пространства оно было увеличено.

После сжатия мы также выполнили команду вакуумирования.

введите описание изображения здесь

Снимок экрана после выполнения ответных запросов. скриншот с ответами на запросы

Образец данных образец-данные

Добавлено сжатие с помощью следующих запросов

ИЗМЕНИТЬ НАБОР ТАБЛИЦ данных ТАБЛИЦЫ (timescaledb.compress,timescaledb.compress_segmentby = ‘insert_time_stamp’);

ВЫБЕРИТЕ compress_chunk(i) ИЗ show_chunks(«таблица данных», older_than => ИНТЕРВАЛ «10 дней») i;

Комментарии:

1. Можете ли вы поделиться несколькими образцами строк ваших данных?

Ответ №1:

Вы проверили, сколько кусков вы сжали?

 select total_chunks, number_compressed_chunks, pg_size_pretty(before_compression_total_bytes), pg_size_pretty(after_compression_total_bytes) from hypertable_compression_stats('pages');
┌──────────────┬──────────────────────────┬────────────────┬────────────────┐
│ total_chunks │ number_compressed_chunks │ pg_size_pretty │ pg_size_pretty │
├──────────────┼──────────────────────────┼────────────────┼────────────────┤
│          107 │                       19 │ 1883 MB        │ 543 MB         │
└──────────────┴──────────────────────────┴────────────────┴────────────────┘
(1 row)
 

Вы также можете проверить отдельные фрагменты:

 select  pg_size_pretty(sum(before_compression_total_bytes)),
   pg_size_pretty(sum(after_compression_total_bytes))
from chunk_compression_stats('pages') 
where compression_status = 'Compressed';
┌────────────────┬────────────────┐
│ pg_size_pretty │ pg_size_pretty │
├────────────────┼────────────────┤
│ 1883 MB        │ 543 MB         │
└────────────────┴────────────────┘
(1 row)
 

Комментарии:

1. Спасибо вам за ваш ответ. Я проверил, это 2 куска. Но, дисковое пространство не уменьшилось. Снова добавил скриншот в вопрос.

2. Спасибо, что поделились образцами данных и скриншотами. Я думаю, вам, возможно, придется использовать что-то получше timescaledb.compress,timescaledb.compress_segmentby . Вы можете видеть, что используете столбец с меткой времени, и он, вероятно, создает фрагменты, которые не подходят для группировки. Попробуйте использовать столбец с большей мощностью. Как какая-то категория или что-то, что повторяется по строкам и может быть использовано в дальнейшем в качестве своего рода индекса в ваших запросах. Если у вас есть данные, изменяющиеся каждую секунду, и вы сегментируете их, это приведет к большему количеству метаданных из сегментов, чем сами данные.