عن المشروع
PeerDB هي أداة ETL/ELT تركز على نقل البيانات من وإلى PostgreSQL. تدعم عدة أوضاع للبث: نسخ CDC القائم على السجلات (موصى به ويتم صيانته بنشاط)، والنسخ القائم على المؤشر باستخدام الطوابع الزمنية أو الأعداد الصحيحة، والنسخ القائم على XMIN. أنواع النسخ Query Replication (QRep) وXMIN معلمة كأنها قديمة لكنها تظل وظيفية.
المصادر المدرجة كأنها قيد الصيانة النشطة تشمل 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 والمصفوفات والأنواع الجغرافية المكانية، ودعم تغييرات المخطط. كما يصف آليات تحمل الأخطاء مثل إدارة الحالة وإعادة المحاولة التلقائية ومعالجة التماثل، بالإضافة إلى تجميع وتوازي قابلين للتكوين لتجنب فشل نفاد الذاكرة.
البدء يتم عبر سكربت شل يقوم بتشغيل حاويات Docker لـ Postgres ككتالوج وTemporal وخادم PeerDB وواجهة برمجة التدفق والعمال وواجهة مستخدم PeerDB. مسار التطوير المحلي يبني الصور محليًا ويتطلب مترجم buf لتوليد protobuf. تشير README إلى أنه عند تشغيل ClickHouse خارج Docker، يجب تكوين الوصول إلى MinIO للتخزين المؤقت عبر AWS_ENDPOINT_URL_S3 وقواعد الشبكة/مجموعات الأمان.
الاختبار الشامل مدعوم محليًا عبر Docker Compose المنسق بـ Tilt، مع مشغلات اختبار لـ Postgres وMySQL (متغيرات GTID وموضع الملف) وMariaDB وMongoDB إلى ClickHouse. تستخدم مخازن البيانات تهيئة يدوية للحفاظ على الموارد، وتوفر وحدات التخزين المسماة استمرارية مع خيار تنظيف في واجهة 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.