الخلاصة

  • للجداول الدائمة في Snowflake فترة Fail-safe ثابتة من سبعة أيام تبدأ بعد انتهاء Time Travel، ويستمر خلالها احتساب كلفة التخزين التاريخي.
  • تقصير الاحتفاظ، واختيار جداول transient، وإنهاء النسخ المستنسخة تعالج أسباباً مختلفة لبقاء البيانات. تتبع الفاتورة البايتات المحتفظ بها، حتى بعد حذف الجدول.

يملك العميل في Snowflake سلطة حذف الجدول الدائم، لكنه لا يملك تقصير الأيام السبعة التالية لفترة Time Travel. تلك مدة Fail-safe التي يحددها المورّد. يختفي الجدول من العمل المعتاد، وتبقى بيانات محفوظة يمكن أن تحاول Snowflake استعادتها، مع استمرار كلفة التخزين.

يدفع العميل مقابل إبقاء فرصة الاستعادة متاحة، إذ تحتفظ Snowflake بالبيانات اللازمة لتنفيذها. لذلك قد ينهي فريق الهندسة التنظيف بينما تستمر كلفة بعض البيانات المحفوظة. ولتحديد الوفر، يحتاج مسؤول الميزانية إلى معرفة حجم التخزين الذي انتهت الحاجة إلى الاحتفاظ به، إلى جانب عدد الجداول التي حُذفت.

توضح وثيقة كلفة التخزين أن الحساب يشمل البيانات النشطة والسجل المحفوظ في Time Travel وFail-safe. وقد تواصل النسخ المستنسخة استخدام بيانات حُذفت من الجدول الأصلي؛ فتظل تلك البيانات محفوظة وتُحتسب كلفة تخزينها. وتعتمد Snowflake في حساب حجم الجداول على البيانات بعد ضغطها.

سبعة أيام يتولى المورّد خلالها الاستعادة

تصف وثيقة Fail-safe فترة غير قابلة للضبط مدتها سبعة أيام، تبدأ بعد انتهاء الاحتفاظ في Time Travel. يصبح طلب الاستعادة عبر دعم Snowflake، بعد أن يغلق باب الاستخدام العادي لذلك السجل التاريخي أمام العميل.

تُقدَّم الاستعادة على أساس بذل أفضل جهد في حالات الأعطال التشغيلية الجسيمة، وبعد تجربة خيارات الاستعادة الأخرى. وقد تستغرق ساعات إلى أيام. وتستخدم العملية موارد حوسبة بلا خوادم تُحتسب تكلفتها أيضاً. حفظ البيانات لتبقى فرصة إنقاذها متاحة، وتنفيذ عملية الإنقاذ، نشاطان لكل منهما كلفة.

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

يعرض جدول رسوم البيانات التاريخية الترتيب الأساسي التالي:

نوع الجدول Time Travel Fail-safe بعده
دائم في Standard Edition صفر أو يوم واحد سبعة أيام
دائم في Enterprise Edition والإصدارات الأعلى من صفر إلى 90 يوماً سبعة أيام
transient صفر أو يوم واحد لا توجد فترة
temporary صفر أو يوم واحد، حتى الحذف أو انتهاء الجلسة لا توجد فترة

عند اختيار صفر لجدول دائم، تبقى مرحلة Fail-safe التالية. ويمكن لاستعلام طويل في Time Travel تأخير الانتقال إليها إلى أن يكتمل. كما تنفذ عمليات خلفية نقل البيانات بين المراحل. يحدد الجدول تسلسل الحماية، فيما تؤثر العمليات والمراجع الباقية في موعد انتهاء الاحتفاظ فعلياً.

تخفيض المدة ينقل جزءاً من السجل

تورد تعليمات Time Travel مثالاً واضحاً: خفض مدة جدول من عشرة أيام إلى يوم واحد يبقي أحدث يوم في Time Travel، وينقل تاريخ الأيام من الثاني إلى العاشر إلى Fail-safe. يصغر المجال الذي يستطيع العميل استخدامه مباشرة، بينما تكمل البيانات الأقدم مرحلة الحماية التالية.

