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