PGPackWriter¶
- PGPackWriter(
- fileobj,
- metadata=None,
- compression_method=CompressionMethod.ZSTD,
- )
- Параметры:
fileobj (BufferedWriter) – Файловый объект для записи
metadata (bytes | None) – Метаданные в байтах (опционально)
compression_method (CompressionMethod) – Метод сжатия данных
Основной класс для записи файлов формата PGPack.
Описание:
Осуществляет полный цикл создания PGPack файлов: генерацию метаданных, сжатие данных, формирование заголовка и запись в файл. Поддерживает различные источники данных и методы сжатия.
Атрибуты:
- metadata: bytes | None¶
Метаданные в JSON формате (генерируются автоматически или предоставляются).
- columns: list[str]¶
Список имен колонок (извлекается из метаданных).
- compression_method: CompressionMethod¶
Используемый метод сжатия данных.
- pgcopy_data_length: int¶
Размер несжатых данных (-1 до записи).
- pgcopy_compressed_length: int¶
Размер сжатых данных (0 до записи).
Методы:
- from_rows(dtype_values)¶
- Параметры:
dtype_values (Iterable[Any]) – Итерируемый объект с данными
- Результат:
Строковое представление созданного файла
- Тип результата:
str
Запись данных из Python итерируемого объекта.
- from_pandas(data_frame)¶
- Параметры:
data_frame (pandas.DataFrame) – DataFrame pandas
- Результат:
Строковое представление созданного файла
- Тип результата:
str
Запись данных из pandas DataFrame (метаданные генерируются автоматически).
- from_polars(data_frame)¶
- Параметры:
data_frame (polars.DataFrame) – DataFrame polars
- Результат:
Строковое представление созданного файла
- Тип результата:
str
Запись данных из polars DataFrame (метаданные генерируются автоматически).
- from_bytes(bytes_data)¶
- Параметры:
bytes_data (Iterable[bytes]) – Итерируемый объект с байтовыми данными PGCopy
- Результат:
Строковое представление созданного файла
- Тип результата:
str
Запись готовых байтовых данных PGCopy.
- tell()¶
- Результат:
Текущая позиция записи
- Тип результата:
int
Получение позиции в файле.
- close()¶
Закрытие файлового объекта и освобождение ресурсов.
Процесс записи:
Генерация/проверка метаданных
Сжатие метаданных zlib
Запись заголовка и метаданных
Сжатие данных выбранным методом (LZ4/ZSTD/NONE)
Запись данных
Обновление размеров в заголовке
Особенности:
Автоматическая генерация метаданных для pandas/polars DataFrame
Поддержка потоковой записи больших объемов данных
Корректное обновление размеров данных после записи
Оптимизация памяти при сжатии
Использование:
Для создания архивов данных в формате PGPack.