Skip to main content
تُعدّ Apify منصة لاستخراج بيانات الويب والأتمتة. يمكنك إنشاء برامج سحابية بلا خوادم تُسمّى Actors، ثم تشغيلها وتوسيع نطاقها. تتولى Actors استخراج البيانات من مواقع الويب، والزحف على الويب، ومعالجة البيانات، أو أتمتة سير العمل. وينتج عن كل تشغيل لـ Actor مخرجات منظَّمة تُخزَّن في Datasets (مجموعات من كائنات JSON). حمّل البيانات المستخرَجة أو المُعالجة إلى ClickHouse لاستخدامها في التحليلات أو المراقبة أو مسارات الإثراء.

المفاهيم الأساسية

دليل الإعداد

1

اجمع تفاصيل الاتصال بـ ClickHouse

للاتصال بـ ClickHouse باستخدام HTTP(S)، تحتاج إلى المعلومات التالية:تتوفر تفاصيل خدمة ClickHouse Cloud الخاصة بك في ClickHouse Cloud console. حدِّد خدمة ثم انقر على Connect:
زر Connect لخدمة ClickHouse Cloud
اختر HTTPS. ستظهر تفاصيل الاتصال في مثال لأمر curl.
تفاصيل اتصال HTTPS لخدمة ClickHouse Cloud
إذا كنت تستخدم ClickHouse مُدارًا ذاتيًا، فسيُحدِّد مسؤول ClickHouse لديك تفاصيل الاتصال.
2

المتطلبات الأساسية لـ Apify

ستحتاج أيضًا إلى:
3

ثبّت التبعيات

ثبّت عميل JavaScript من Apify وعميل JavaScript من ClickHouse:
يوفر Apify أيضًا عميل بايثون. إذا كنت تفضل بايثون، فثبّت apify-client باستخدام pip، واستخدم clickhouse-connect مع ClickHouse.
4

أنشئ جدولًا مستهدفًا في ClickHouse

أنشئ جدولًا لتخزين البيانات المستخرجة. يعتمد المخطط على الـ Actor الذي تستخدمه. يستخدم هذا المثال MergeTree مع Actor لاستخراج بيانات المنتجات:
5

اجلب Dataset لـ Apify وحمّلها إلى ClickHouse

يجلب البرنامج النصي التالي نتائج تشغيل Actor في Apify ويدرجها في ClickHouse:
بالنسبة إلى Dataset الكبيرة، استخدم تقسيم النتائج إلى صفحات عبر معاملي limit وoffset في نقطة النهاية List dataset items. يمكنك أيضًا تمرير clean=true لاسترجاع العناصر غير الفارغة فقط بعد إزالة التكرارات.
6

أتمتة العملية باستخدام webhooks

بدلًا من تشغيل البرنامج النصي يدويًا، أتمت مسار المعالجة بحيث تُحمَّل البيانات إلى ClickHouse في كل مرة ينتهي فيها Actor:
  1. في Apify Console، انتقل إلى Actor الخاص بك وافتح علامة التبويب Integrations.
  2. أضف webhook جديدًا بالإعدادات التالية:
    • نوع الحدث: ACTOR.RUN.SUCCEEDED
    • الإجراء: طلب HTTP POST إلى نقطة نهاية أداة التحميل لديك، أو تشغيل Actor آخر يتولى الإدراج في ClickHouse.
  3. تتضمن حمولة webhook القيمة defaultDatasetId، والتي يمكنك استخدامها لجلب نتائج التشغيل.
راجع توثيق webhooks في Apify للاطلاع على تفاصيل الحمولة وخيارات الإعداد.ويمكنك أيضًا استخدام Apify Schedules لتشغيل Actors وفق جدول زمني شبيه بـ cron، مع استخدام webhooks لخطوة التحميل.

أفضل الممارسات

جلب البيانات من Apify

استخدم مكتبة العميل لـ Apify (apify-client لـ JavaScript أو بايثون) بدلًا من استدعاءات HTTP المباشرة. فهي تتولى تقسيم النتائج إلى صفحات، وإعادة المحاولة، والمصادقة نيابةً عنك. وبالنسبة إلى مجموعات البيانات الكبيرة، صفِّح النتائج باستخدام المعلَمتين limit وoffset في نقطة النهاية List dataset items.

تحميل البيانات إلى ClickHouse

استخدم التنسيق JSONEachRow عند الإدراج في ClickHouse. فهو يتوافق مباشرةً مع مخرجات JSON من Apify من دون الحاجة إلى أي تحويل. احرص على أن يطابق مخطط جدول ClickHouse لديك حقول المخرجات الخاصة بـ Actor. تحقّق من مخطط المخرجات الخاص بـ Actor في صفحته على Apify Store أو في علامة التبويب Dataset بعد التشغيل.

الأداء

لعمليات الإدراج عالية الإنتاجية من عميل JavaScript، اتبع نصائح لتحسين الأداء. اجمع الصفوف في دفعات إدراج أكبر بدلًا من إدراج صف واحد في كل مرة، وفكّر في استخدام عمليات الإدراج غير المتزامنة عندما لا يكون التجميع من جهة العميل عمليًا.

الأمان

تستخدم الأمثلة في هذه الصفحة المستخدم default وقاعدة البيانات الافتراضية لتبسيط الأمور. في بيئة production، أنشئ مستخدمًا مخصصًا يتمتع بالحد الأدنى من الامتيازات اللازمة للإدراج في الجدول المستهدف، وخزّن بيانات الاعتماد بأمان (على سبيل المثال، في متغيرات البيئة أو في مدير الأسرار بدلًا من تضمينها في الشيفرة المصدرية). راجع Cloud access management للحصول على إرشادات.
آخر تعديل في ٢٤ يوليو ٢٠٢٦