Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

دليل إعداد PlanetScale for Postgres كمصدر

إصدارات Postgres المدعومة

يدعم ClickPipes الإصدار 12 من Postgres وما بعده.

تمكين النسخ المتماثل المنطقي

  1. لتمكين النسخ المتماثل على مثيل Postgres لديك، نحتاج إلى التأكد من ضبط الإعدادات التالية:

    wal_level = logical

    للتحقق من ذلك، يمكنك تشغيل أمر SQL التالي:

    SHOW wal_level;

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

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

إنشاء مستخدم مع أذونات وpublication

اتصل بمثيل PlanetScale Postgres الخاص بك باستخدام المستخدم الافتراضي postgres.<...>، ثم شغّل الأوامر التالية:

  1. أنشئ مستخدمًا مخصصًا لـ ClickPipes:

    CREATE USER clickpipes_user PASSWORD 'some-password';
  2. امنح المستخدم الذي أنشأته في الخطوة السابقة حق الوصول للقراءة فقط على مستوى الـ 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;
  3. امنح المستخدم امتيازات النسخ المتماثل:

    ALTER USER clickpipes_user WITH REPLICATION;
  4. أنشئ 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 ويقلّل الكفاءة الإجمالية للنسخ المتماثل.

محاذير

  1. للاتصال بـ PlanetScale Postgres، يجب إلحاق الفرع الحالي باسم المستخدم الذي أُنشئ أعلاه. على سبيل المثال، إذا كان اسم المستخدم الذي أنشأته هو clickpipes_user، فيجب أن يكون اسم المستخدم الفعلي المُستخدَم أثناء إنشاء ClickPipe هو clickpipes_user.branch، حيث يشير branch إلى "id" الخاص بـ الفرع الحالي في PlanetScale Postgres. ولمعرفة ذلك بسرعة، يمكنك الرجوع إلى اسم المستخدم الخاص بالمستخدم postgres الذي استخدمته سابقًا لإنشاء هذا المستخدم؛ فالجزء الذي يلي النقطة هو معرّف الفرع.
  2. لا تستخدم منفذ PSBouncer (حاليًا 6432) لأنابيب CDC التي تتصل بـ PlanetScale Postgres؛ إذ يجب استخدام المنفذ العادي 5432. ويمكن استخدام أيٍّ من المنفذين للأنابيب المخصّصة للتحميل الأولي فقط.
  3. يُرجى التأكد من أنك تتصل فقط بـ المثيل الأساسي، إذ إن الاتصال بالمثيلات المتماثلة غير مدعوم حاليًا.

ما الخطوة التالية؟

يمكنك الآن إنشاء ClickPipe الخاص بك وبدء إدخال البيانات من مثيل Postgres الخاص بك إلى ClickHouse Cloud. احرص على تدوين تفاصيل الاتصال التي استخدمتها أثناء إعداد مثيل Postgres الخاص بك، إذ ستحتاج إليها خلال عملية إنشاء ClickPipe.

Navigation