في ClickHouse Cloud، إذا كانت خدمتك قد أُنشئت بإصدار أقدم من 25.4، فستحتاج إلى ضبط التوافق على 25.4 على الأقل باستخدام
SET compatibility=25.4.إنشاء جدول
معلمات المحرك
join_strictness
join_strictness – درجة صرامة JOIN.
join_type
join_type – نوع JOIN.
الأعمدة المفتاحية
k1[, k2, ...] – الأعمدة المفتاحية من عبارة USING التي تُجرى بها عملية JOIN.
أدخِل المعلَمين join_strictness وjoin_type من دون علامات اقتباس، على سبيل المثال: Join(ANY, LEFT, col1). يجب أن يتطابقا مع عملية JOIN التي سيُستخدم الجدول فيها. إذا لم تتطابق المعلَمات، فلن يُصدر ClickHouse استثناءً وقد يعيد بيانات غير صحيحة.
تفاصيل وتوصيات
تخزين البيانات
توجد بيانات جدولJoin دائمًا في RAM. عند إدراج صفوف في جدول، يكتب ClickHouse كتل البيانات إلى الدليل على القرص لكي يمكن استعادتها عند إعادة تشغيل الخادم.
إذا أُعيد تشغيل الخادم بصورة غير سليمة، فقد تُفقد كتلة البيانات الموجودة على القرص أو تتلف. في هذه الحالة، قد تحتاج إلى حذف الملف الذي يحتوي على البيانات التالفة يدويًا.
اختيار البيانات وإدراجها
يمكنك استخدام استعلاماتINSERT لإضافة البيانات إلى جداول المحرك Join. إذا أُنشئ الجدول بدرجة الصرامة ANY، فسيتم تجاهل البيانات ذات المفاتيح المكررة. أما مع درجة الصرامة ALL، فتُضاف جميع الصفوف.
حالات الاستخدام الرئيسية لجداول المحرك Join هي كما يلي:
- ضع الجدول في الطرف الأيمن ضمن عبارة
JOIN. - استدعِ الدالة joinGet، التي تتيح لك استخراج البيانات من الجدول بالطريقة نفسها التي تستخرج بها البيانات من القاموس.
حذف البيانات
تُنفَّذ استعلاماتALTER DELETE الخاصة بجداول المحرك Join على شكل عمليات تعديل. وتقرأ عملية التعديل DELETE البيانات المُصفّاة وتُعيد كتابة البيانات في الذاكرة وعلى القرص.
القيود والإعدادات
عند إنشاء جدول، تُطبَّق الإعدادات التالية:join_use_nulls
join_use_nulls
max_rows_in_join
max_rows_in_join
max_bytes_in_join
max_bytes_in_join
join_overflow_mode
join_overflow_mode
join_any_take_last_row
join_any_take_last_row
join_use_nulls
الاستمرارية
تعطّل الاستمرارية لمحركي الجدول Join وSet. تقلّل من عبء عمليات الإدخال/الإخراج. وهي مناسبة للسيناريوهات التي تركّز على الأداء ولا تتطلب الاستمرارية. القيم الممكنة:- 1 — مُمكّن.
- 0 — معطّل.
1.
لا يمكن استخدام الجداول ذات المحرك Join في عمليات GLOBAL JOIN.
تُصفّي سياسة الصفوف المفروضة على جدول ذي محرك Join نتائجَ استعلام SELECT العادي منه، أما JOIN أو joinGet فيقرآن جدول التجزئة المُعَدّ مسبقًا كما هو دون أن يتمكّنا من تصفية صفوفه، ولذلك تفشل هذه الاستعلامات بالخطأ ACCESS_DENIED ما دامت هناك سياسة مطبّقة على الجدول.
يسمح المحرك Join بتحديد الإعداد join_use_nulls في عبارة CREATE TABLE. ويجب أن تكون قيمة join_use_nulls في استعلام SELECT هي نفسها.
أمثلة الاستخدام
إنشاء الجدول في الجانب الأيسر:Join للجانب الأيمن:
Join مع تحديد قيمة مفتاح الربط:
Join: