Об этом проекте
PeerDB — это инструмент ETL/ELT, ориентированный на перемещение данных в PostgreSQL и из него. Он поддерживает несколько режимов потоковой передачи: журнальный CDC (рекомендуемый и активно поддерживаемый), репликацию на основе курсора с использованием временных меток или целых чисел и репликацию на основе XMIN. Типы Query Replication (QRep) и XMIN mirror помечены как устаревшие, но остаются работоспособными.
В число источников, указанных как активно поддерживаемые, входят Postgres, MySQL, MongoDB, CockroachDB и BigQuery. Активно поддерживаемые назначения — ClickHouse, ClickHouse Cloud и Postgres. Несколько коннекторов назначения (S3, Snowflake, BigQuery, ElasticSearch, Kafka, Redpanda, Confluent, Azure Event Hubs, Google Pub/Sub) устарели, но всё ещё работают; BigQuery остаётся поддерживаемым в качестве источника.
Отличительная особенность — SQL-интерфейс, совместимый с Postgres, для ETL, позволяющий пользователям управлять репликацией с помощью привычных клиентских инструментов (psql, pgAdmin), BI-инструментов, инструментов миграции/версионирования и существующих планировщиков, таких как Airflow. Проект делает акцент на оптимизациях, родных для Postgres: параллельная начальная загрузка, обработка столбцов TOAST, богатое сопоставление типов данных, включая jsonb, массивы и геопространственные типы, а также поддержка изменений схемы. Также описаны механизмы отказоустойчивости, такие как управление состоянием, автоматические повторные попытки и обработка идемпотентности, а также настраиваемые пакетная обработка и параллелизм для предотвращения сбоев из-за нехватки памяти.
Начало работы выполняется через shell-скрипт, который поднимает контейнеры Docker для Postgres в качестве каталога, Temporal, сервера PeerDB, flow API и воркеров, а также UI PeerDB. Локальный путь разработки собирает образы локально и требует компилятора buf для генерации protobuf. В README отмечено, что когда ClickHouse работает вне Docker, доступ к промежуточному хранилищу MinIO должен быть настроен через AWS_ENDPOINT_URL_S3 и правила сети/групп безопасности.
Сквозное тестирование поддерживается локально через Docker Compose, оркестрируемый Tilt, с лаунчерами тестов для Postgres, MySQL (варианты GTID и file-position), MariaDB и MongoDB в ClickHouse. Хранилища данных используют ручную инициализацию для экономии ресурсов, а именованные тома обеспечивают персистентность с опцией очистки в UI Tilt. PeerDB также предлагается нативно в ClickHouse Cloud. Проект лицензирован под AGPLv3 (бейдж в README ссылается на Elv2, тогда как раздел лицензии указывает AGPLv3).
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.