إصدارات Postgres المدعومة
يدعم ClickPipes الإصدار 12 من Postgres وما بعده.
تمكين النسخ المتماثل المنطقي
-
لتمكين النسخ المتماثل على مثيل Postgres لديك، نحتاج إلى التأكد من ضبط الإعدادات التالية:
wal_level = logicalللتحقق من ذلك، يمكنك تشغيل أمر SQL التالي:
SHOW wal_level;يجب أن تكون القيمة الناتجة
logicalافتراضيًا. وإذا لم تكن كذلك، فيُرجى تسجيل الدخول إلى Console الخاصة بـ PlanetScale والانتقال إلىCluster configuration->Parametersثم التمرير لأسفل إلىWrite-ahead logلتغييرها.

- بالإضافة إلى ذلك، يُوصى بزيادة الإعداد
max_slot_wal_keep_sizeمن قيمته الافتراضية البالغة 4GB. ويتم ذلك أيضًا عبر Console الخاصة بـ PlanetScale بالانتقال إلىCluster configuration->Parametersثم التمرير لأسفل إلىWrite-ahead log. للمساعدة في تحديد القيمة الجديدة، يُرجى الاطلاع هنا.

إنشاء مستخدم مع أذونات وpublication
اتصل بمثيل PlanetScale Postgres الخاص بك باستخدام المستخدم الافتراضي postgres.<...>، ثم شغّل الأوامر التالية:
-
أنشئ مستخدمًا مخصصًا لـ ClickPipes:
CREATE USER clickpipes_user PASSWORD 'some-password'; -
امنح المستخدم الذي أنشأته في الخطوة السابقة حق الوصول للقراءة فقط على مستوى الـ schema. يوضّح المثال التالي الأذونات الخاصة بـ schema
public. كرر هذه الأوامر لكل schema يحتوي على جداول تريد تكرارها:GRANT USAGE ON SCHEMA "public" TO clickpipes_user; GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; -
امنح المستخدم امتيازات النسخ المتماثل:
ALTER USER clickpipes_user WITH REPLICATION; -
أنشئ publication يتضمن الجداول التي تريد تكرارها. نوصي بشدة بقصر الـ publication على الجداول التي تحتاجها فقط لتجنّب أي حمل إضافي على الأداء.
-
لإنشاء publication لجداول محددة:
CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;-
لإنشاء publication لكل الجداول ضمن schema محدد:
CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
-
يحدّد الـ publication باسم clickpipes مجموعة الجداول التي سيتم بث أحداث التغيير الخاصة بها إلى ClickPipes. نوصي بعدم استخدام FOR ALL TABLES إلا إذا كنت تنوي تكرار كل الجداول، لأن تضمين جداول غير ضرورية يزيد من حركة WAL من Postgres إلى ClickPipes ويقلّل الكفاءة الإجمالية للنسخ المتماثل.
محاذير
- للاتصال بـ PlanetScale Postgres، يجب إلحاق الفرع الحالي باسم المستخدم الذي أُنشئ أعلاه. على سبيل المثال، إذا كان اسم المستخدم الذي أنشأته هو
clickpipes_user، فيجب أن يكون اسم المستخدم الفعلي المُستخدَم أثناء إنشاء ClickPipe هوclickpipes_user.branch، حيث يشيرbranchإلى "id" الخاص بـ الفرع الحالي في PlanetScale Postgres. ولمعرفة ذلك بسرعة، يمكنك الرجوع إلى اسم المستخدم الخاص بالمستخدمpostgresالذي استخدمته سابقًا لإنشاء هذا المستخدم؛ فالجزء الذي يلي النقطة هو معرّف الفرع. - لا تستخدم منفذ
PSBouncer(حاليًا6432) لأنابيب CDC التي تتصل بـ PlanetScale Postgres؛ إذ يجب استخدام المنفذ العادي5432. ويمكن استخدام أيٍّ من المنفذين للأنابيب المخصّصة للتحميل الأولي فقط. - يُرجى التأكد من أنك تتصل فقط بـ المثيل الأساسي، إذ إن الاتصال بالمثيلات المتماثلة غير مدعوم حاليًا.
ما الخطوة التالية؟
يمكنك الآن إنشاء ClickPipe الخاص بك وبدء إدخال البيانات من مثيل Postgres الخاص بك إلى ClickHouse Cloud. احرص على تدوين تفاصيل الاتصال التي استخدمتها أثناء إعداد مثيل Postgres الخاص بك، إذ ستحتاج إليها خلال عملية إنشاء ClickPipe.