يوفّر هذا الدليل إرشادات خطوة بخطوة لترحيل قاعدة بيانات PostgreSQL الخاصة بك إلى ClickHouse Managed Postgres باستخدام ميزة النسخ المتماثل المنطقي المدمجة في Postgres.
Betaالمتطلبات الأساسية
- إمكانية الوصول إلى قاعدة بيانات PostgreSQL المصدر.
- تثبيت
psql,pg_dumpوpg_restoreعلى جهازك المحلي. يُستخدم ذلك لإنشاء جداول فارغة في قاعدة البيانات الهدف. وعادةً ما تكون هذه الأدوات مضمنة مع تثيتات PostgreSQL. وإذا لم تكن كذلك، يمكنك تنزيلها من الموقع الرسمي لـ PostgreSQL. - يجب أن تكون قاعدة البيانات المصدر قابلة للوصول من ClickHouse Managed Postgres. تأكد من أن أي قواعد مطلوبة في جدار الحماية أو إعدادات مجموعة الأمان تسمح بهذا الاتصال. ويمكنك الحصول على عنوان IP الصادر لمثيل ClickHouse Managed Postgres الخاص بك بتنفيذ ما يلي:
dig +short <your-managed-postgres-hostname>الإعداد
لكي يعمل النسخ المتماثل المنطقي، نحتاج إلى التأكد من أن قاعدة البيانات المصدر مُعدّة بشكل صحيح. وفيما يلي المتطلبات الأساسية:
- يجب ضبط
wal_levelعلىlogicalفي قاعدة البيانات المصدر. - يجب ضبط
max_replication_slotsفي قاعدة البيانات المصدر على قيمة لا تقل عن1. - بالنسبة إلى RDS (الذي يستخدمه هذا الدليل كمثال)، عليك التأكد من أن مجموعة المعلمات لديك تتضمن
rds.logical_replicationمضبوطًا على1. - يجب أن يمتلك مستخدم قاعدة البيانات المصدر امتياز
REPLICATION. وفي حالة RDS، شغّل:GRANT rds_replication TO <your-username>; - يجب أن يمتلك الدور الذي تستخدمه لقاعدة البيانات الهدف امتيازات الكتابة على كائنات قاعدة البيانات الهدف:
GRANT USAGE ON SCHEMA <schema_i> TO subscriber_user; GRANT CREATE ON DATABASE destination_db TO subscriber_user; GRANT pg_create_subscription TO subscriber_user; -- منح أذونات الجدول GRANT INSERT, UPDATE, DELETE, TRUNCATE ON ALL TABLES IN SCHEMA <schema_i> TO subscriber_user;
تأكد من أن قاعدة البيانات المصدر لديك مُعدّة على هذا النحو:

تفريغ يقتصر على المخطط لقاعدة البيانات المصدر
قبل إعداد النسخ المتماثل المنطقي، نحتاج إلى إنشاء المخطط في قاعدة بيانات ClickHouse Managed Postgres المستهدفة. ويمكننا القيام بذلك بإنشاء تفريغ يقتصر على المخطط من قاعدة البيانات المصدر باستخدام pg_dump:
pg_dump \
-d 'postgresql://<user>:<password>@<host>:<port>/<database>' \
-s \
--format directory \
-f rds-dumpهنا:
- استبدل
<user>و<password>و<host>و<port>و<database>ببيانات اعتماد قاعدة البيانات المصدر. - يحدد
-sأننا نريد تفريغًا للمخطط فقط. - يحدد
--format directoryأننا نريد التفريغ بتنسيق الدليل، وهو تنسيق مناسب لـpg_restore. - يحدد
-f rds-dumpدليل الإخراج لملفات التفريغ. لاحظ أن هذا الدليل سيُنشأ تلقائيًا، ويجب ألا يكون موجودًا مسبقًا.
في حالتنا، لدينا جدولان: events وusers. يحتوي events على مليون صف، ويحتوي users على ألف صف.

أنشئ مثيل ClickHouse Managed Postgres
أولًا، تأكد من إعداد مثيل ClickHouse Managed Postgres، ويُفضَّل أن يكون في المنطقة نفسها التي يوجد فيها المصدر. يمكنك اتباع الدليل السريع هنا. إليك ما سنُنشئه في هذا الدليل:

