Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

دليل إعداد Aurora MySQL كمصدر

يوضح هذا الدليل خطوة بخطوة كيفية إعداد Amazon Aurora MySQL لنسخ البيانات إلى ClickHouse Cloud باستخدام MySQL ClickPipe. للاطلاع على الأسئلة الشائعة حول MySQL CDC، راجع صفحة الأسئلة الشائعة لـ MySQL.

تمكين الاحتفاظ بالسجل الثنائي

السجل الثنائي عبارة عن مجموعة من ملفات السجل التي تحتوي على معلومات عن تعديلات البيانات التي أُجريت على مثيل خادم MySQL، وتُعد ملفات السجل الثنائي مطلوبة للنسخ المتماثل. لتهيئة الاحتفاظ بالسجل الثنائي في Aurora MySQL، يجب تمكين التسجيل الثنائي وزيادة فترة الاحتفاظ بالـ binlog.

تمكين التسجيل الثنائي عبر النسخ الاحتياطي التلقائي

تُحدد ميزة النسخ الاحتياطية التلقائية ما إذا كان التسجيل الثنائي مُمكّنًا أو معطّلًا في MySQL. يمكن تهيئة النسخ الاحتياطية التلقائية لمثيلك في RDS Console بالانتقال إلى Modify > Additional configuration > Backup وتحديد مربع الاختيار Enable automated backups (إذا لم يكن محددًا بالفعل).

تمكين النسخ الاحتياطية التلقائية في Aurora

نوصي بتعيين Backup retention period إلى قيمة طويلة بشكل معقول، بحسب حالة استخدام النسخ المتماثل.

Increase the binlog retention interval

بشكل افتراضي، يحذف Aurora MySQL السجل الثنائي بأسرع وقت ممكن (أي الحذف المؤجل). نوصي بزيادة فترة الاحتفاظ بالـ binlog إلى 72 ساعة على الأقل لضمان توفر ملفات السجل الثنائي للنسخ المتماثل في سيناريوهات الفشل. لتعيين فترة احتفاظ للسجل الثنائي (binlog retention hours)، استخدم الإجراء mysql.rds_set_configuration:

mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);

إذا لم يتم تعيين هذا الإعداد، أو تم تعيينه على فترة زمنية قصيرة، فقد يؤدي ذلك إلى حدوث فجوات في سجلات MySQL الثنائية، مما يعيق قدرة ClickPipes على استئناف النسخ المتماثل.

تكوين إعدادات binlog

يمكن العثور على مجموعة المعلمات عند النقر على مثيل MySQL الخاص بك في RDS Console، ثم الانتقال إلى علامة التبويب Configuration.

مكان العثور على مجموعة المعلمات في Aurora

انقر على رابط مجموعة المعلمات، وسيأخذك ذلك إلى صفحتها المخصصة. ينبغي أن ترى زر Edit في أعلى اليمين.

تحرير مجموعة المعلمات

يجب ضبط المعلمات التالية كما يلي:

  1. تعيين binlog_format إلى ROW.
تنسيق binlog إلى ROW
  1. تعيين binlog_row_metadata إلى FULL.
البيانات الوصفية لصف binlog
  1. تعيين binlog_row_image إلى FULL.
صورة صف binlog

بعد ذلك، انقر على Save Changes في الزاوية العلوية اليمنى. قد تحتاج إلى إعادة تشغيل المثيل الخاص بك حتى تدخل التغييرات حيز التنفيذ — ويمكنك معرفة ذلك إذا رأيت Pending reboot بجانب رابط مجموعة المعلمات في علامة التبويب Configuration الخاصة بمثيل Aurora.

فعِّل وضع GTID (مُستحسن)

تُعد Global Transaction Identifiers (GTIDs) معرّفات فريدة تُسنَد إلى كل معاملة تم تثبيتها في MySQL. وهي تُبسّط النسخ المتماثل لـ binlog وتجعل استكشاف الأخطاء وإصلاحها أكثر سهولة. نوصي بتمكين وضع GTID، بحيث يتمكن MySQL ClickPipe من استخدام النسخ المتماثل المستند إلى GTID.