ولترتيب الخطوات أثر آخر. في مثال رسمي، يرث جدول مدة 90 يوماً من مخططه ثم يُحذف. إذا خُفضت مدة المخطط لاحقاً إلى يوم، يحتفظ الجدول المحذوف بمدة التسعين يوماً. ولتغيير مدة ذلك الكائن، توضح الوثيقة ضرورة إعادته أولاً ثم تعديل احتفاظه.

السياسة الجديدة تصل إلى الكائنات النشطة داخل المخطط. أما الحذف السابق فيحتفظ بشروطه. وقد يفرض مسؤول الحساب حداً أدنى يرفع المدة الفعلية فوق الإعداد المحلي، فتحتاج قيمة الصفر إلى قراءة مع القواعد الأعلى التي تحكم الكائن.

يختار المسؤول عن إنشاء الجدول إعدادات الاحتفاظ، وقد يتولى فريق آخر حذفه عند انتهاء المشروع. عندئذ يتحمل الفريق اللاحق الكلفة الناتجة عن الإعدادات السابقة. لذلك يستحق قرار الحماية مراجعة مالية منذ إنشاء الجدول.

النسخة المستنسخة تحتفظ بمرجعها

تشرح اعتبارات التخزين أن الاستنساخ بلا نسخ يشارك الأقسام الدقيقة الموجودة عند إنشائه. وتنتج التعديلات اللاحقة أقساماً جديدة يملكها كل كائن، مع دورة حياة مستقلة. تستطيع نسخة اختبار أن تواصل الإشارة إلى بيانات لم يعد الجدول الأصلي يستخدمها.

ويُظهر عرض TABLE_STORAGE_METRICS حجم التخزين في أربع فئات رئيسية: البيانات النشطة، وسجل Time Travel، وبيانات Fail-safe، والبيانات المحفوظة للنسخ المستنسخة. وتشمل الفئة الأخيرة أيضاً بيانات تحتفظ بها نسخ احتياطية WORM. ولهذا يلزم فحص النسخ المستنسخة والاحتياطية عند البحث عن سبب استمرار الاحتفاظ.

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

قد تتأخر بيانات Account Usage حتى 90 دقيقة. ويمكن أن يبقى صف قديم مع وصول العدادات الرئيسية الأربعة إلى صفر، من دون رسوم تخزين لذلك الصف. وحساب الكلفة المتبقية لحساب محدد يحتاج حجم بايتاته المضغوطة المحتفظ بها، وسياسة الاحتفاظ الفعلية وسعره المطبق.

الحماية الأقصر تحمل كلفة إعادة البناء

تتيح جداول transient صفراً أو يوماً من Time Travel من دون Fail-safe. تظل بياناتها النشطة مدفوعة ما دام الجدول موجوداً. حد اليوم الواحد يتعلق بالحماية التاريخية الإضافية؛ الجدول الذي يستمر أسابيع يستهلك التخزين النشط طوال تلك الأسابيع.

قد يناسب ذلك بيانات العمل القابلة للتوليد من جديد. بعد انقضاء سجلها التاريخي، لا تستطيع Snowflake استعادتها بواسطة Fail-safe. ينتقل جزء من الحساب الاقتصادي إلى وقت إعادة البناء وموارده وتعطل العمل أثناءه. وإذا كان إنشاء البيانات من جديد مرهقاً، فقد يكون شراء الحماية أقل كلفة إجمالية.

أما جداول temporary فينتهي سجلها عند حذف الجدول أو انتهاء الجلسة. قطع الاتصال وحده لا ينهي الجلسة. فإذا أغلق المستخدم نافذة تطبيق الاتصال، فقد تبقى الجلسة قائمة وتظل بيانات الجدول محفوظة فيها.

تتيح هذه الخيارات للعميل اختيار مدة الحماية وعمر النسخ التي يحتفظ بها. وتحتاج الميزانية إلى متابعة كلفة تلك البيانات بعد الحذف، حتى تكتمل فترات الاحتفاظ وتنتهي المراجع التي تستدعي بقاءها.