Skip to main content

نظرة عامة

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

إعدادات overflow_mode

تحتوي معظم القيود أيضًا على إعداد overflow_mode، الذي يحدّد ما يحدث عند تجاوز الحدّ، ويمكن أن يأخذ إحدى القيمتين التاليتين:
  • throw: إثارة استثناء (افتراضيًا).
  • break: إيقاف تنفيذ الاستعلام وإرجاع النتيجة الجزئية، كما لو أن بيانات المصدر قد نفدت.
عند إيقاف استعلام بواسطة max_execution_time باستخدام break، لا يمكن لبعض العمليات إرجاع نتيجة جزئية بأمان، لذا تتوقف دون إنتاج أي نتيجة بدلًا من إنتاج نتيجة أصغر. تتوقف الدالة التي تحسب قيمة واحدة دون إنتاج تلك القيمة؛ ويعتمد وصول التوقف إلى العميل أيضًا على شكل خطأ TIMEOUT_EXCEEDED، أو على شكل نتيجة مفقودة فقط، على موضع مقاطعة الاستعلام. لا يغيّر انتهاء المهلة عملية تعديل غير مكتملة لجدول Memory الجدولَ، وتُبلّغ عن TIMEOUT_EXCEEDED. قد تُبلّغ عملية INSERT عن QUERY_WAS_CANCELLED. بعض العمليات التي تنتظر نسخًا متماثلة أخرى أو عملًا في الخلفية لا تتوقف عند max_execution_time على الإطلاق: تظل كتابة النصاب في الانتظار حتى استيفاء النصاب، أو تُبلّغ عن UNKNOWN_STATUS_OF_INSERT إذا انقضت insert_quorum_timeout أولًا.

إعدادات group_by_overflow_mode

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

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

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

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

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

max_pipeline_depth

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