> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> إعداد Amazon RDS Postgres كمصدر لـ ClickPipes

# دليل إعداد مصدر RDS Postgres

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

<div id="supported-postgres-versions">
  ## إصدارات Postgres المدعومة
</div>

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

<div id="enable-logical-replication">
  ## تمكين النسخ المتماثل المنطقي
</div>

يمكنك تخطي هذا القسم إذا كان مثيل RDS لديك مُهيأ بالفعل بالإعداد التالي:

* `rds.logical_replication = 1`

عادةً ما يكون هذا الإعداد مُعدًّا مسبقًا إذا كنت قد استخدمت سابقًا أداة أخرى لنسخ البيانات.

```text theme={null}
postgres=> SHOW rds.logical_replication ;
 rds.logical_replication
-------------------------
 on
(1 row)
```

إذا لم يكن ذلك مُهيّأً بالفعل، فاتبع الخطوات التالية:

1. أنشئ مجموعة معلمات جديدة لإصدار Postgres لديك تتضمن الإعدادات المطلوبة:
   * اضبط `rds.logical_replication` على 1

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/parameter_group_in_blade.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=b2883dcb98dc63142ebc039c73266959" alt="أين تجد مجموعات المعلمات في RDS؟" size="lg" border width="1800" height="819" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/parameter_group_in_blade.webp" />

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/change_rds_logical_replication.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=49d72c6fa5e62fa564f49649bec6d164" alt="تغيير rds.logical_replication" size="lg" border width="1800" height="795" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/change_rds_logical_replication.webp" />

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

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/modify_parameter_group.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=35e6dcc962ef6ccc9cf2d60346ea1f1b" alt="تعديل RDS Postgres باستخدام مجموعة المعلمات الجديدة" size="lg" border width="1800" height="1352" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/modify_parameter_group.webp" />

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

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/reboot_rds.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=c93af311ca2d75ba1a1955a79234eea2" alt="إعادة تشغيل RDS Postgres" size="lg" border width="1800" height="757" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/reboot_rds.webp" />

<div id="configure-database-user">
  ## إعداد مستخدم قاعدة البيانات
</div>

اتصل بمثيل RDS Postgres الخاص بك باستخدام مستخدم مسؤول، ثم نفّذ الأوامر التالية:

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

   ```sql theme={null}
   CREATE USER clickpipes_user PASSWORD 'some-password';
   ```

