DumpType¶
- class DumpType¶
Перечисление типов дампов для сериализации данных.
Назначение:
Определяет форматы сериализации/десериализации данных при передаче между СУБД. Каждый тип использует свои реализации ридеров и врайтеров для обработки нативных бинарных форматов разных СУБД.
Атрибуты DumpClass
Каждый элемент перечисления содержит следующие атрибуты:
- name: str¶
Человеко-читаемое имя формата дампа.
- reader: object¶
Класс для чтения (десериализации) данных из бинарного формата. Реализует интерфейс чтения для конкретного формата.
- writer: object¶
Класс для записи (сериализации) данных в бинарный формат. Реализует интерфейс записи для конкретного формата.
- have_compress: bool¶
Trueесли формат поддерживает встроенное сжатие данных. Сжатие уменьшает объем передаваемых данных по сети.
Элементы перечисления
- NATIVE = DumpClass("native", NativeReader, NativeWriter, False)¶
Нативный формат ClickHouse. Оптимизирован для быстрой передачи данных между экземплярами ClickHouse.
Характеристики:
📝 Имя: «native»
📖 Reader:
NativeReader📝 Writer:
NativeWriter📦 Сжатие: ❌ Не поддерживается
Использование: Бинарный формат ClickHouse.
- PGCOPY = DumpClass("pgcopy", PGCopyReader, PGCopyWriter, False)¶
Формат PostgreSQL COPY. Стандартный бинарный формат PostgreSQL для массового копирования данных.
Характеристики:
📝 Имя: «pgcopy»
📖 Reader:
PGCopyReader📝 Writer:
PGCopyWriter📦 Сжатие: ❌ Не поддерживается
Использование: Бинарный формат PostgreSQL и Greenplum.
Примечание: Совместим со стандартной утилитой
COPYPostgreSQL.
- PGPACK = DumpClass("pgpack", PGPackReader, PGPackWriter, True)¶
Контейнер для дампа PostgreSQL с поддержкой сжатия.
Характеристики:
📝 Имя: «pgpack»
📖 Reader:
PGPackReader📝 Writer:
PGPackWriter📦 Сжатие: ✅ Поддерживается
Использование: Для эффективной передачи и хранения дампов PostgreSQL и Greenplum.
Пример использования:
from dbhose_airflow import DumpType
# Выбор формата по умолчанию
dump_type = DumpType.PGPACK
# Получение информации о формате
print(dump_type.name) # "pgpack"
print(dump_type.have_compress) # True
print(dump_type.reader) # <class 'PGPackReader'>
print(dump_type.writer) # <class 'PGPackWriter'>
# Итерация по всем типам
for dump_format in DumpType:
print(f"{dump_format.name}: compression={dump_format.have_compress}")
# Получение по имени
pgcopy = DumpType["PGCOPY"]
См. также
NativeReader- Ридер для формата NativePGCopyReader- Ридер для формата PGCopyPGPackReader- Ридер для формата PGPack