مشاركة عبر


دعم الأرشفة في Azure Databricks

هام

هذه الميزة موجودة في المعاينة العامة ل Databricks Runtime 13.3 LTS وما فوق.

يقدم دعم الأرشفة في Azure Databricks مجموعة من القدرات التي تمكنك من استخدام نهج دورة الحياة المستندة إلى السحابة على تخزين الكائنات السحابية التي تحتوي على جداول دلتا.

هام

يحتوي Azure Databricks على دعم أرشفة لأرشيف Azure فقط. راجع مستندات Azure حول تحسين التكاليف باستخدام إدارة دورة الحياة.

لماذا يجب تمكين دعم الأرشفة؟

يسمح دعم الأرشفة فقط بالاستعلامات التي يمكن الرد عليها بشكل صحيح دون لمس الملفات المؤرشفة. تتضمن هذه الاستعلامات تلك التي إما:

  • الاستعلام عن بيانات التعريف فقط.
  • لديك عوامل تصفية لا تتطلب مسح أي ملفات مؤرشفة.

تفشل جميع الاستعلامات التي تتطلب بيانات في الملفات المؤرشفة.

هام

لا يقوم Azure Databricks بإرجاع نتائج الاستعلامات التي تتطلب ملفات مؤرشفة لإرجاع النتيجة الصحيحة.

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

لا يؤدي تمكين دعم الأرشفة لجدول في Azure Databricks إلى إنشاء نهج دورة الحياة المحددة لتخزين كائن السحابة أو تغييرها. للحصول على النتائج المرجوة، يجب أن يكون نهج دورة حياة السحابة delta.timeUntilArchived والإعداد متساويين.

الاستعلامات المحسنة للبيانات المؤرشفة

يحسن دعم الأرشفة في Azure Databricks الاستعلامات التالية مقابل جداول Delta:

الاستعلام سلوك جديد
SELECT * FROM <table_name> LIMIT <limit> [WHERE <partition_predicate>] تجاهل الملفات المؤرشفة تلقائيا وإرجاع النتائج من البيانات في طبقة تخزين غير مؤرشفة.
أوامر صيانة Delta Lake: OPTIMIZE، ZORDER، ، ANALYZEPURGE تجاهل الملفات المؤرشفة تلقائيا وتشغيل الصيانة على بقية الجدول.
عبارات DDL وDML التي تستبدل البيانات أو تحذف البيانات، بما في ذلك ما يلي: REPLACE TABLE، INSERT OVERWRITE، ، TRUNCATE TABLEDROP TABLE وضع علامة على إدخالات سجل المعاملات لملفات البيانات المؤرشفة الهدف على أنها محذوفة.
FSCK REPAIR TABLE تجاهل الملفات المؤرشفة وتحقق فقط من الملفات التي لم تصل إلى نهج دورة الحياة.

راجع القيود.

رسائل الخطأ والفشل المبكر

بالنسبة للاستعلامات التي يجب مسح الملفات المؤرشفة ضوئيا لإنشاء نتائج صحيحة، يضمن تكوين دعم الأرشفة ل Delta Lake ما يلي:

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

يمكن للمستخدمين إنشاء تقرير بالملفات التي يجب استعادتها باستخدام بناء الجملة SHOW ARCHIVED FILES . راجع إظهار الملفات المؤرشفة.

هام

إذا تلقيت الخطأ Not enough files to satisfy LIMIT، فلن يحتوي الجدول على صفوف بيانات كافية في ملفات غير أرشفة لتلبية عدد السجلات المحددة بواسطة LIMIT. LIMIT خفض عبارة للعثور على صفوف غير أرشفة كافية لتلبية المحدد LIMIT.

تمكين دعم الأرشفة

يمكنك تمكين دعم الأرشفة في Azure Databricks لجداول دلتا عن طريق تحديد الفاصل الزمني للأرشفة الذي تم تكوينه يدويا في نهج إدارة دورة حياة السحابة الأساسية، كما هو الحال في بناء جملة المثال التالي:

