تصحيح أخطاء التعليمات البرمجية C# المعرفة من قبل المستخدم لوظائف U-SQL الفاشلة

هام

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

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

يوفر U-SQL نموذج توسعة باستخدام C#. في البرامج النصية U-SQL، من السهل استدعاء وظائف C# وتنفيذ وظائف تحليلية لا تدعمها اللغة التعريفية الشبيهة ب SQL. لمعرفة المزيد حول قابلية توسعة U-SQL، راجع دليل قابلية البرمجة U-SQL.

في الممارسة العملية، قد تحتاج أي تعليمة برمجية إلى تصحيح الأخطاء، ولكن من الصعب تتبع أخطاء مهمة موزعة باستخدام تعليمات برمجية مخصصة على السحابة بملفات سجل محدودة. توفر Azure Data Lake Tools ل Visual Studio ميزة تسمى Failed Vertex Debug، والتي تساعدك على تصحيح الأخطاء التي تحدث في التعليمات البرمجية المخصصة بسهولة أكبر. عند فشل مهمة U-SQL، تحافظ الخدمة على حالة الفشل وتساعدك الأداة على تنزيل بيئة فشل السحابة إلى الجهاز المحلي لتصحيح الأخطاء. يلتقط التنزيل المحلي بيئة السحابة بأكملها، بما في ذلك أي بيانات إدخال ورمز المستخدم.

يوضح الفيديو التالي تتبع أخطاء Vertex الفاشلة في Azure Data Lake Tools ل Visual Studio.

هام

يتطلب Visual Studio التحديثين التاليين لاستخدام هذه الميزة: Microsoft Visual C++ 2015 Redistributable Update 3 و Universal C Runtime لنظام التشغيل Windows.

فشل تنزيل الذروة إلى الجهاز المحلي

عند فتح مهمة فاشلة في Azure Data Lake Tools ل Visual Studio، سترى شريط تنبيه أصفر مع رسائل خطأ مفصلة في علامة تبويب الخطأ.

  1. حدد تنزيل لتنزيل جميع الموارد المطلوبة وتدفقات الإدخال. إذا لم يكتمل التنزيل، فحدد إعادة المحاولة.

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

لقطة شاشة لوظيفة Data Lake Analytics في USQL مع تمييز زر التنزيل.

تكوين بيئة تصحيح الأخطاء

ملاحظة

قبل تصحيح الأخطاء، تأكد من التحقق من استثناءات وقت تشغيل اللغة الشائعة في نافذة إعدادات الاستثناء (Ctrl + Alt + E).

لقطة شاشة للتعليمات البرمجية المصدر C# المعرفة من قبل المستخدم، تعرض إعدادات الاستثناءات مع مجموعة استثناءات وقت تشغيل اللغة الشائعة.

في مثيل Visual Studio الجديد الذي تم تشغيله، قد تجد أو لا تجد التعليمات البرمجية المصدر C# المعرفة من قبل المستخدم:

  1. يمكنني العثور على التعليمات البرمجية المصدر في الحل

  2. لا يمكنني العثور على التعليمات البرمجية المصدر في الحل

يتم تضمين التعليمات البرمجية المصدر في حل تصحيح الأخطاء

هناك حالتان يتم التقاط التعليمات البرمجية المصدر C# :

  1. يتم تعريف التعليمات البرمجية للمستخدم في ملف التعليمات البرمجية في الخلف (يسمى Script.usql.cs عادة في مشروع U-SQL).

  2. يتم تعريف التعليمات البرمجية للمستخدم في مشروع مكتبة فئة C# لتطبيق U-SQL، ويتم تسجيله كتجمع مع معلومات تتبع الأخطاء.

إذا تم استيراد التعليمات البرمجية المصدر إلى الحل، يمكنك استخدام أدوات تصحيح أخطاء Visual Studio (الساعة والمتغيرات وما إلى ذلك) لاستكشاف المشكلة وإصلاحها:

  1. اضغط ⁧⁩F5⁧⁩ لبدء التصحيح. يتم تشغيل التعليمات البرمجية حتى يتم إيقافها بواسطة استثناء.

  2. افتح ملف التعليمات البرمجية المصدر وقم بتعيين نقاط التوقف، ثم اضغط على F5 لتصحيح أخطاء التعليمات البرمجية خطوة بخطوة.

    لقطة شاشة للتعليمات البرمجية المعرفة من قبل المستخدم مع مجموعة نقاط توقف، تعرض استثناء في السطر المميز.

التعليمات البرمجية المصدر غير مضمنة في حل تصحيح الأخطاء

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

  1. انقر بزر الماوس الأيمن فوق الحل 'VertexDebug' > إضافة > مشروع موجود... للعثور على التعليمات البرمجية لمصدر التجميع وإضافة المشروع إلى حل تصحيح الأخطاء.

    لقطة شاشة لمستكشف الحلول في Visual Studio، تعرض حل VertexDebug.

  2. احصل على مسار مجلد المشروع لمشروع FailedVertexDebugHost .

  3. Right-Click مشروع > التعليمات البرمجية لمصدر التجميع المضاف خصائص، حدد علامة التبويب Build على اليسار، والصق المسار المنسخ الذي ينتهي ب \bin\debug كمسار إخراج الإخراج>. مسار الإخراج النهائي مثل <DataLakeTemp path>\fd91dd21-776e-4729-a78b-81ad85a4fba6\loiu0t1y.mfo\FailedVertexDebug\FailedVertexDebugHost\bin\Debug\.

    لقطة شاشة لعلامة تبويب الإنشاء في Visual Studio Code، مع تمييز المسار الصادر ضمن Output.

بعد هذه الإعدادات، ابدأ تصحيح الأخطاء باستخدام F5 ونقاط التوقف. يمكنك أيضا استخدام أدوات تصحيح أخطاء Visual Studio (الساعة والمتغيرات وما إلى ذلك) لاستكشاف المشكلة وإصلاحها.

ملاحظة

أعد إنشاء مشروع التعليمات البرمجية المصدر للتجميع في كل مرة بعد تعديل التعليمات البرمجية لإنشاء ملفات .pdb محدثة.

إعادة إرسال الوظيفة

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

The Program 'LocalVertexHost.exe' has exited with code 0 (0x0).

لقطة شاشة لنافذة الإخراج، مع تمييز سطر الإكمال.

لإعادة إرسال المهمة الفاشلة:

  1. بالنسبة للوظائف ذات حلول التعليمات البرمجية الخلفية، انسخ التعليمات البرمجية C# في ملف مصدر التعليمات البرمجية الخلفية (عادة Script.usql.cs).

  2. بالنسبة للوظائف ذات التجميعات، انقر بزر الماوس الأيمن فوق مشروع التعليمات البرمجية المصدر للتجميع في حل تصحيح الأخطاء وسجل تجميعات .dll المحدثة في كتالوج Azure Data Lake.

  3. إعادة إرسال مهمة U-SQL.

الخطوات التالية