إصدارات Postgres المدعومة
تدعم ClickPipes Postgres بالإصدار 12 وما بعده.
تمكين النسخ المتماثل المنطقي
يمكنك تخطي هذا القسم إذا كان مثيل RDS لديك مُهيأ بالفعل بالإعداد التالي:
rds.logical_replication = 1
عادةً ما يكون هذا الإعداد مُعدًّا مسبقًا إذا كنت قد استخدمت سابقًا أداة أخرى لنسخ البيانات.
postgres=> SHOW rds.logical_replication ;
rds.logical_replication
-------------------------
on
(1 row)إذا لم يكن ذلك مُهيّأً بالفعل، فاتبع الخطوات التالية:
- أنشئ مجموعة معلمات جديدة لإصدار Postgres لديك تتضمن الإعدادات المطلوبة:
- اضبط
rds.logical_replicationعلى 1
- اضبط


- طبّق مجموعة المعلمات الجديدة على قاعدة بيانات Postgres في RDS

- أعد تشغيل مثيل RDS لديك لتطبيق التغييرات

إعداد مستخدم قاعدة البيانات
اتصل بمثيل RDS Postgres الخاص بك باستخدام مستخدم مسؤول، ثم نفّذ الأوامر التالية:
-
أنشئ مستخدمًا مخصصًا لـ 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; -
امنح المستخدم امتيازات النسخ المتماثل:
GRANT rds_replication TO clickpipes_user; -
أنشئ publication يتضمن الجداول التي تريد نسخها. نوصي بشدة بقصر الـ publication على الجداول التي تحتاج إليها فقط لتجنّب أي حمل إضافي على الأداء.
-
لإنشاء publication لجداول محددة:
CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;-
لإنشاء publication لجميع الجداول ضمن مخطط محدد:
CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
-
يحدّد الـ publication clickpipes مجموعة الجداول التي ستُبث أحداث التغيير الخاصة بها إلى ClickPipes. نوصي بعدم استخدام FOR ALL TABLES إلا إذا كنت تنوي نسخ كل الجداول، لأن تضمين جداول غير ضرورية يزيد من حركة WAL من Postgres إلى ClickPipes ويقلّل من الكفاءة الإجمالية للنسخ المتماثل.
استخدام مصادقة IAM (اختياري)
Instead of a password, you can authenticate the ClickPipes user with an AWS IAM role. This lets ClickPipes connect to your Amazon RDS instance without storing database credentials.
Enable IAM authentication
- Log in to your AWS account and go to the RDS instance you want to configure.
- Click Modify.
- Scroll to the Database authentication section.
- Select Password and IAM database authentication.
- Click Continue.
- Review the changes and select Apply immediately.
Create the ClickPipes user
Create the ClickPipes user with IAM authentication enabled, then grant it the same schema and replication privileges shown above:
CREATE USER clickpipes_iam_user;
GRANT rds_iam TO clickpipes_iam_user;Obtain the ClickHouse service IAM role ARN
- Log in to your ClickHouse Cloud account.
- Select the ClickHouse service you want to connect.
- Select the Settings tab.
- Scroll to the Network security information section at the bottom of the page.
- Copy the service's Service role ID (IAM) value, shown below.

This value is your {ClickHouse_IAM_ARN} — the role ClickPipes uses to access your RDS instance.
Obtain the resource ID
- Log in to your AWS account and go to the RDS instance you want to configure.
- Select the Configuration tab.
- Note the Resource ID value — it looks like
db-xxxxxxxxxxxxxx. This is your{RDS_RESOURCE_ID}, which you reference in the permissions policy.
Create the IAM role
- Log in to your AWS account with an IAM user that has permission to create and manage IAM roles.
- Open the IAM console.
- Create a new IAM role with the following trust and permissions policies.
Trust policy (replace
{ClickHouse_IAM_ARN}with the IAM role ARN of your ClickHouse instance):{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "{ClickHouse_IAM_ARN}" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }Permissions policy (replace
{RDS_RESOURCE_ID}with the resource ID of your RDS instance,{RDS_REGION}with its region, and{AWS_ACCOUNT}with your AWS account ID):{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:{RDS_REGION}:{AWS_ACCOUNT}:dbuser:{RDS_RESOURCE_ID}/clickpipes_iam_user" ] } ] } - Once the role is created, copy its ARN. This is your
{RDS_ACCESS_IAM_ROLE_ARN}.
You can now use this IAM role to authenticate with your RDS instance from ClickPipes.
إعداد الوصول إلى الشبكة
التحكم في الوصول المستند إلى IP
إذا كنت تريد تقييد حركة المرور إلى مثيل RDS الخاص بك، فيُرجى إضافة عناوين IP الثابتة لـ NAT الموثّقة إلى Inbound rules في مجموعة الأمان الخاصة بـ RDS.


الوصول الخاص عبر AWS PrivateLink
للاتصال بمثيل RDS الخاص بك عبر private network، يمكنك استخدام AWS PrivateLink. اتبع setup guide الخاص بنا لـ AWS PrivateLink مع ClickPipes لإعداد connection.
حلول بديلة لـ RDS Proxy
لا يدعم RDS Proxy اتصالات النسخ المتماثل المنطقي. إذا كانت لديك عناوين IP ديناميكية في RDS ولا يمكنك استخدام اسم DNS أو Lambda، فإليك بعض البدائل:
- باستخدام مهمة cron، استخرج عنوان IP لنقطة نهاية RDS بشكل دوري وحدّث NLB إذا تغيّر.
- باستخدام إشعارات أحداث RDS مع EventBridge/SNS: شغّل التحديثات تلقائيًا عبر إشعارات أحداث AWS RDS.
- EC2 ثابت: انشر مثيل EC2 ليعمل كخدمة استقصاء دوري أو وكيل قائم على IP.
- أتمتة إدارة عناوين IP باستخدام أدوات مثل Terraform أو CloudFormation.
ما الخطوة التالية؟
يمكنك الآن إنشاء ClickPipe الخاص بك والبدء في إدخال البيانات من مثيل Postgres الخاص بك إلى ClickHouse Cloud. احرص على تدوين تفاصيل الاتصال التي استخدمتها أثناء إعداد مثيل Postgres الخاص بك، لأنك ستحتاج إليها خلال عملية إنشاء ClickPipe.