ALTER TABLE <table_name> SET TBLPROPERTIES(delta.timeUntilArchived = 'X days');

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

لا يتفاعل Delta Lake مباشرة مع نهج إدارة دورة الحياة المكونة في حساب السحابة الخاص بك. إذا قمت بتحديث النهج في حساب السحابة الخاص بك، يجب تحديث النهج على جدول Delta. راجع تغيير قاعدة الانتقال لإدارة دورة الحياة.

هام

يعتمد دعم الأرشفة بالكامل على بيئات حساب Azure Databricks المتوافقة ويعمل فقط لجداول Delta. لا يؤدي تكوين دعم الأرشفة إلى تغيير السلوك أو التوافق أو الدعم في عملاء OSS Delta Lake أو Databricks Runtime 12.2 LTS وما دونه.

إظهار الملفات المؤرشفة

لتعريف الملفات التي يجب استعادتها لإكمال استعلام معين، استخدم SHOW ARCHIVED FILES، كما في المثال التالي:

SHOW ARCHIVED FILES FOR table_name [ WHERE predicate ];

ترجع هذه العملية معرفات URI للملفات المؤرشفة ك Spark DataFrame. استعادة الملفات المؤرشفة الضرورية باتباع الإرشادات الموثقة من موفر تخزين الكائن. للحصول على معلومات حول كيفية فحص Azure Databricks للبيانات المستعادة، راجع كيف يمكن لعينة Azure Databricks للبيانات المستعادة؟.

إشعار

أثناء هذه العملية، يتمتع Delta Lake فقط بالوصول إلى إحصائيات البيانات المضمنة في سجل المعاملات. بشكل افتراضي، هذه هي الإحصائيات التالية التي تم جمعها على أول 32 عمودا في الجدول:

  • الحد الأدنى للقيم
  • القيم القصوى
  • عدد القيم الخالية
  • العدد الإجمالي للسجلات

تتضمن الملفات التي تم إرجاعها جميع الملفات المؤرشفة التي يجب قراءتها لتحديد ما إذا كانت السجلات التي تفي بسند التقييم موجودة في الملف أم لا. توصي Databricks بتوفير دالات التقييم التي تتضمن الحقول التي يتم تقسيم البيانات عليها أو ترتيب z أو تجميعها لتقليل عدد الملفات التي يجب استعادتها.

تحديث البيانات المؤرشفة أو حذفها

تفشل العملية إذا قمت بتشغيل MERGEUPDATEأو أو DELETE عملية تؤثر على البيانات في الملفات المؤرشفة. يجب استعادة البيانات إلى طبقة تخزين تدعم الاسترداد السريع لتشغيل هذه العمليات. استخدم SHOW ARCHIVED FILES لتحديد الملفات التي يجب استعادتها.

كيف نموذج Azure Databricks للبيانات المستعادة؟

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

إذا كانت النتائج تشير إلى استعادة الملفات العينة المفترض أرشفتها، يفترض Azure Databricks استعادة جميع ملفات الاستعلام وعمليات الاستعلام.

القيود

توجد القيود التالية:

  • لا يوجد دعم لنهج إدارة دورة الحياة التي لا تستند إلى وقت إنشاء الملف. يتضمن ذلك النهج المستندة إلى وقت الوصول والنهج المستندة إلى العلامة.
  • لا يمكنك استخدام DROP COLUMN على جدول مع ملفات مؤرشفة.
  • REORG TABLE APPLY PURGE يقوم بأفضل محاولة، ولكنه يعمل فقط على ملفات متجهات الحذف وملفات البيانات المشار إليها التي لم تتم أرشفتها. PURGE يتعذر على حذف ملفات متجهات الحذف المؤرشفة.
  • يؤدي توسيع قاعدة الانتقال لإدارة دورة الحياة إلى سلوك غير متوقع. راجع توسيع قاعدة الانتقال لإدارة دورة الحياة.

