يدعم ClickHouse Managed Postgres إنشاء فروع معزولة لقواعد البيانات باستخدام الاستعادة إلى نقطة زمنية محددة (PITR).
الفرع هو عملية نشر PostgreSQL مستقلة بالكامل، تُنشأ من نقطة زمنية محددة لقاعدة بيانات موجودة. ويمكن استخدام الفروع في التطوير ومرحلي والاختبار وتصحيح الأخطاء والتحقق من صحة البيانات أو في سيناريوهات الاستعادة، من دون التأثير في قاعدة البيانات المصدر.
وعلى عكس تطبيقات النسخ عند الكتابة (copy-on-write) التي تشارك التخزين مع قاعدة البيانات الأساسية، تُستعاد فروع ClickHouse Managed Postgres من النسخ الاحتياطية وتعمل كعمليات نشر PostgreSQL مستقلة.
يعتمد إنشاء الفرع على البنية التحتية نفسها للنسخ الاحتياطي والاستعادة المستخدمة في الاستعادة إلى نقطة زمنية محددة (PITR).
عند إنشاء فرع، تستعيد ClickHouse Managed Postgres نسخة احتياطية أساسية من تخزين الكائنات، ثم تعيد تشغيل مقاطع WAL المطلوبة للوصول إلى نقطة الاستعادة المطلوبة، وتوفّر مثيل PostgreSQL جديدًا انطلاقًا من الحالة المستعادة. وبمجرد اكتمال الاستعادة، يعمل الفرع بشكل مستقل عن قاعدة البيانات المصدر.
ويكون الفرع الناتج نسخة كاملة من قاعدة البيانات المصدر عند النقطة الزمنية المحددة.
أنشئ فرعًا من قاعدة بيانات الإنتاج أو من قاعدة بيانات مرحلية للتحقق من تغييرات التطبيق والترحيلات أو اختبار الميزات الجديدة على بيانات واقعية.
حافظ على بيئة مرحلية تحاكي بيئة الإنتاج الفعلية عن كثب، من دون التأثير في أعباء العمل الإنتاجية.
اختبر تغييرات المخطط، واستراتيجيات الفهرسة، وتحسين الاستعلامات قبل نشرها في بيئة الإنتاج.
استعد قاعدة بيانات إلى نقطة زمنية محددة لأغراض استكشاف الأخطاء وإصلاحها، أو التدقيق، أو التحقق من سلوك التطبيق.
الفروع هي عمليات نشر مستقلة لـ PostgreSQL، ويمكن تحديد حجمها بشكل منفصل عن قاعدة البيانات المصدر.
على سبيل المثال، قد تعمل بيئة الإنتاج بإعدادات أكبر، بينما يمكن لفرع التطوير أو الفرع المرحلي استخدام ملف تعريف حوسبة أصغر لتقليل التكاليف. ويتيح ذلك للفرق إنشاء بيئات مؤقتة من دون الحاجة إلى مماثلة موارد الحوسبة المستخدمة في بيئة الإنتاج.
نظرًا لأن ClickHouse Managed Postgres يستخدم تخزين PostgreSQL المعتمد على NVMe، تُستعاد الفروع من النسخ الاحتياطية بدلًا من إنشائها عبر آليات النسخ عند الكتابة على مستوى التخزين. لذلك، فإن إنشاء الفروع ليس فوريًا.
تتراوح المدة المعتادة لإنشاء الفروع من بضع دقائق إلى عشرات الدقائق، وذلك حسب:
- حجم قاعدة البيانات
- حجم النسخة الاحتياطية
- نقطة الاستعادة
- مقدار WAL الذي يجب إعادة تطبيقه
- التكوين العام للعنقود
في معظم عمليات النشر، تصبح الفروع متاحة خلال بضع دقائق. وقد تتطلب قواعد البيانات الأكبر وقتًا إضافيًا.
إذا أصبح وقت إنشاء الفروع يمثل عنق زجاجة في سير عملك، فتواصل مع فريق ClickHouse. ففي كثير من الحالات، يمكن تحسين أداء استعادة الفروع بناءً على خصائص أعباء العمل ومتطلبات الاستعادة.
الفروع مقابل التطوير المحلي
من الأسئلة الشائعة ما إذا كان ينبغي لكل مطوّر استخدام فرع إنتاجي بوصفه بيئة التطوير الخاصة به.
مع أن الفروع مفيدة لسير عمل الاختبار والتحقق والإعداد المرحلي، فإنها ليست عمومًا النهج الموصى به للتطوير اليومي للتطبيقات. فكل فرع عبارة عن عملية نشر PostgreSQL منفصلة يجب استعادتها من النسخ الاحتياطية وصيانتها بشكل مستقل. وقد يؤدي إنشاء أعداد كبيرة من الفروع إلى زيادة تكاليف البنية التحتية والتعقيد التشغيلي.
بالنسبة إلى معظم المؤسسات، نوصي بما يلي:
- استخدام فروع PostgreSQL لسير عمل الإعداد المرحلي والاختبار واستكشاف الأخطاء وإصلاحها والتحقق.
- استخدام بيئات PostgreSQL المحلية للتطوير اليومي.
- إنشاء مجموعات بيانات تطوير اصطناعية أو استخدام مجموعات بيانات منقّحة عند الاقتضاء.
- تجنّب إجراء التطوير اليومي مباشرةً على الفروع المشتقة من بيئة الإنتاج.
يقلّل هذا النهج العبء على أنظمة الإنتاج، ويحسّن وتيرة التطوير، ويساعد على ضمان بقاء بيانات الإنتاج محمية على النحو المناسب.
للحصول على إرشادات حول إنشاء بيئات تطوير PostgreSQL محلية باستخدام Docker، راجع بيئات التطوير المحلية.
يكون سير العمل الشائع عادةً كما يلي:
تُعد الفروع الأنسب للبيئات التي تحتاج إلى نسخة من قاعدة بيانات تحاكي بيئة الإنتاج. أما لأغراض التطوير الروتيني، فعادةً ما توفّر بيئات PostgreSQL المحلية سير عمل أسرع وأقل تكلفة وأكثر قابلية للتوسع. آخر تعديل في ١٤ أغسطس ٢٠٢٦