2. امنح المستخدم الذي أنشأته في الخطوة السابقة وصولًا للقراءة فقط على مستوى المخطط. يوضح المثال التالي الأذونات الخاصة بالمخطط `public`. كرّر هذه الأوامر لكل مخطط يحتوي على جداول تريد نسخها:

   ```sql theme={null}
   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. امنح المستخدم امتيازات النسخ المتماثل:

   ```sql theme={null}
   GRANT rds_replication TO clickpipes_user;
   ```

4. أنشئ [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) يتضمن الجداول التي تريد نسخها. نوصي بشدة بقصر الـ publication على الجداول التي تحتاج إليها فقط لتجنّب أي حمل إضافي على الأداء.

<Warning>
  يجب أن يحتوي أي جدول مُدرج في الـ publication إما على **مفتاح أساسي** معرّف، *أو* أن تكون **replica identity** الخاصة به مضبوطة على `FULL`. راجع [الأسئلة الشائعة لـ Postgres](/docs/ar/integrations/clickpipes/postgres/faq#how-should-i-scope-my-publications-when-setting-up-replication) للحصول على إرشادات حول تحديد النطاق.
</Warning>

* لإنشاء publication لجداول محددة:

  ```sql theme={null}
  CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
  ```

  * لإنشاء publication لجميع الجداول ضمن مخطط محدد:

    ```sql theme={null}
    CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
    ```

يحدّد الـ publication ‏`clickpipes` مجموعة الجداول التي ستُبث أحداث التغيير الخاصة بها إلى ClickPipes. نوصي بعدم استخدام `FOR ALL TABLES` إلا إذا كنت تنوي نسخ كل الجداول، لأن تضمين جداول غير ضرورية يزيد من حركة WAL من Postgres إلى ClickPipes ويقلّل من الكفاءة الإجمالية للنسخ المتماثل.

<div id="iam-authentication">
  ### استخدام مصادقة IAM (اختياري)
</div>

بدلًا من كلمة المرور، يمكنك مصادقة مستخدم ClickPipes باستخدام الوصول المستند إلى الدور في AWS IAM. أنشئ المستخدم كما يلي، ثم امنحه امتيازات `مخطط` و`النسخ المتماثل` نفسها الموضحة أعلاه:

```sql theme={null}
CREATE USER clickpipes_iam_user;
GRANT rds_iam TO clickpipes_iam_user;
```

<Note>
  تتطلب مصادقة IAM للنسخ المتماثل تعيين المعلَمة `rds.iam_auth_for_replication` إلى `1`. ويتوفر هذا بدءًا من PostgreSQL الإصدار 11 وما بعده؛ أما في الإصدارات الأقدم، فلا يمكنك تشغيل سوى ClickPipes من نوع `Initial Load Only`.
</Note>

راجع [مصادقة قاعدة بيانات AWS IAM ‏(RDS/Aurora)](/docs/ar/integrations/clickpipes/postgres/auth) للاطلاع على الخطوات الكاملة لإعداد دور IAM والسياسة المطلوبة لكي تتمكن ClickPipes من المصادقة بهذه الطريقة.

<div id="configure-network-access">
  ## إعداد الوصول إلى الشبكة
</div>

<div id="ip-based-access-control">
  ### التحكم في الوصول المستند إلى IP
</div>

إذا كنت تريد تقييد حركة المرور إلى مثيل RDS الخاص بك، فيُرجى إضافة [عناوين IP الثابتة لـ NAT الموثّقة](/docs/ar/integrations/clickpipes/home#list-of-static-ips) إلى `Inbound rules` في مجموعة الأمان الخاصة بـ RDS.

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/security_group_in_rds_postgres.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=32f6f69694b2f735d86cee4813efde34" alt="أين يمكن العثور على مجموعة الأمان في RDS Postgres؟" size="lg" border width="1800" height="707" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/security_group_in_rds_postgres.webp" />

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=1176aa14815b965b841d70d28b5f0d7c" alt="تعديل قواعد الإدخال لمجموعة الأمان المذكورة أعلاه" size="lg" border width="1800" height="935" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.webp" />

<div id="private-access-via-aws-privatelink">
  ### الوصول الخاص عبر AWS PrivateLink
</div>

للاتصال بمثيل RDS الخاص بك عبر private network، يمكنك استخدام AWS PrivateLink. اتبع [setup guide الخاص بنا لـ AWS PrivateLink مع ClickPipes](/docs/ar/resources/support-center/knowledge-base/cloud-services/aws-privatelink-setup-for-clickpipes) لإعداد connection.

<div id="workarounds-for-rds-proxy">
  ### حلول بديلة لـ RDS Proxy
</div>

لا يدعم RDS Proxy اتصالات النسخ المتماثل المنطقي. إذا كانت لديك عناوين IP ديناميكية في RDS ولا يمكنك استخدام اسم DNS أو Lambda، فإليك بعض البدائل:

1. باستخدام مهمة cron، استخرج عنوان IP لنقطة نهاية RDS بشكل دوري وحدّث NLB إذا تغيّر.
2. باستخدام إشعارات أحداث RDS مع EventBridge/SNS: شغّل التحديثات تلقائيًا عبر إشعارات أحداث AWS RDS.
3. EC2 ثابت: انشر مثيل EC2 ليعمل كخدمة استقصاء دوري أو وكيل قائم على IP.
4. أتمتة إدارة عناوين IP باستخدام أدوات مثل Terraform أو CloudFormation.

<div id="whats-next">
  ## ما الخطوة التالية؟
</div>

يمكنك الآن [إنشاء ClickPipe الخاص بك](/docs/ar/integrations/clickpipes/postgres/index) والبدء في إدخال البيانات من مثيل Postgres الخاص بك إلى ClickHouse Cloud.
احرص على تدوين تفاصيل الاتصال التي استخدمتها أثناء إعداد مثيل Postgres الخاص بك، لأنك ستحتاج إليها خلال عملية إنشاء ClickPipe.
