الانتقال إلى المحتوى الرئيسي
يوجد نوعان من عبارات KILL: أحدهما لإنهاء استعلام والآخر لإنهاء mutation

KILL QUERY

تُستخدَم لإنهاء الاستعلامات الجارية حاليًا قسرًا. تُحدَّد الاستعلامات المطلوب إنهاؤها من جدول system.processes باستخدام المعايير المحددة في عبارة WHERE ضمن استعلام KILL. أمثلة: أولًا، ستحتاج إلى الحصول على قائمة الاستعلامات غير المكتملة. يعرض استعلام SQL هذا هذه القائمة مرتبةً حسب الأطول تشغيلًا: قائمة من عقدة ClickHouse واحدة:
قائمة من عنقود ClickHouse:
أنهِ الاستعلام:
إذا كنت تُنهي استعلامًا في ClickHouse Cloud أو في عنقود مُدار ذاتيًا، فتأكّد من استخدام الخيار ON CLUSTER [cluster-name] لضمان إنهاء الاستعلام على جميع النُسخ المتماثلة
لا يمكن للمستخدمين للقراءة فقط إيقاف سوى استعلاماتهم الخاصة. بشكل افتراضي، يُستخدَم الإصدار غير المتزامن من الاستعلامات (ASYNC)، وهو لا ينتظر تأكيدًا على توقّف الاستعلامات. ينتظر الإصدار المتزامن (SYNC) حتى تتوقف جميع الاستعلامات، ويعرض معلومات عن كل عملية عند توقفها. تتضمن الاستجابة العمود kill_status، والذي يمكن أن يأخذ القيم التالية:
  1. finished – تم إنهاء الاستعلام بنجاح.
  2. waiting – جارٍ انتظار انتهاء الاستعلام بعد إرسال إشارة إليه بإنهائه.
  3. تشرح القيم الأخرى سبب تعذّر إيقاف الاستعلام.
لا يتحقق الاستعلام الاختباري (TEST) إلا من صلاحيات المستخدم ويعرض قائمة بالاستعلامات المطلوب إيقافها.

KILL MUTATION

غالبًا ما يشير وجود عمليات mutation تستغرق وقتًا طويلًا أو عمليات mutation غير مكتملة إلى أن خدمة ClickHouse لا تعمل بكفاءة. وقد تتسبب الطبيعة غير المتزامنة لهذه عمليات mutation في استهلاكها جميع الموارد المتاحة على النظام. وقد تحتاج إلى أحد الخيارين التاليين:
  • إيقاف جميع عمليات mutation الجديدة وعمليات INSERT وSELECT مؤقتًا، وترك قائمة انتظار عمليات mutation تكتمل.
  • أو إنهاء بعض هذه عمليات mutation يدويًا بإرسال أمر KILL.
يحاول إلغاء عمليات mutations الجارية حاليًا وإزالتها. تُحدَّد عمليات mutations المطلوب إلغاؤها من جدول system.mutations باستخدام عامل التصفية المحدد في عبارة WHERE ضمن استعلام KILL. استعلام الاختبار (TEST) يتحقق فقط من صلاحيات المستخدم ويعرض قائمة بعمليات mutations التي سيتم إيقافها. أمثلة: الحصول على count() لعدد عمليات mutations غير المكتملة: عدد عمليات mutations من عقدة ClickHouse واحدة:
عدد عمليات mutation في عنقود ClickHouse من النُسخ المتماثلة:
استعلم عن قائمة عمليات mutation غير المكتملة: قائمة عمليات mutation من عقدة ClickHouse واحدة:
قائمة عمليات mutation في عنقود ClickHouse:
أوقِف عمليات الـ mutation عند الحاجة:
يكون هذا الاستعلام مفيدًا عندما تكون إحدى عمليات mutation عالقة ولا يمكنها الاكتمال (على سبيل المثال، إذا كانت إحدى الدوال في استعلام mutation تُطلق استثناءً عند تطبيقها على البيانات الموجودة في الجدول). لا يُتراجع عن التغييرات التي أجرتها mutation بالفعل.
لا يعني العمود is_killed=1 (في ClickHouse Cloud فقط) في جدول system.mutations بالضرورة أن mutation قد انتهت بالكامل. فقد تظل mutation في حالة يكون فيها is_killed=1 وis_done=0 لفترة طويلة. ويمكن أن يحدث هذا إذا كانت mutation أخرى طويلة التشغيل تحجب mutation التي تم إيقافها. هذا وضع طبيعي.
آخر تعديل في ٢٥ يونيو ٢٠٢٦