الانتقال إلى المحتوى الرئيسي
ALTER TABLE [db.]table [ON CLUSTER cluster] APPLY PATCHES [IN PARTITION partition_id]
يبدأ هذا الأمر يدويًا التجسيد المادي لأجزاء التصحيح التي تُنشئها عبارات lightweight UPDATE. وهو يفرض تطبيق التصحيحات المعلّقة على أجزاء البيانات عبر إعادة كتابة الأعمدة المتأثرة فقط.
  • لا يعمل إلا مع الجداول من عائلة MergeTree (بما في ذلك الجداول المكرّرة).
  • هذه عملية mutation وتُنفَّذ بشكل غير متزامن في الخلفية.

متى تستخدم APPLY PATCHES

بشكل عام، لا ينبغي أن تحتاج إلى استخدام APPLY PATCHES
تُطبَّق أجزاء التصحيح عادةً تلقائيًا أثناء عمليات الدمج عند تفعيل الإعداد apply_patches_on_merge (وهو الإعداد الافتراضي). ومع ذلك، قد تحتاج إلى تشغيل تطبيق التصحيحات يدويًا في الحالات التالية:
  • لتقليل العبء الإضافي الناتج عن تطبيق التصحيحات أثناء استعلامات SELECT
  • لدمج عدة أجزاء تصحيح قبل أن تتراكم
  • لإعداد البيانات للنسخ الاحتياطي أو التصدير بعد تجسيد التصحيحات مسبقًا
  • عندما يكون apply_patches_on_merge معطّلًا وتريد التحكم في توقيت تطبيق التصحيحات

أمثلة

طبِّق جميع التصحيحات المعلّقة لجدول:
ALTER TABLE my_table APPLY PATCHES;
طبّق التصحيحات على تجزئة محددة فقط:
ALTER TABLE my_table APPLY PATCHES IN PARTITION '2024-01';
ادمجه مع العمليات الأخرى:
ALTER TABLE my_table APPLY PATCHES, UPDATE column = value WHERE condition;

مراقبة تطبيق التصحيح

يمكنك مراقبة تقدّم تطبيق التصحيح باستخدام جدول system.mutations:
SELECT * FROM system.mutations
WHERE table = 'my_table' AND command LIKE '%APPLY PATCHES%';

انظر أيضًا

آخر تعديل في ٢٩ يونيو ٢٠٢٦