الانتقال إلى المحتوى الرئيسي

نظرة عامة

كجزء من الإعدادات، يوفّر ClickHouse إمكانية فرض قيود على تعقيد الاستعلامات. ويساعد ذلك على الحماية من الاستعلامات التي قد تستهلك الموارد بشكل كبير، مما يضمن تنفيذًا أكثر أمانًا وقابليةً للتنبؤ، خصوصًا عند استخدام واجهة المستخدم. تنطبق جميع القيود تقريبًا فقط على استعلامات SELECT، وفي معالجة الاستعلامات الموزعة، تُطبَّق القيود على كل خادم على حدة. يتحقق ClickHouse عمومًا من القيود فقط بعد اكتمال معالجة أجزاء البيانات، بدلًا من التحقق من القيود لكل صف. وقد يؤدي ذلك إلى حدوث حالة تُنتهك فيها القيود أثناء معالجة الجزء.

إعدادات overflow_mode

تحتوي معظم القيود أيضًا على إعداد overflow_mode، الذي يحدّد ما يحدث عند تجاوز الحدّ، ويمكن أن يأخذ إحدى القيمتين التاليتين:
  • throw: إثارة استثناء (افتراضيًا).
  • break: إيقاف تنفيذ الاستعلام وإرجاع النتيجة الجزئية، كما لو أن بيانات المصدر قد نفدت.

إعدادات group_by_overflow_mode

يتضمن إعداد group_by_overflow_mode أيضًا القيمة any:
  • any : واصِل التجميع للمفاتيح التي دخلت إلى المجموعة، ولكن لا تُضِف مفاتيح جديدة إلى المجموعة.

قائمة الإعدادات

تُستخدم الإعدادات التالية لفرض قيود على تعقيد الاستعلام.
يمكن أن تكون قيمة القيود المفروضة على “الحد الأقصى لكمية شيء ما” هي 0، ما يعني أنها “دون قيود”.

الإعدادات المتقادمة

الإعدادات التالية متقادمة

max_pipeline_depth

الحد الأقصى لعمق مسار المعالجة. وهو يقابل عدد التحويلات التي تمر بها كل كتلة بيانات أثناء معالجة الاستعلام. ويُحتسب ضمن حدود خادم واحد. وإذا زاد عمق مسار المعالجة عن ذلك، يتم رفع استثناء.
آخر تعديل في ٢ يوليو ٢٠٢٦