الانتقال إلى المحتوى الرئيسي
الإجابة المختصرة هي «نعم». يوفّر ClickHouse عدة آليات تتيح تحرير مساحة على القرص عبر إزالة البيانات القديمة. وكل آلية منها مخصّصة لسيناريوهات مختلفة.

TTL

يتيح ClickHouse حذف القيم تلقائيًا عند تحقق شرط معيّن. ويُضبط هذا الشرط كتعبير يعتمد على أي عمود، وغالبًا ما يكون مجرد فارق زمني ثابت لعمود طابع زمني. الميزة الأساسية لهذا النهج هي أنه لا يحتاج إلى أي نظام خارجي لتحفيزه؛ فبمجرد إعداد TTL، تتم إزالة البيانات تلقائيًا في الخلفية.
يمكن أيضًا استخدام TTL لنقل البيانات ليس فقط إلى /dev/null، بل أيضًا بين أنظمة تخزين مختلفة، مثل النقل من SSD إلى HDD.
مزيد من التفاصيل حول إعداد TTL.

DELETE FROM

يتيح DELETE FROM تشغيل استعلامات DELETE القياسية في ClickHouse. تُعلَّم الصفوف المستهدفة في شرط التصفية على أنها محذوفة، وتُستبعد من مجموعات النتائج المستقبلية. وتتم إزالة هذه الصفوف بشكل غير متزامن.
يتوفر DELETE FROM بشكل عام بدءًا من الإصدار 23.3 وما بعده. أما في الإصدارات الأقدم، فهو تجريبي ويجب تمكينه باستخدام:
SET allow_experimental_lightweight_delete = true;

ALTER DELETE

يزيل ALTER DELETE الصفوف باستخدام عمليات مجمّعة غير متزامنة. وعلى خلاف DELETE FROM، فإن الاستعلامات التي تُنفَّذ بعد ALTER DELETE وقبل اكتمال العمليات المجمّعة ستظل تتضمن الصفوف المستهدفة بالحذف. لمزيد من التفاصيل، راجع وثائق ALTER DELETE. يمكن إصدار ALTER DELETE لإزالة البيانات القديمة بمرونة. وإذا كنت بحاجة إلى القيام بذلك بانتظام، فسيكون العيب الرئيسي هو الحاجة إلى نظام خارجي لإرسال الاستعلام. وهناك أيضًا بعض الاعتبارات المتعلقة بالأداء، لأن عمليات mutation تعيد كتابة الأجزاء كاملةً حتى إذا كان المطلوب حذف صف واحد فقط. هذا هو النهج الأكثر شيوعًا لجعل نظامك المستند إلى ClickHouse متوافقًا مع GDPR. مزيد من التفاصيل حول mutations.

حذف قسم

يوفّر ALTER TABLE ... DROP PARTITION طريقة فعّالة من حيث التكلفة لحذف قسم بأكمله. ورغم أنه ليس مرنًا جدًا، ويتطلّب إعداد مخطط تقسيم مناسب عند إنشاء الجدول، فإنه لا يزال يغطي معظم الحالات الشائعة. وكما هو الحال مع mutations، يجب تنفيذ هذا الإجراء من نظام خارجي عند الاستخدام المنتظم. مزيد من التفاصيل حول إدارة الأقسام.

TRUNCATE

يُعد حذف جميع البيانات من جدول إجراءً جذريًا إلى حدٍّ ما، لكنه قد يكون في بعض الحالات هو المطلوب تمامًا. مزيد من التفاصيل حول إفراغ الجدول.
آخر تعديل في ٢٩ يونيو ٢٠٢٦