Skip to main content
يتيح تنفيذ استعلامات SELECT وINSERT على البيانات المخزّنة على خادم MySQL بعيد.

البنية

الوسيطات

يمكن أيضًا تمرير الوسيطات باستخدام المجموعات المسماة. في هذه الحالة، يجب تحديد host وport كلٌّ على حدة. يُوصى بهذا الأسلوب في بيئة الإنتاج. تُنفَّذ عبارات WHERE البسيطة مثل =, !=, >, >=, <, <= حاليًا على خادم MySQL. أما بقية الشروط وقيد LIMIT لأخذ العينات، فتُنفَّذ في ClickHouse فقط بعد انتهاء الاستعلام إلى MySQL.

تمرير استعلام بدلًا من اسم جدول

بدلًا من اسم جدول، يمكن أن تكون الوسيطة الثالثة استعلام SELECT يُمرَّر إلى MySQL كما هو. ويُستدل على بنية الجدول الناتج من نتيجة الاستعلام. ويمكن كتابة الاستعلام إما على شكل استعلام فرعي، أو تغليفه داخل الدالة query:
يفيد هذا في دفع عمليات الربط والتجميع أو أي معالجة أخرى إلى MySQL. ويكون هذا الجدول للقراءة فقط: لا يُسمح بإجراء INSERT فيه. كما يدعم محرّك الجدول MySQL البنية نفسها.
يحلّل ClickHouse صيغة الاستعلام الفرعي (SELECT ...) ثم يعيد تسلسلها وفق لهجة MySQL (باستخدام علامات الاقتباس الخلفية للمعرّفات) قبل إرسالها إلى الخادم. لذلك يجب أن تكون صالحة في ClickHouse SQL. ولتمرير بنية خاصة بـ MySQL لا يستطيع ClickHouse تحليلها، استخدم صيغة query('...')، إذ يُرسَل نصها إلى MySQL كما هو.أي WHERE أو LIMIT أو تجميع أو غير ذلك في استعلام ClickHouse المحيط لا يُدفَع مطلقًا إلى داخل الاستعلام المُمرَّر، بل يُطبَّق في ClickHouse بعد جلب نتيجة الاستعلام كاملة. ولتقييد البيانات المقروءة من MySQL، ضع عامل التصفية داخل الاستعلام المُمرَّر. عند استخدام external_table_strict_query = 1، يُرفَض أي عامل تصفية خارجي لا يمكن دفعه مع استثناء بدلًا من تطبيقه محليًا.
يدعم عدة نُسخ متماثلة يجب إدراجها باستخدام |. على سبيل المثال:
OR

القيمة المُعادة

كائن جدول له الأعمدة نفسها الموجودة في جدول MySQL الأصلي.
يمكن ربط بعض أنواع بيانات MySQL بأنواع مختلفة في ClickHouse، ويُتحكَّم في ذلك عبر الإعداد على مستوى الاستعلام mysql_datatypes_support_level
في استعلام INSERT، وللتمييز بين دالة الجدول mysql(...) واسم جدول يتبعه قائمة بأسماء الأعمدة، يجب استخدام الكلمتين المفتاحيتين FUNCTION أو TABLE FUNCTION. راجع الأمثلة أدناه.

أمثلة

جدول في MySQL:
استخراج البيانات من ClickHouse:
أو باستخدام المجموعات المُسمّاة:

enable_compression

يُفعّل الضغط لاتصال بروتوكول MySQL. القيمة الافتراضية: false. ينطبق هذا الإعداد على:
  • دالة الجدول mysql;
  • محرك الجدول MySQL;
  • محرك قاعدة البيانات MySQL;
  • المجموعات المسماة المستخدمة في تكاملات MySQL.
عند تفعيل هذا الإعداد، يطلب ClickHouse ضغط الاتصال. مثال:
الاستبدال والإدراج:
نسخ البيانات من جدول في MySQL إلى جدول في ClickHouse:
أو عند نسخ دفعة تدريجية فقط من MySQL استنادًا إلى أكبر قيمة id حالية:
آخر تعديل في ٢٣ يوليو ٢٠٢٦