تعرف على كيفية استكشاف أخطاء فشل وقت تشغيل U-SQL وإصلاحها بسبب تغييرات وقت التشغيل

هام

تم إيقاف Azure Data Lake Analytics في 29 فبراير 2024. تعرف على المزيد من خلال هذا الإعلان.

بالنسبة لتحليلات البيانات، يمكن لمؤسستك استخدام Azure Synapse Analytics أو Microsoft Fabric.

وقت تشغيل Azure Data Lake U-SQL، بما في ذلك المحول البرمجي والمحسن ومدير الوظيفة، وهو ما يعالج التعليمات البرمجية SQL.

اختيار إصدار وقت تشغيل U-SQL

عند إرسال مهام U-SQL من Visual Studio أو ADL SDK أو مدخل Azure Data Lake Analytics، ستستخدم وظيفتك وقت التشغيل الافتراضي المتاح حاليا. يتم إصدار إصدارات جديدة من وقت تشغيل U-SQL بانتظام وتتضمن كل من التحديثات الثانوية وإصلاحات الأمان.

يمكنك أيضا اختيار إصدار وقت تشغيل مخصص؛ إما لأنك تريد تجربة تحديث جديد، أو تحتاج إلى البقاء على إصدار أقدم من وقت التشغيل، أو تم توفير إصلاح عاجل لمشكلة تم الإبلاغ عنها حيث لا يمكنك الانتظار حتى التحديث الجديد العادي.

تنبيه

اختيار وقت تشغيل مختلف عن الافتراضي لديه القدرة على كسر مهام U-SQL الخاصة بك. استخدم هذه الإصدارات الأخرى للاختبار فقط.

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

مراقبة إصدار وقت تشغيل U-SQL لوظائفك

يمكنك مشاهدة محفوظات إصدار وقت التشغيل الذي استخدمته مهامك السابقة في سجل وظائف حسابك عبر مستعرض وظائف Visual Studio أو محفوظات وظائف مدخل Microsoft Azure.

  1. في مدخل Microsoft Azure، انتقل إلى حساب Data Lake Analytics.
  2. حدد عرض جميع المهام. تظهر قائمة بجميع المهام النشطة والمنتهية مؤخرا في الحساب.
  3. اختياريا، حدد عامل التصفية لمساعدتك في العثور على الوظائف حسب النطاق الزمنيواسم الوظيفة وقيم الكاتب .
  4. يمكنك مشاهدة وقت التشغيل المستخدم في المهام المكتملة.

عرض إصدار وقت التشغيل لوظيفة سابقة

تتغير إصدارات وقت التشغيل المتوفرة بمرور الوقت. يسمى وقت التشغيل الافتراضي دائما "افتراضي" ونحتفظ بوقت التشغيل السابق على الأقل متاحا لبعض الوقت ونجعل أوقات التشغيل الخاصة متاحة لأسباب مختلفة. تتبع أوقات التشغيل المسماة بشكل صريح التنسيق التالي بشكل عام (تستخدم المائلة للأجزاء المتغيرة ويشير [] إلى الأجزاء الاختيارية):

release_YYYYMMDD_adl_buildno[_modifier]

على سبيل المثال، يعني release_20190318_adl_3394512_2 الإصدار الثاني من 3394512 الإصدار من إصدار وقت التشغيل في 18 مارس 2019 release_20190318_adl_3394512_private يعني إصدارا خاصا لنفس الإصدار. ملاحظة: يرتبط التاريخ بالوقت الذي تم فيه تسجيل الوصول الأخير لهذا الإصدار وليس بالضرورة تاريخ الإصدار الرسمي.

استكشاف مشكلات إصدار وقت تشغيل U-SQL وإصلاحها

هناك اثنتان من مشكلات إصدار وقت التشغيل المحتملة التي قد تواجهها:

  1. يقوم برنامج نصي أو بعض التعليمات البرمجية للمستخدم بتغيير السلوك من إصدار إلى آخر. عادة ما يتم إبلاغ مثل هذه التغييرات العاجلة في وقت مسبق مع نشر ملاحظات الإصدار. إذا واجهت مثل هذا التغيير العاجل، فاتصل بدعم Microsoft للإبلاغ عن سلوك التوقف هذا (في حالة عدم توثيقه بعد) وإرسال مهامك مقابل إصدار وقت التشغيل الأقدم.

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

المشكلات المعروفة

  1. سيؤدي الرجوع إلى إصدار ملف Newtonsoft.Json 12.0.3 أو ما بعده في برنامج نصي USQL إلى فشل التحويل البرمجي التالي:

    "نحن آسفون، نحن آسفون. من المحتمل أن تعمل المهام التي تعمل في حساب Data Lake Analytics الخاص بك ببطء أكبر أو ستفشل في الاكتمال. هناك مشكلة غير متوقعة تمنعنا من استعادة هذه الوظيفة تلقائيا إلى حساب Azure Data Lake Analytics الخاص بك. تم الاتصال بمهندسي Azure Data Lake للتحقيق."

    حيث سيحتوي مكدس الاستدعاءات على:
    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Roslyn.Compilers.MetadataReader.PEFile.CustomAttributeTableReader.get_Item(UInt32 rowId)
    ...

    الحل: استخدم ملف Newtonsoft.Json v12.0.2 أو أقل.

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

    الحل: يتم تحديد إصلاح في وقت التشغيل حيث سيتم تخزين الملفات المؤقتة في مجلد مؤقت على مستوى الحساب بدلا من مجلد الإخراج الحالي. ستتم كتابة الملفات المؤقتة في هذا المجلد المؤقت الجديد وسيتم حذفها في نهاية تنفيذ المهمة.
    نظرا لأن هذا الإصلاح يعالج بيانات العميل، فمن المهم التحقق من صحة هذا الإصلاح بشكل جيد داخل MSFT قبل إصداره. من المتوقع أن يتوفر هذا الإصلاح كوقت تشغيل بيتا في منتصف عام 2021 ووقت التشغيل الافتراضي في النصف الثاني من عام 2021.

راجع أيضًا