تغيير قاعدة الانتقال لإدارة دورة الحياة

إذا قمت بتغيير الفاصل الزمني لقاعدة الانتقال لإدارة دورة حياة السحابة، يجب تحديث الخاصية delta.timeUntilArchived.

إذا تم تقصير الفاصل الزمني قبل الأرشفة (وقت أقل منذ إنشاء الملف)، يستمر دعم الأرشفة لجدول Delta في العمل بشكل طبيعي بعد تحديث خاصية الجدول.

توسيع قاعدة الانتقال لإدارة دورة الحياة

إذا كان الفاصل الزمني قبل تمديد الأرشفة (لإضافة المزيد من الوقت قبل تشغيل الأرشفة)، فقد يؤدي تحديث الخاصية delta.timeUntilArchived إلى القيمة الجديدة إلى حدوث أخطاء. لا يقوم موفرو السحابة تلقائيا باستعادة الملفات من التخزين المؤرشف عند تغيير نهج استبقاء البيانات. وهذا يعني أن الملفات المؤهلة مسبقا للأرشفة ولكن الآن لا تعتبر مؤهلة للأرشفة لا تزال مؤرشفة.

هام

لتجنب الأخطاء، لا تقم بتعيين الخاصية delta.timeUntilArchived إلى قيمة أكبر من العمر الفعلي للبيانات التي تم أرشفتها مؤخرا.

ضع في اعتبارك سيناريو يتم فيه تغيير الفاصل الزمني للأرشفة من 60 يوما إلى 90 يوما:

  1. يتم أرشفة جميع السجلات التي يتراوح عمرها بين 60 و90 يوما عند تغيير النهج.
  2. لمدة 30 يوما، لا يتم أرشفة أي ملفات جديدة (أقدم الملفات غير المؤرشفة هي 60 يوما عند تمديد النهج).
  3. بعد 30 يوما، يصف نهج دورة الحياة بشكل صحيح جميع البيانات المؤرشفة.

يتعقب delta.timeUntilArchived الإعداد الفاصل الزمني المحدد مقابل وقت إنشاء الملف المسجل بواسطة سجل معاملات Delta. وليس لديها معرفة صريحة بالسياسة الأساسية. خلال فترة التأخر بين الحد القديم للأرشفة والحد الجديد للأرشفة، يمكنك اتباع أحد الطرق التالية لتجنب الاستعلام عن الملفات المؤرشفة:

  1. يمكنك ترك الإعداد delta.timeUntilArchived مع الحد القديم حتى يمر وقت كاف لأرشفة جميع الملفات.
    • باتباع المثال أعلاه، كل يوم لأول 30 يوما، سيتم اعتبار قيمة يوم آخر من البيانات مؤرشفة بواسطة Azure Databricks ولكن لا يزال يجب أرشفتها من قبل موفر السحابة. لا يؤدي هذا إلى حدوث خطأ ولكنه يتجاهل بعض ملفات البيانات التي يمكن الاستعلام عنها.
    • بعد 30 يوما، قم بتحديث delta.timeUntilArchived إلى 90 days.
  2. يمكنك تحديث الإعداد delta.timeUntilArchived كل يوم ليعكس الفاصل الزمني الحالي خلال فترة التأخير.
    • بينما يتم تعيين نهج السحابة إلى 90 يوما، يتغير العمر الفعلي للبيانات المؤرشفة في الوقت الفعلي. على سبيل المثال، بعد 7 أيام، يعكس الإعداد delta.timeUntilArchived إلى 67 days عمر جميع ملفات البيانات المؤرشفة بدقة.
    • هذا الأسلوب ضروري فقط إذا كان يجب عليك الوصول إلى جميع البيانات في المستويات الساخنة.

إشعار

لا يؤدي تحديث القيمة إلى delta.timeUntilArchived تغيير البيانات التي تم أرشفتها. فإنه يغير فقط البيانات التي يعاملها Azure Databricks كما لو تم أرشفتها.