الانتقال إلى المحتوى الرئيسي

لماذا نستخدم ClickHouse بدلًا من Postgres؟

باختصار: لأن ClickHouse مُصمَّم للتحليلات السريعة، وخصوصًا استعلامات GROUP BY، بصفته قاعدة بيانات OLAP، بينما Postgres قاعدة بيانات OLTP مُصمَّمة لأحمال العمل المعاملاتية. تُصمَّم قواعد بيانات OLTP، أو قواعد بيانات المعالجة المعاملاتية عبر الإنترنت، لإدارة المعلومات المعاملاتية. ويتمثل الهدف الأساسي لهذه القواعد، ويُعد Postgres مثالها الكلاسيكي، في ضمان أن يتمكن المهندس من إرسال دفعة من التحديثات إلى قاعدة البيانات مع التأكد من أنها — بالكامل — ستنجح أو ستفشل. وتُعد هذه الضمانات المعاملاتية ذات خصائص ACID محور التركيز الرئيسي لقواعد بيانات OLTP، وهي أيضًا من أبرز نقاط قوة Postgres. ونظرًا لهذه المتطلبات، تصل قواعد بيانات OLTP عادةً إلى حدودها من حيث الأداء عند استخدامها لتنفيذ استعلامات تحليلية على مجموعات بيانات كبيرة. أما قواعد بيانات OLAP، أو قواعد بيانات المعالجة التحليلية عبر الإنترنت، فهي مُصمَّمة لتلبية هذه الاحتياجات — أي إدارة أعباء العمل التحليلية. ويتمثل الهدف الأساسي لهذه القواعد في تمكين المهندسين من الاستعلام بكفاءة وإجراء عمليات التجميع على مجموعات بيانات ضخمة. وتتيح أنظمة OLAP الآنية مثل ClickHouse إجراء هذا التحليل بالتزامن مع إدخال البيانات في الوقت الفعلي. راجع هنا للحصول على مقارنة أكثر تفصيلًا بين ClickHouse وPostgreSQL. وللاطلاع على فروق الأداء المحتملة بين ClickHouse وPostgres في الاستعلامات التحليلية، راجع Rewriting PostgreSQL Queries in ClickHouse.

استراتيجيات الترحيل

عند الترحيل من PostgreSQL إلى ClickHouse، تعتمد الاستراتيجية المناسبة على حالة الاستخدام والبنية التحتية ومتطلبات البيانات. وبوجه عام، يُعدّ التقاط تغييرات البيانات (CDC) في الوقت الفعلي أفضل نهج لمعظم حالات الاستخدام الحديثة، بينما يكون التحميل المجمّع اليدوي متبوعًا بتحديثات دورية مناسبًا للسيناريوهات الأبسط أو لعمليات الترحيل لمرة واحدة. يستعرض القسم أدناه الاستراتيجيتين الرئيسيتين للترحيل: CDC في الوقت الفعلي والتحميل المجمّع اليدوي + التحديثات الدورية.

النسخ المتماثل في الوقت الفعلي (CDC)

يُعد التقاط تغييرات البيانات (Change Data Capture)‏ (CDC) العملية التي تُبقي الجداول متزامنة بين قاعدتي بيانات. وهو النهج الأكثر كفاءة لمعظم عمليات الترحيل من PostgreSQL، لكنه أكثر تعقيدًا أيضًا لأنه يتعامل مع عمليات الإدراج والتحديث والحذف من PostgreSQL إلى ClickHouse في شبه الوقت الفعلي. وهو مثالي لحالات الاستخدام التي تكون فيها التحليلات في الوقت الفعلي مهمة. يمكن تنفيذ التقاط تغييرات البيانات (Change Data Capture)‏ (CDC) في الوقت الفعلي في ClickHouse باستخدام ClickPipes إذا كنت تستخدم ClickHouse Cloud، أو PeerDB إذا كنت تشغّل ClickHouse محليًا. تتولى هذه الحلول تعقيدات مزامنة البيانات في الوقت الفعلي، بما في ذلك التحميل الأولي، من خلال التقاط عمليات الإدراج والتحديث والحذف من PostgreSQL ونسخها متماثلًا إلى ClickHouse. يضمن هذا النهج أن تظل البيانات في ClickHouse حديثة ودقيقة دائمًا من دون الحاجة إلى تدخل يدوي.

التحميل المجمّع اليدوي + التحديثات الدورية

في بعض الحالات، قد يكون نهج أكثر بساطة، مثل التحميل المجمّع اليدوي متبوعًا بتحديثات دورية، كافيًا. تُعد هذه الاستراتيجية مثالية لعمليات الترحيل لمرة واحدة أو للحالات التي لا تكون فيها الحاجة إلى النسخ المتماثل في الوقت الفعلي قائمة. وهي تتضمن تحميل البيانات من PostgreSQL إلى ClickHouse بشكل مجمّع، إما عبر أوامر SQL INSERT مباشرة أو من خلال تصدير ملفات CSV واستيرادها. بعد الترحيل الأولي، يمكنك تحديث البيانات في ClickHouse بشكل دوري عبر مزامنة التغييرات من PostgreSQL على فترات منتظمة. تمتاز عملية التحميل المجمّع بالبساطة والمرونة، لكن من عيوبها عدم توفر تحديثات في الوقت الفعلي. فبمجرد تحميل البيانات الأولية إلى ClickHouse، لن تنعكس التحديثات فورًا، لذا يجب جدولة تحديثات دورية لمزامنة التغييرات من PostgreSQL. ينجح هذا النهج مع حالات الاستخدام الأقل حساسية للوقت، لكنه يضيف تأخيرًا بين وقت تغيّر البيانات في PostgreSQL ووقت ظهور هذه التغييرات في ClickHouse.

أي استراتيجية ينبغي اختيارها؟

بالنسبة إلى معظم التطبيقات التي تتطلب بيانات حديثة ومحدَّثة باستمرار في ClickHouse، يُعدّ CDC في الوقت الفعلي عبر ClickPipes النهج الموصى به. فهو يوفّر مزامنة مستمرة للبيانات مع الحد الأدنى من الإعداد والصيانة. في المقابل، يُعدّ التحميل المجمّع اليدوي مع تحديثات دورية خيارًا مناسبًا لعمليات الترحيل الأبسط لمرة واحدة أو لأعباء العمل التي لا تكون فيها التحديثات في الوقت الفعلي ضرورية.
ابدأ دليل ترحيل PostgreSQL من هنا.
آخر تعديل في ٢٥ يونيو ٢٠٢٦