هذا دليل يوضح كيفية إعداد Supabase Postgres لاستخدامه مع ClickPipes.
يدعم ClickPipes Supabase عبر IPv6 بشكل أصلي لتوفير نسخ متماثل سلس.
إنشاء مستخدم مع أذونات وفتحة نسخ متماثل
اتصل بمثيل 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 مفتاح أساسي معرّف، أو أن تكون replica identity الخاصة به مضبوطة على FULL. راجع الأسئلة الشائعة حول Postgres للحصول على إرشادات حول تحديد النطاق.
-
لإنشاء publication لجداول محددة:
CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
-
لإنشاء publication لجميع الجداول ضمن مخطط محدد:
CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
سيحتوي clickpipes publication على مجموعة أحداث التغيير الناتجة عن الجداول المحددة، وسيُستخدم لاحقًا لإدخال تدفق النسخ المتماثل.
زِد قيمة max_slot_wal_keep_size
ستؤدي هذه الخطوة إلى إعادة تشغيل قاعدة بيانات Supabase، وقد تتسبب في فترة توقّف قصيرة.يمكنك زيادة المعلَمة max_slot_wal_keep_size في قاعدة بيانات Supabase إلى قيمة أعلى (على الأقل 100GB أو 102400) باتباع وثائق Supabaseللحصول على توصية أدق بشأن هذه القيمة، يمكنك التواصل مع فريق ClickPipes.
تفاصيل الاتصال التي يجب استخدامها مع Supabase
انتقل إلى Project Settings -> Database في مشروع Supabase الخاص بك (ضمن Configuration).
مهم: عطّل Display connection pooler في هذه الصفحة، ثم انتقل إلى قسم Connection parameters ودوّن/انسخ المعلمات.
مُجمِّع الاتصالات غير مدعوم في النسخ المتماثل المستند إلى CDC، لذا يجب تعطيله.
يجب ألا يكون مستخدم ClickPipes في Postgres خاضعًا لقيود سياسات RLS، لأن ذلك قد يؤدي إلى ظهور بيانات ناقصة. يمكنك تعطيل سياسات RLS لهذا المستخدم بتشغيل الأمر أدناه:
ALTER USER clickpipes_user BYPASSRLS;
يمكنك الآن إنشاء ClickPipe الخاص بك والبدء في إدخال البيانات من مثيل Postgres الخاص بك إلى ClickHouse Cloud.
احرص على تدوين تفاصيل الاتصال التي استخدمتها أثناء إعداد مثيل Postgres الخاص بك، إذ ستحتاج إليها خلال عملية إنشاء ClickPipe.