الانتقال إلى المحتوى الرئيسي
إذا كنت تبحث عن تفاصيل حول استخدام TTL لإدارة البيانات القديمة، فاطّلع على دليل المستخدم إدارة البيانات باستخدام TTL. توضّح الوثائق أدناه كيفية تعديل قاعدة TTL حالية أو إزالتها.

تعديل TTL

يمكنك تغيير TTL على مستوى الجدول باستخدام طلب بالصيغة التالية:
ALTER TABLE [db.]table_name [ON CLUSTER cluster] MODIFY TTL ttl_expression;

إزالة خاصية TTL

يمكن إزالة خاصية TTL من الجدول باستخدام الاستعلام التالي:
ALTER TABLE [db.]table_name [ON CLUSTER cluster] REMOVE TTL
مثال لننظر إلى الجدول ذي TTL على مستوى الجدول:
CREATE TABLE table_with_ttl
(
    event_time DateTime,
    UserID UInt64,
    Comment String
)
ENGINE MergeTree()
ORDER BY tuple()
TTL event_time + INTERVAL 3 MONTH
SETTINGS min_bytes_for_wide_part = 0;

INSERT INTO table_with_ttl VALUES (now(), 1, 'username1');

INSERT INTO table_with_ttl VALUES (now() - INTERVAL 4 MONTH, 2, 'username2');
نفّذ OPTIMIZE لفرض تطبيق تنظيف TTL:
OPTIMIZE TABLE table_with_ttl FINAL;
SELECT * FROM table_with_ttl FORMAT PrettyCompact;
تم حذف الصف الثاني من الجدول.
┌─────────event_time────┬──UserID─┬─────Comment──┐
│   2020-12-11 12:44:57 │       1 │    username1 │
└───────────────────────┴─────────┴──────────────┘
الآن احذف TTL من الجدول باستخدام الاستعلام التالي:
ALTER TABLE table_with_ttl REMOVE TTL;
أعد إدراج الصف المحذوف ونفّذ تنظيف TTL قسرًا مرة أخرى باستخدام OPTIMIZE:
INSERT INTO table_with_ttl VALUES (now() - INTERVAL 4 MONTH, 2, 'username2');
OPTIMIZE TABLE table_with_ttl FINAL;
SELECT * FROM table_with_ttl FORMAT PrettyCompact;
لم يعد TTL موجودًا، لذا لا يُحذَف الصف الثاني:
┌─────────event_time────┬──UserID─┬─────Comment──┐
│   2020-12-11 12:44:57 │       1 │    username1 │
│   2020-08-11 12:44:57 │       2 │    username2 │
└───────────────────────┴─────────┴──────────────┘
راجع أيضًا
آخر تعديل في ٢٩ يونيو ٢٠٢٦