Какие есть варианты сжатия для хранения большого количества текста в Postgres?

9

Мне нужно хранить большие объемы текста в Postgres, в основном журналы команд и вывод длительных команд, и мне нужно знать, есть ли какие-то настройки, которые могут помочь прозрачно сжать данные с помощью такого инструмента, как zlib, или некоторых других собственных методов экономии места. ,

Данные в основном предназначены только для чтения, поэтому запись не является проблемой.

vfclists
источник
3
из руководства : « Длинные строки сжимаются системой автоматически », и вот более подробное описание: postgresql.org/docs/current/static/storage-toast.html
a_horse_with_no_name
3
Мы используем алгоритм сжатия с довольно низким коэффициентом, потому что он должен иметь низкую стоимость процессора. Таким образом, все еще может быть целесообразно сделать другую форму сжатия и установки EXTERNALхранилища для столбца.
Крейг Рингер
@CraigRinger Когда вы говорите о другой форме сжатия, вы имеете в виду установку некоторых дополнительных опций Postgres или компиляцию какого-то дополнительного модуля, будь то готовая библиотека или ваша собственная?
vfclists

Ответы:

3

По умолчанию Postgres автоматически сжимает все текст. Он использует простой алгоритм lzcompress:

https://www.postgresql.org/docs/9.3/storage-toast.html

Существует плагин, который, вероятно, будет развиваться до поддержки сжатия LEX4 для TEXT:

https://github.com/zilder/pg_lz4

Существует FDW, который также поддерживает сжатие:

https://www.citusdata.com/blog/2014/04/03/columnar-store-for-analytics/

kworr
источник