استعادة المخطط إلى ClickHouse Managed Postgres
الآن بعد أن أصبح لدينا تفريغ المخطط، يمكننا استعادته إلى مثيل ClickHouse Managed Postgres باستخدام pg_restore:
pg_restore \
-d 'postgresql://<user>:<password>@<host>:<port>/<database>' \
--verbose \
rds-dumpهنا:
- استبدل
<user>و<password>و<host>و<port>و<database>ببيانات اعتماد قاعدة بيانات ClickHouse Managed Postgres المستهدفة. - يوفّر
--verboseمخرجات تفصيلية أثناء عملية الاستعادة. سينشئ هذا الأمر جميع الجداول والفهارس وطرق العرض وكائنات المخطط الأخرى في قاعدة البيانات المستهدفة من دون أي بيانات.
في حالتنا، بعد تشغيل هذا الأمر، أصبح لدينا جدولان، وكلاهما فارغ:

إعداد النسخ المتماثل المنطقي
بعد إعداد المخطط، يمكننا الآن تهيئة النسخ المتماثل المنطقي من قاعدة البيانات المصدر إلى قاعدة بيانات ClickHouse Managed Postgres الهدف. ويتضمن ذلك إنشاء publication على قاعدة البيانات المصدر وsubscription على قاعدة البيانات الهدف.
أنشئ منشورًا على قاعدة البيانات المصدر
اتصل بقاعدة بيانات PostgreSQL المصدر وأنشئ منشورًا يضم الجداول التي تريد نسخها متماثلًا.
CREATE PUBLICATION <pub_name> FOR TABLE table1, table2...;أنشئ اشتراك على قاعدة بيانات ClickHouse Managed Postgres المستهدفة
بعد ذلك، اتصل بقاعدة بيانات ClickHouse Managed Postgres المستهدفة وأنشئ اشتراك يتصل بالـ منشور على قاعدة البيانات المصدر.
CREATE SUBSCRIPTION demo_rds_subscription
CONNECTION 'postgresql://<user>:<password>@<host>:<port>/<database>'
PUBLICATION <pub_name_you_entered_above>;سيؤدي هذا تلقائيًا إلى إنشاء فتحة النسخ المتماثل على قاعدة البيانات المصدر وبدء نسخ البيانات من الجداول المحددة إلى قاعدة البيانات الهدف. وقد تستغرق هذه العملية بعض الوقت، بحسب حجم بياناتك.
في حالتنا، بعد إعداد الاشتراك، بدأت البيانات بالتدفق:

ستُنسخ الآن الصفوف الجديدة التي يتم إدراجها في قاعدة البيانات المصدر إلى قاعدة بيانات ClickHouse Managed Postgres الهدف بشكل شبه آني.
التحذيرات والاعتبارات
- لا ينسخ النسخ المتماثل المنطقي سوى تغييرات البيانات (INSERT, UPDATE, DELETE). أما تغييرات المخطط (مثل ALTER TABLE)، فيجب التعامل معها بشكل منفصل.
- تأكد من استقرار اتصال الشبكة بين قاعدة البيانات المصدر وقاعدة البيانات الهدف لتجنّب انقطاع النسخ المتماثل.
- راقب تأخر النسخ المتماثل للتأكد من أن قاعدة البيانات الهدف تواكب قاعدة البيانات المصدر. ويمكن أن يساعد ضبط قيمة مناسبة لـ
max_slot_wal_keep_sizeفي قاعدة البيانات المصدر على إدارة فتحة النسخ المتماثل المتنامية ومنعها من استهلاك مساحة كبيرة جدًا على القرص. - بحسب حالة الاستخدام لديك، قد ترغب في إعداد المراقبة والتنبيهات لعملية النسخ المتماثل.
الخطوات التالية
تهانينا! لقد أكملت بنجاح ترحيل قاعدة بيانات PostgreSQL الخاصة بك إلى ClickHouse Managed Postgres باستخدام pg_dump وpg_restore. وأصبحت الآن جاهزًا لاستكشاف ميزات ClickHouse Managed Postgres وتكامله مع ClickHouse. إليك دليل بدء سريع مدته 10 دقائق لتبدأ به: