يتيح لك محرك MySQL تنفيذ استعلامات SELECT وINSERT على البيانات المخزّنة على خادم MySQL بعيد.
اطّلع على وصف مفصل لاستعلام CREATE TABLE.
يمكن أن يختلف هيكل الجدول عن هيكل جدول MySQL الأصلي:
- يجب أن تكون أسماء الأعمدة مطابقةً لما هي عليه في جدول MySQL الأصلي، لكن يمكنك استخدام بعض هذه الأعمدة فقط وبأي ترتيب.
- قد تختلف أنواع الأعمدة عن تلك الموجودة في جدول MySQL الأصلي. ويحاول ClickHouse cast القيم إلى أنواع بيانات ClickHouse.
- يحدّد الإعداد external_table_functions_use_nulls كيفية التعامل مع الأعمدة Nullable. القيمة الافتراضية: 1. إذا كانت القيمة 0، فلن تُنشئ دالة الجدول أعمدة Nullable، وستُدرج القيم الافتراضية بدلًا من nulls. وينطبق ذلك أيضًا على قيم NULL داخل المصفوفات.
معلمات المحرك
host:port — عنوان خادم MySQL.
database — اسم قاعدة البيانات البعيدة.
table — اسم الجدول البعيد.
user — مستخدم MySQL.
password — كلمة مرور المستخدم.
replace_query — علامة تُحوّل استعلامات INSERT INTO إلى REPLACE INTO. إذا كانت replace_query=1، فسيُستبدل الاستعلام.
on_duplicate_clause — التعبير ON DUPLICATE KEY on_duplicate_clause الذي يُضاف إلى استعلام INSERT.
مثال: INSERT INTO t (c1,c2) VALUES ('a', 2) ON DUPLICATE KEY UPDATE c2 = c2 + 1، حيث تكون on_duplicate_clause هي UPDATE c2 = c2 + 1. راجع وثائق MySQL لمعرفة أي on_duplicate_clause يمكنك استخدامه مع العبارة ON DUPLICATE KEY.
لتحديد on_duplicate_clause، يجب تمرير 0 إلى المعلمة replace_query. وإذا مرّرت replace_query = 1 وon_duplicate_clause في الوقت نفسه، فسينشئ ClickHouse استثناءً.
يمكن أيضًا تمرير الوسيطات باستخدام المجموعات المسماة. في هذه الحالة، يجب تحديد host وport كلٌّ على حدة. ويُنصح بهذا النهج في بيئة الإنتاج.
تُنفَّذ عبارات WHERE البسيطة، مثل =, !=, >, >=, <, <=، على خادم MySQL.
أما بقية الشروط وقيد المعاينة LIMIT، فلا تُنفَّذ إلا في ClickHouse بعد اكتمال الاستعلام إلى MySQL.
يدعم عدة replicas يجب إدراجها باستخدام |. على سبيل المثال:
أنشئ جدولًا في MySQL:
أنشئ جدولًا في ClickHouse باستخدام وسيطات بسيطة:
أو باستخدام المجموعات المُسمّاة:
استرداد البيانات من جدول MySQL:
الإعدادات الافتراضية ليست فعّالة جدًا، إذ إنها لا تعيد استخدام الاتصالات حتى. تتيح لك هذه الإعدادات زيادة عدد الاستعلامات التي ينفّذها الخادوم في الثانية.
يسمح بإغلاق الاتصال تلقائيًا بعد تنفيذ الاستعلام، أي بتعطيل إعادة استخدام الاتصال.
القيم الممكنة:
- 1 — يُسمح بالإغلاق التلقائي للاتصال، وبالتالي يتم تعطيل إعادة استخدام الاتصال
- 0 — لا يُسمح بالإغلاق التلقائي للاتصال، وبالتالي يكون إعادة استخدام الاتصال مفعّلًا
القيمة الافتراضية: 1.
يحدد عدد مرات إعادة المحاولة لمجمع الاتصالات مع التبديل التلقائي عند التعطل.
القيم الممكنة:
- عدد صحيح موجب.
- 0 — لا توجد أي محاولات إعادة لمجمع الاتصالات مع التبديل التلقائي عند التعطل.
القيمة الافتراضية: 3.
حجم مجمع الاتصالات (إذا كانت جميع الاتصالات قيد الاستخدام، فسوف ينتظر الاستعلام حتى يتحرر أحد الاتصالات).
القيم الممكنة:
القيمة الافتراضية: 16.
مهلة الانتظار (بالثواني) حتى يتوفر اتصال متاح (إذا كان هناك بالفعل connection_pool_size من الاتصالات النشطة)، 0 - لا تنتظر.
القيم الممكنة:
القيمة الافتراضية: 5.
مهلة الاتصال (بالثواني).
القيم الممكنة:
القيمة الافتراضية: 10.
مهلة القراءة/الكتابة (بالثواني).
القيم الممكنة:
القيمة الافتراضية: 300.
يُمكّن الضغط لاتصال بروتوكول MySQL.
القيمة الافتراضية: false.
ينطبق هذا الإعداد على:
- محرك الجدول
MySQL؛
- محرك قاعدة البيانات
MySQL؛
- دالة الجدول
mysql؛
- المجموعات المسماة المستخدمة في تكاملات MySQL.
عند تمكينه، يطلب ClickHouse استخدام الضغط لهذا الاتصال.
مثال:
آخر تعديل في ١ يوليو ٢٠٢٦