الانتقال إلى المحتوى الرئيسي
تشرح هذه الوثيقة كيفية عمل اللقطة/التحميل الأولي المتوازي في Postgres ClickPipe، وتستعرض معلمات اللقطة التي يمكن استخدامها للتحكم في ذلك.

نظرة عامة

يمثّل التحميل الأولي المرحلة الأولى في ClickPipe الخاص بـ CDC، حيث يزامن ClickPipe البيانات التاريخية للجداول من قاعدة البيانات المصدر إلى ClickHouse قبل بدء CDC. وفي كثير من الحالات، ينفّذ المطورون ذلك على خيط تنفيذ واحد، مثل استخدام pg_dump أو pg_restore، أو استخدام خيط واحد للقراءة من قاعدة البيانات المصدر والكتابة إلى ClickHouse. لكن Postgres ClickPipe يمكنه تنفيذ هذه العملية بالتوازي، ما قد يسرّع التحميل الأولي بشكل كبير.

عمود CTID في Postgres

في Postgres، لكل صف في الجدول معرّف فريد يُسمى CTID. وهو عمود نظام لا يظهر لك افتراضيًا، لكنه يُستخدم لتمييز الصفوف في الجدول بشكل فريد. ويتكوّن CTID من رقم الكتلة والإزاحة داخلها، مما يتيح الوصول إلى الصفوف بكفاءة.

التقسيم المنطقي

يستخدم Postgres ClickPipe العمود CTID لتقسيم الجداول المصدر منطقيًا. ويحدّد الأقسام عبر تنفيذ COUNT(*) أولًا على الجدول المصدر، ثم استعلام تقسيم باستخدام دالة نافذة للحصول على نطاقات CTID لكل قسم. ويتيح ذلك لـ ClickPipe قراءة الجدول المصدر بالتوازي، بحيث يُعالَج كل قسم بواسطة خيط تنفيذ منفصل. لنتناول الإعدادات التالية:

عدد الصفوف لكل قسم في اللقطة

يتحكّم هذا الإعداد في عدد الصفوف التي تُشكّل قسم. سيقرأ ClickPipe الجدول المصدر على شكل دفعات بهذا الحجم، وتُعالَج هذه الدفعات بالتوازي وفقًا لإعداد توازي التحميل الأولي. القيمة الافتراضية هي 100,000 صف لكل قسم.

توازي التحميل الأولي

يتحكم هذا الإعداد في عدد الأقسام التي تُعالج بالتوازي. القيمة الافتراضية هي 4، ما يعني أن ClickPipe سيقرأ 4 أقسام من الجدول المصدر بالتوازي. يمكن زيادة هذا العدد لتسريع التحميل الأولي، لكن يُنصح بالإبقاء عليه ضمن حدّ معقول بحسب مواصفات المثيل المصدر لديك، لتجنّب إرهاق قاعدة البيانات المصدر. وسيُعدّل ClickPipe تلقائيًا عدد الأقسام استنادًا إلى حجم الجدول المصدر وعدد الصفوف في كل قسم.

عدد الجداول التي تُؤخذ لها snapshot بالتوازي

لا يرتبط هذا الإعداد مباشرةً بالـ اللقطة المتوازية، لكنه يتحكم في عدد الجداول التي تُعالَج بالتوازي أثناء التحميل الأولي. القيمة الافتراضية هي 1. لاحظ أن هذا يُضاف إلى مستوى التوازي الخاص بالـ أقسام، لذا إذا كان لديك 4 أقسام وجدولان، فسيقرأ ClickPipe ثمانية أقسام بالتوازي.

مراقبة اللقطة المتوازية في Postgres

يمكنك تحليل pg_stat_activity لرؤية اللقطة المتوازية قيد التنفيذ. سينشئ ClickPipe عدة اتصالات بقاعدة البيانات المصدر، يقرأ كلٌّ منها قسمًا مختلفًا من الجدول المصدر. إذا رأيت استعلامات FETCH بنطاقات CTID مختلفة، فهذا يعني أن ClickPipe يقرأ جداول المصدر. كما يمكنك أيضًا رؤية COUNT(*) واستعلام التقسيم هنا.

القيود

  • لا يمكن تعديل معلمات اللقطة بعد إنشاء ClickPipe. إذا أردت تغييرها، فسيتعين عليك إنشاء ClickPipe جديد.
  • عند إضافة جداول إلى ClickPipe موجود، لا يمكنك تغيير معلمات اللقطة. وسيستخدم ClickPipe الإعدادات الحالية للجداول الجديدة.
آخر تعديل في ٢٥ يونيو ٢٠٢٦