هذا دليل يوضح كيفية إعداد Supabase Postgres لاستخدامه مع ClickPipes.
إنشاء مستخدم مع أذونات وفتحة نسخ متماثل
اتصل بمثيل Supabase الخاص بك كمستخدم Admin ونفّذ الأوامر التالية:
-
أنشئ مستخدمًا مخصصًا لـ ClickPipes:
CREATE USER clickpipes_user PASSWORD 'some-password'; -
امنح المستخدم الذي أنشأته في الخطوة السابقة صلاحية وصول للقراءة فقط على مستوى المخطط. يوضّح المثال التالي الأذونات الخاصة بالمخطط
public. كرّر هذه الأوامر لكل مخطط يحتوي على الجداول التي تريد نسخها متماثلًا: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 لجميع الجداول ضمن مخطط محدد:
CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
-
يحدّد clickpipes publication مجموعة الجداول التي سيتم بث أحداث التغيير الخاصة بها إلى ClickPipes. نوصي بعدم استخدام FOR ALL TABLES إلا إذا كنت تنوي نسخ كل جدول متماثلًا، لأن تضمين جداول غير ضرورية يزيد من حركة WAL من Postgres إلى ClickPipes ويقلّل الكفاءة الإجمالية للنسخ المتماثل.
زِد قيمة max_slot_wal_keep_size
تفاصيل الاتصال التي يجب استخدامها مع Supabase
انتقل إلى Project Settings -> Database في مشروع Supabase الخاص بك (ضمن Configuration).
مهم: عطّل Display connection pooler في هذه الصفحة، ثم انتقل إلى قسم Connection parameters ودوّن/انسخ المعلمات.

ملاحظة حول RLS
يجب ألا يكون مستخدم ClickPipes في Postgres خاضعًا لقيود سياسات RLS، لأن ذلك قد يؤدي إلى ظهور بيانات ناقصة. يمكنك تعطيل سياسات RLS لهذا المستخدم بتشغيل الأمر أدناه:
ALTER USER clickpipes_user BYPASSRLS;ما الخطوة التالية؟
يمكنك الآن إنشاء ClickPipe الخاص بك والبدء في إدخال البيانات من مثيل Postgres الخاص بك إلى ClickHouse Cloud. احرص على تدوين تفاصيل الاتصال التي استخدمتها أثناء إعداد مثيل Postgres الخاص بك، إذ ستحتاج إليها خلال عملية إنشاء ClickPipe.