pgcopylib¶
Библиотека для чтения данных из бинарного формата PostgreSQL (PG COPY), написанная на Cython.
Установка модуля pgcopylib без установки dbhose-airflow¶
pip install pgcopylib
Назначение:
Парсинг выходного формата команды COPY table TO STDOUT WITH (FORMAT binary) без зависимостей от внешних библиотек PostgreSQL.
Оптимизирована для миграции и ETL процессов.
Особенности:
Чистая Cython реализация без системных зависимостей
Автоматическое определение типов данных PostgreSQL
Поддержка большинства встроенных типов данных
Чтение как отдельных значений, так и массивов (типы с префиксом _)
Возможность чтения сырых байтов без преобразования типов
Поддерживаемые типы данных PostgreSQL/Greenplum:
Числовые: int2-8, float4/8, numeric, serial, money
Строковые: text, varchar, bpchar, xml
Бинарные: bytea, bit, varbit
Временные: date, time, timestamp, timestamptz, interval
Специальные: bool, uuid, json/jsonb, oid
Сетевые: inet, cidr, macaddr
Геометрические: point, line, box, circle, path, polygon, lseg
Неподдерживаемые типы (на данный момент):
tsquery
tsvector
Типы данных PostgreSQL/Greenplum ↔ Python в виде таблицы:
Тип PostgreSQL/Greenplum |
Чтение |
Запись |
Тип Python (Чтение/Запись) |
|---|---|---|---|
Массивы (с префиксом _) |
|||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
Скалярные типы |
|||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
*Префикс _ обозначает массивы соответствующих типов
**Для типа interval требуется установленный dateutil
Зависимости:
Отсутствуют
Производительность:
Использует эффективное columnar представление данных, избегая преобразования столбцов в строки. Подходит для быстрой генерации дампов и обмена между серверами PostgreSQL/Greenplum.
Классы
Внутренние компоненты