common

Общие утилиты для преобразования метаданных между форматами.

Назначение:

Преобразование метаданных между различными форматами данных (Native, PGCopy, PGPack) для обеспечения совместимости в рамках ETL процессов.

Особенности:

  • Написан на Cython для максимальной производительности

  • Поддерживает взаимное преобразование метаданных между форматами

  • Обеспечивает консистентность типов данных при конвертации

  • Помогает восстановлению данных из поврежденных файлов

pgoid_from_metadata

pgoid_from_metadata(metadata)
Параметры:

metadata (bytes) – Метаданные PGPack в байтах

Результат:

Список OID типов PostgreSQL

Тип результата:

list[PGOid]

Извлечение списка OID типов PostgreSQL из метаданных PGPack формата.

Использование:

Для подготовки метаданных при конвертации PGPack → PGCopy.

columns_from_metadata

columns_from_metadata(metadata, is_nullable=True)
Параметры:
  • metadata (bytes) – Метаданные PGPack в байтах

  • is_nullable (bool) – Флаг поддержки NULL значений

Результат:

Список объектов Column для Native формата

Тип результата:

list[Column]

Преобразование метаданных PGPack в структуру колонок Native формата ClickHouse.

Использование:

Для конвертации метаданных при загрузке данных из PostgreSQL в ClickHouse.

metadata_from_columns

metadata_from_columns(column_list)
Параметры:

column_list (list[Column]) – Список колонок Native формата

Результат:

Метаданные в формате PGPack

Тип результата:

bytes

Генерация метаданных PGPack из структуры колонок Native формата.

Использование:

Для сохранения метаданных при экспорте данных из ClickHouse.

recover_rows

recover_rows(reader)
Параметры:

reader (NativeReader | PGCopyReader | PGPackReader) – Объект читателя (NativeReader, PGCopyReader, PGPackReader)

Результат:

Генератор восстановленных строк

Тип результата:

Generator[Any, None, None]

Попытка восстановления данных из частично поврежденного файла.

Особенности:

  • Пропускает поврежденные блоки данных

  • Пытается извлечь максимально возможное количество данных

  • Логирует ошибки чтения для последующего анализа

  • Возвращает только корректно прочитанные строки

Использование:

Для операций восстановления при повреждении файлов дампов.