pgpack¶
Библиотека для работы с PGPack форматом - упакованным бинарным форматом PostgreSQL COPY.
Установка модуля pgpack без установки dbhose-airflow¶
pip install pgpack
Назначение:
Эффективное хранение и передача дампов PGCOPY с поддержкой сжатия и метаданных. Формат оптимизирован для архивации, миграции и обмена данными между системами.
Особенности формата PGPack:
Заголовок:
PGPACK\n\x00(8 байт)Контрольная сумма: CRC32 упакованных метаданных (4 байта)
Размер метаданных: Длина сжатых метаданных (4 байта)
Метаданные: Zlib-сжатые метаданные структуры
Метод сжатия: 1 байт (NONE, LZ4, ZSTD)
Размеры данных: Длина сжатых и несжатых данных PGCopy (2×8 байт)
Данные: Упакованный дамп PostgreSQL COPY
Структура метаданных (после распаковки zlib):
list[
list[
column_number: int,
list[
column_name: str,
column_oid: int,
column_lengths: int,
column_scale: int,
column_nested: int,
]
]
]
Поддерживаемые методы сжатия:
CompressionMethod.NONE(0x02) - без сжатияCompressionMethod.LZ4(0x82) - LZ4 сжатиеCompressionMethod.ZSTD(0x90) - ZSTD сжатие (по умолчанию)
Зависимости:
pandas>=2.1.0- для работы с DataFramepolars>=0.20.31- альтернативная обработка данныхpgcopylib- работа с бинарным форматом PostgreSQL COPYlight_compressor- высокоскоростное сжатие LZ4/ZSTD
Использование:
Для долгосрочного хранения дампов PostgreSQL/Greenplum и передачи данных между системами и создания резервных копий с сохранением типов данных и структуры таблиц.
Классы
Внутренние компоненты