النسخ المتماثل المستند إلى GTID مدعوم في Amazon Aurora MySQL v2 ‏(MySQL 5.7) وv3 ‏(MySQL 8.0)، وكذلك Aurora Serverless v2. لتمكين وضع GTID لمثيل Aurora MySQL الخاص بك، اتبع الخطوات التالية:

  1. في RDS Console، انقر على مثيل MySQL الخاص بك.
  2. انقر على علامة التبويب Configuration.
  3. انقر على رابط مجموعة المعلمات.
  4. انقر على زر Edit في الزاوية العلوية اليمنى.
  5. اضبط enforce_gtid_consistency على ON.
  6. اضبط gtid-mode على ON.
  7. انقر على Save Changes في الزاوية العلوية اليمنى.
  8. أعد تشغيل المثيل لتصبح التغييرات سارية المفعول.
تم تمكين GTID

تهيئة مستخدم قاعدة بيانات

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

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

    CREATE USER 'clickpipes_user'@'%' IDENTIFIED BY 'some-password';
  2. امنح أذونات المخطط. يوضّح المثال التالي أذونات قاعدة البيانات mysql. كرر هذه الأوامر لكل قاعدة بيانات ولكل مضيف تريد النسخ المتماثل منه:

    GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
  3. امنح المستخدم أذونات النسخ المتماثل:

    GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%';
    GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';

استخدام مصادقة IAM (اختياري)

Instead of a password, you can authenticate the ClickPipes user with an AWS IAM role. This lets ClickPipes connect to your Amazon Aurora cluster without storing database credentials.

Enable IAM authentication

  1. Log in to your AWS account and go to the Aurora cluster you want to configure.
  2. Click Modify.
  3. Scroll to the Database authentication section.
  4. Select Password and IAM database authentication.
  5. Click Continue.
  6. 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' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';

Obtain the ClickHouse service IAM role ARN

  1. Log in to your ClickHouse Cloud account.
  2. Select the ClickHouse service you want to connect.
  3. Select the Settings tab.
  4. Scroll to the Network security information section at the bottom of the page.
  5. Copy the service's Service role ID (IAM) value, shown below.
Service role ID (IAM) value in the Network security information section

This value is your {ClickHouse_IAM_ARN} — the role ClickPipes uses to access your Aurora cluster.

Obtain the resource ID

  1. Log in to your AWS account and go to the Aurora cluster you want to configure.
  2. Select the Configuration tab.
  3. Note the Resource ID value — it looks like cluster-xxxxxxxxxxxxxx. This is your {RDS_RESOURCE_ID}, which you reference in the permissions policy.

Create the IAM role

  1. Log in to your AWS account with an IAM user that has permission to create and manage IAM roles.
  2. Open the IAM console.
  3. 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 Aurora cluster, {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"
          ]
        }
      ]
    }
  4. 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 Aurora cluster from ClickPipes.

إعداد الوصول إلى الشبكة

التحكم في الوصول المستند إلى عنوان IP

لتقييد حركة المرور الواردة إلى مثيل Aurora MySQL لديك، أضِف عناوين IP الثابتة لـ NAT المذكورة في الوثائق إلى قواعد الدخول في مجموعة الأمان الخاصة بـ Aurora.

أين تجد مجموعة الأمان في Aurora MySQL؟
تحرير قواعد الدخول لمجموعة الأمان المذكورة أعلاه

للاتصال بمثيل Aurora MySQL الخاص بك عبر شبكة خاصة، يمكنك استخدام AWS PrivateLink. اتبع دليل إعداد AWS PrivateLink لـ ClickPipes لإعداد الاتصال.

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

الآن بعد تهيئة مثيل Amazon Aurora MySQL لديك لإجراء النسخ المتماثل عبر binlog والاتصال الآمن بـ ClickHouse Cloud، يمكنك إنشاء أول MySQL ClickPipe لديك. وللاطلاع على الأسئلة الشائعة حول MySQL CDC، راجع صفحة الأسئلة الشائعة الخاصة بـ MySQL.

Navigation