SELECT وINSERT على البيانات المخزّنة على خادم MySQL بعيد.
البنية
الوسيطات
يمكن أيضًا تمرير الوسيطات باستخدام المجموعات المسماة. في هذه الحالة، يجب تحديد
host وport كلٌّ على حدة. يُوصى بهذا الأسلوب في بيئة الإنتاج.
تُنفَّذ عبارات WHERE البسيطة مثل =, !=, >, >=, <, <= حاليًا على خادم MySQL.
أما بقية الشروط وقيد LIMIT لأخذ العينات، فتُنفَّذ في ClickHouse فقط بعد انتهاء الاستعلام إلى MySQL.
تمرير استعلام بدلًا من اسم جدول
SELECT يُمرَّر إلى MySQL كما هو. ويُستدل على بنية الجدول الناتج من نتيجة الاستعلام. ويمكن كتابة الاستعلام إما على شكل استعلام فرعي، أو تغليفه داخل الدالة query:
INSERT فيه. كما يدعم محرّك الجدول MySQL البنية نفسها.
يحلّل ClickHouse صيغة الاستعلام الفرعي
(SELECT ...) ثم يعيد تسلسلها وفق لهجة MySQL (باستخدام علامات الاقتباس الخلفية للمعرّفات) قبل إرسالها إلى الخادم. لذلك يجب أن تكون صالحة في ClickHouse SQL. ولتمرير بنية خاصة بـ MySQL لا يستطيع ClickHouse تحليلها، استخدم صيغة query('...')، إذ يُرسَل نصها إلى MySQL كما هو.أي WHERE أو LIMIT أو تجميع أو غير ذلك في استعلام ClickHouse المحيط لا يُدفَع مطلقًا إلى داخل الاستعلام المُمرَّر، بل يُطبَّق في ClickHouse بعد جلب نتيجة الاستعلام كاملة. ولتقييد البيانات المقروءة من MySQL، ضع عامل التصفية داخل الاستعلام المُمرَّر. عند استخدام external_table_strict_query = 1، يُرفَض أي عامل تصفية خارجي لا يمكن دفعه مع استثناء بدلًا من تطبيقه محليًا.|. على سبيل المثال:
القيمة المُعادة
يمكن ربط بعض أنواع بيانات MySQL بأنواع مختلفة في ClickHouse، ويُتحكَّم في ذلك عبر الإعداد على مستوى الاستعلام mysql_datatypes_support_level
في استعلام
INSERT، وللتمييز بين دالة الجدول mysql(...) واسم جدول يتبعه قائمة بأسماء الأعمدة، يجب استخدام الكلمتين المفتاحيتين FUNCTION أو TABLE FUNCTION. راجع الأمثلة أدناه.أمثلة
enable_compression
false.
ينطبق هذا الإعداد على:
- دالة الجدول
mysql; - محرك الجدول
MySQL; - محرك قاعدة البيانات
MySQL; - المجموعات المسماة المستخدمة في تكاملات MySQL.
id حالية: