الانتقال إلى المحتوى الرئيسي
الاستعلام في ClickHouse Cloudتُخزَّن بيانات جدول النظام هذا محليًا على كل عقدة في ClickHouse Cloud. لذلك، يتطلب الحصول على رؤية كاملة لجميع البيانات استخدام الدالة clusterAllReplicas. راجع هنا لمزيد من التفاصيل.

الوصف

يتضمن معلومات عن أحدث المهام غير المتزامنة وحالتها (مثل مهام تحميل الجداول). يحتوي الجدول على صف لكل مهمة. توجد أداة لعرض المعلومات الواردة في هذا الجدول بصريًا: utils/async_loader_graph.

الأعمدة

  • job (String) — اسم المهمة (قد لا يكون فريدًا).
  • job_id (UInt64) — المعرّف الفريد للمهمة.
  • dependencies (Array(UInt64)) — قائمة بمعرّفات المهام التي يجب إكمالها قبل هذه المهمة.
  • dependencies_left (UInt64) — العدد الحالي للتبعيات المتبقي إكمالها.
  • status (Enum8(‘PENDING’ = 0, ‘OK’ = 1, ‘FAILED’ = 2, ‘CANCELED’ = 3)) — حالة التحميل الحالية للمهمة: PENDING: لم تبدأ مهمة التحميل بعد. OK: نُفِّذت مهمة التحميل بنجاح. FAILED: نُفِّذت مهمة التحميل وأخفقت. CANCELED: لن تُنفَّذ مهمة التحميل بسبب الإزالة أو فشل إحدى التبعيات.
  • is_executing (UInt8) — تُنفَّذ المهمة حاليًا بواسطة عامل.
  • is_blocked (UInt8) — تنتظر المهمة اكتمال تبعياتها.
  • is_ready (UInt8) — المهمة جاهزة للتنفيذ وتنتظر عاملًا.
  • elapsed (Float64) — عدد الثواني المنقضية منذ بدء التنفيذ. تكون القيمة صفرًا إذا لم تبدأ المهمة. وتمثل إجمالي وقت التنفيذ إذا انتهت المهمة.
  • pool_id (UInt64) — معرّف المجمّع المعيَّن حاليًا للمهمة.
  • pool (String) — اسم المجمّع pool_id.
  • priority (Int64) — أولوية المجمّع pool_id.
  • execution_pool_id (UInt64) — معرّف المجمّع الذي تُنفَّذ فيه المهمة. ويكون في البداية مساويًا للمجمّع المعيَّن قبل بدء التنفيذ.
  • execution_pool (String) — اسم المجمّع execution_pool_id.
  • execution_priority (Int64) — أولوية المجمّع execution_pool_id.
  • ready_seqno (Nullable(UInt64)) — ليس NULL للمهام الجاهزة. يسحب العامل المهمة التالية المطلوب تنفيذها من قائمة الانتظار الجاهزة الخاصة بمجمّعه. وإذا كانت هناك عدة مهام جاهزة، فتُختار المهمة ذات أقل قيمة في ready_seqno.
  • waiters (UInt64) — عدد سلاسل التنفيذ التي تنتظر هذه المهمة.
  • exception (Nullable(String)) — ليس NULL للمهام الفاشلة والملغاة. يحتوي على رسالة الخطأ التي أُثيرت أثناء تنفيذ الاستعلام أو الخطأ الذي أدى إلى إلغاء هذه المهمة، إلى جانب سلسلة فشل التبعيات الخاصة بأسماء المهام.
  • schedule_time (DateTime64(6)) — الوقت الذي أُنشئت فيه المهمة وجرت جدولتها للتنفيذ (عادةً مع جميع تبعياتها).
  • enqueue_time (Nullable(DateTime64(6))) — الوقت الذي أصبحت فيه المهمة جاهزة وأُدرجت في قائمة الانتظار الجاهزة الخاصة بمجمّعها. تكون Null إذا لم تكن المهمة جاهزة بعد.
  • start_time (Nullable(DateTime64(6))) — الوقت الذي يزيل فيه العامل المهمة من قائمة الانتظار الجاهزة ويبدأ تنفيذها. تكون Null إذا لم تبدأ المهمة بعد.
  • finish_time (Nullable(DateTime64(6))) — الوقت الذي ينتهي فيه تنفيذ المهمة. تكون Null إذا لم تنتهِ المهمة بعد.
قد تكون المهمة المعلّقة في إحدى الحالات التالية:
  • is_executing (UInt8) - تُنفَّذ المهمة حاليًا بواسطة عامل.
  • is_blocked (UInt8) - تنتظر المهمة اكتمال تبعياتها.
  • is_ready (UInt8) - المهمة جاهزة للتنفيذ وتنتظر عاملًا.
  • elapsed (Float64) - عدد الثواني المنقضية منذ بدء التنفيذ. تكون القيمة صفرًا إذا لم تكن المهمة قد بدأت. وتمثل إجمالي وقت التنفيذ إذا كانت المهمة قد انتهت.
ترتبط كل مهمة بـ pool خاص بها وتبدأ في هذا pool. لكل pool أولوية ثابتة وحدّ أقصى متغيّر لعدد workers. تُشغَّل أولًا المهام ذات الأولوية الأعلى (أي ذات القيمة الأقل لـ priority). لا تبدأ أي مهمة ذات أولوية أقل ما دام هناك مهمة واحدة على الأقل ذات أولوية أعلى جاهزة أو قيد التنفيذ. يمكن رفع أولوية المهمة (لكن لا يمكن خفضها) عبر منحها أولوية أعلى. على سبيل المثال، تُمنَح الأولوية لمهام تحميل table وبدء التشغيل إذا كان query وارد يتطلب هذا table. ويمكن منح أولوية أعلى لمهمة أثناء تنفيذها، لكن لا تُنقل المهمة من execution_pool الخاص بها إلى pool المعيَّن حديثًا. تستخدم المهمة pool عند إنشاء مهام جديدة لتجنّب انعكاس الأولوية. المهام التي بدأت بالفعل لا تُقاطَع بسبب مهام ذات أولوية أعلى، وتستمر دائمًا حتى الاكتمال بعد بدئها.
  • pool_id (UInt64) - معرّف pool المعيَّن حاليًا للمهمة.
  • pool (String) - اسم pool ذي المعرّف pool_id.
  • priority (Int64) - أولوية pool ذي المعرّف pool_id.
  • execution_pool_id (UInt64) - معرّف pool الذي تُنفَّذ فيه المهمة. ويساوي pool المعيَّن مبدئيًا قبل بدء التنفيذ.
  • execution_pool (String) - اسم pool ذي المعرّف execution_pool_id.
  • execution_priority (Int64) - أولوية pool ذي المعرّف execution_pool_id.
  • ready_seqno (Nullable(UInt64)) - تكون قيمته ليست NULL بالنسبة إلى ready jobs. يسحب worker المهمة التالية المطلوب تنفيذها من ready queue الخاصة بـ pool التابع له. وإذا وُجدت عدة ready jobs، فتُختار المهمة ذات القيمة الأصغر في ready_seqno.
  • waiters (UInt64) - عدد threads المنتظرة على هذه المهمة.
  • exception (Nullable(String)) - تكون قيمته ليست NULL بالنسبة إلى المهام الفاشلة والملغاة. يحتوي على رسالة error التي أُثيرت أثناء تنفيذ query أو error الذي أدى إلى إلغاء هذه المهمة، إلى جانب dependency failure chain الذي يبيّن أسماء المهام.
اللحظات الزمنية خلال lifetime المهمة:
  • schedule_time (DateTime64) - Time الذي أُنشئت فيه المهمة وجرت جدولتها للتنفيذ (عادةً مع جميع تبعياتها).
  • enqueue_time (Nullable(DateTime64)) - Time الذي أصبحت فيه المهمة جاهزة وأُضيفت إلى ready queue الخاصة بـ pool التابع لها. تكون NULL إذا لم تكن المهمة جاهزة بعد.
  • start_time (Nullable(DateTime64)) - Time الذي يسحب فيه worker المهمة من ready queue ويبدأ تنفيذها. تكون NULL إذا لم تكن المهمة قد بدأت بعد.
  • finish_time (Nullable(DateTime64)) - Time الذي ينتهي فيه تنفيذ المهمة. تكون NULL إذا لم تكن المهمة قد انتهت بعد.

مثال

SELECT *
FROM system.asynchronous_loader
LIMIT 1
FORMAT Vertical
آخر تعديل في ٢٥ يونيو ٢٠٢٦