Я пытаюсь использовать адаптивное чанкинг с timescaleDb 1.0.0. Но это не работает, как ожидалось.
- Я создаю гипертаблицу с
chunk_target_size => 'estimate'
.
- Когда я проверяю chunk_target_size, это ~ 120 миллионов - что кажется разумным
- Теперь я запускаю тестовую программу, которая зациклится на 5 тыс. Раз и вставит 1 тыс. Строк на транзакцию (всего всего 5 млн. Строк).
- Когда я проверяю размеры чанков, я вижу чанки размером ~ 3,5 КБ, которые имеют размер всего 152 КБ (первый - 88 ББ)!
Чего мне не хватает?
операторы SQL
1-Создать гипертаблицу
SELECT create_hypertable('mytable', 'time', chunk_target_size => 'estimate';
2-Проверьте chunk_target_size
select table_name, chunk_target_size from _timescaledb_catalog.hypertable;
3-Проверьте размеры кусков
SELECT distinct total_size FROM chunk_relation_size_pretty('mytable');
Дополнительная информация
Фиксированный размер куска :
Когда я установлю chunk_target_size в 100 МБ, chunk_target_size будет ~ 104 миллиона. Но после вставки данных макс. chunk_relation_size также будет только 152 КБ
chunk_time_interval
Когда я устанавливаю chunk_time_interval вместо chunk_target_size, я получаю больше chunk_relation_sizes.
Обновление (2.11.2018)
Я использовал PGTune для улучшения конфигурации базы данных. shared_buffers
был только 128 МБ - теперь это 1280 МБ.
С этим изменением chunk_target_size
увеличилось примерно до 1,2 миллиарда, но сгенерированные куски все еще имеют размер всего 152 КБ.