سياسات الضغط والاحتفاظ
اضغط القطع القديمة باستخدام الضغط العمودي في TimescaleDB، واحذف القطع المنتهية تلقائيًا
سياسات الضغط والاحتفاظ درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.
لماذا الضغط؟
تتميز بيانات السلاسل الزمنية بقابليتها العالية للضغط. يضغط TimescaleDB الأجزاء بصيغة عمودية، وغالباً ما يحقق نسب ضغط تبلغ 10–20 ضعفاً.
ضغط جدول فائق الحجم
اضبط الأعمدة التي ستُستخدم للتقسيم وترتيب البيانات المضغوطة:
ALTER TABLE metrics SET (
timescaledb.compress,
timescaledb.compress_segmentby = 'device_id',
timescaledb.compress_orderby = 'ts DESC'
);سياسة الضغط
أتمت ضغط الأجزاء القديمة:
SELECT add_compression_policy('metrics', INTERVAL '7 days');
-- Chunks older than 7 days get compressed automatically.أداء الاستعلام على البيانات المضغوطة
تبقى عمليات القراءة على الأجزاء المضغوطة سريعة — إذ يدفع TimescaleDB المرشحات إلى مخزن الأعمدة. أما عمليات الكتابة والتحديث على الأجزاء المضغوطة فهي محدودة (وتقتصر غالباً على الإلحاق).
سياسة الاحتفاظ
احذف البيانات الأقدم من N من الفواصل الزمنية — سريع (حذف الجزء) مقارنةً بالأسلوب البطيء (DELETE):
SELECT add_retention_policy('metrics', INTERVAL '90 days');
-- Chunks older than 90 days are dropped automatically.عمليات الأجزاء اليدوية
استكشف الأجزاء:
SELECT * FROM chunks_detailed_size('metrics');
SELECT show_chunks('metrics', older_than => INTERVAL '90 days');
SELECT drop_chunks('metrics', older_than => INTERVAL '90 days');التقسيم إلى مستويات تخزين
انقل الأجزاء القديمة إلى قرص بطيء بتغيير مساحة الجداول لكل جزء. وبدمج ذلك مع الضغط، يمكنك الاحتفاظ ببيانات سنوات بتكلفة منخفضة.
نسب الضغط عملياً
النسب المعتادة لبيانات المستشعرات:
- المقاييس الرقمية: توفير في المساحة بنسبة 90–95% أو أكثر
- البيانات الفئوية: 70–80%
- السلاسل النصية/JSON: يعتمد على المحتوى
فك الضغط لإجراء التحديثات
يمكنك فك ضغط جزء لتحديث البيانات القديمة، ثم إعادة ضغطه:
SELECT decompress_chunk(c) FROM show_chunks('metrics', newer_than => INTERVAL '60 days') c;
-- Update / fix
SELECT compress_chunk(c) FROM show_chunks('metrics', newer_than => INTERVAL '60 days') c;البدائل في Postgres العادي
من دون TimescaleDB، يمكنك تنفيذ حل خاص بك باستخدام الأقسام:
DROP TABLE events_2022; -- retention (fast)
-- No native columnar compression in vanilla Postgres for time-series.الدمج مع التجميعات المستمرة
نمط شائع: احتفظ بالبيانات الخام لمدة 30 يوماً، والتجميعات الساعية لمدة سنة، والتجميعات اليومية إلى الأبد. ويُضغط كل مستوى أو يُحتفظ به وفقاً لذلك.
المراقبة
تابع الحجم المضغوط ونسبة الضغط:
SELECT * FROM hypertable_compression_stats('metrics');مراجعة
يحوّل الضغط والاحتفاظ بالبيانات Postgres إلى مخزن كفء لبيانات السلاسل الزمنية.
- اضغط الأجزاء القديمة بنسبة 10–20 ضعفاً
- يحذف الاحتفاظ بالأجزاء فوراً
- قسّم البيانات الخام والساعية واليومية إلى مستويات ذات مدد احتفاظ مختلفة
- فك الضغط لإكمال البيانات التاريخية عند الحاجة
تحقق سريع
تريد الاحتفاظ بمقاييس خام لمدة 7 أيام وحذف كل ما هو أقدم تلقائياً. ما الطريقة المتاحة في TimescaleDB؟
تعلم SQL مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 46
- الدروس
- 183
الأسئلة الشائعة
هل درس «سياسات الضغط والاحتفاظ» مجاني؟
نعم — نص درس «سياسات الضغط والاحتفاظ» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.
ماذا ستتعلم في «سياسات الضغط والاحتفاظ»؟
اضغط القطع القديمة باستخدام الضغط العمودي في TimescaleDB، واحذف القطع المنتهية تلقائيًا تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟
لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «سياسات الضغط والاحتفاظ»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟
نعم. كل درس في SQL Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- جداول TimescaleDB فائقة التقسيم
- التجميعات المستمرة
- سياسات الضغط والاحتفاظ
- اختيار فهارس السلاسل الزمنية