تحسين الاستعلام باستخدام محاكاة الوظيفة
إحدى الطرق لتحسين أداء وظيفة Azure Stream Analytics (ASA) هي تطبيق التوازي في الاستعلام. توضح هذه المقالة كيفية استخدام محاكاة الوظيفة في مدخل Microsoft Azure وVisual Studio Code (VS Code) لتقييم توازي الاستعلام لوظيفة Stream Analytics. تتعلم تصور تنفيذ استعلام بعدد مختلف من وحدات الدفق وتحسين توازي الاستعلام استنادا إلى اقتراحات التحرير.
ما هو الاستعلام المتوازي؟
يقسم توازي الاستعلام حمل عمل الاستعلام عن طريق إنشاء عمليات متعددة (أو عقد دفق) وتنفيذه بالتوازي. فهو يقلل إلى حد كبير من وقت التنفيذ العام للاستعلام، ومن ثم هناك حاجة إلى ساعات بث أقل.
لكي تكون الوظيفة متوازية، يجب محاذاة جميع المدخلات والمخرجات وخطوات الاستعلام واستخدام نفس مفاتيح الأقسام. يتم تحديد تقسيم منطق الاستعلام بواسطة المفاتيح المستخدمة للتجميعات (GROUP BY).
إذا كنت ترغب في معرفة المزيد حول توازي الاستعلام، فشاهد الاستفادة من توازي الاستعلام في Azure Stream Analytics.
استخدام محاكاة الوظيفة في VS Code
تحاكي ميزة محاكاة الوظيفة كيفية تشغيل المهمة للطوبولوجيا في Azure. في هذا البرنامج التعليمي، تتعلم تحسين أداء الاستعلام استنادا إلى اقتراحات التحرير وجعله ينفذ بالتوازي. على سبيل المثال، نستخدم مهمة غيرparallel تأخذ بيانات الإدخال من مركز أحداث وترسل النتائج إلى مركز أحداث آخر.
المتطلبات الأساسية:
- ملحق ASA Tools ل VS Code. إذا لم تكن قد قمت بتثبيته بعد، فاتبع هذا الدليل لتثبيته.
- تكوين الإدخال المباشر والإخراج المباشر لوظيفة Stream Analytics.
- يجب تضمين الإدخال والإخراج المباشرين في الاستعلام.
ملاحظة
لا يمكن لمحاكاة الوظيفة محاكاة مخطط تشغيل الوظيفة للمدخلات والمخرجات المحلية. لن يتم إرسال أي بيانات إلى وجهة الإخراج أثناء المحاكاة.
افتح مشروع ASA في VS Code. انتقل إلى ملف الاستعلام *.asaql وحدد Simulate job لبدء Job Simulation.
ضمن علامة التبويب رسم تخطيطي ، يظهر عدد عقد الدفق المخصصة للوظيفة وعدد الأقسام في كل عقدة دفق. لقطة الشاشة التالية هي مثال على وظيفة غيرparallel حيث تتدفق البيانات بين العقد.
نظرا لأن هذا الاستعلام ليس بالتوازي، يمكنك تحديد علامة تبويب التحسينات لعرض اقتراحات حول تحسين الاستعلام.
حدد خطوة الاستعلام في قائمة التحسينات، سترى الأسطر المقابلة مميزة ويمكنك تحرير الاستعلام استنادا إلى الاقتراحات.
ملاحظة
هذه اقتراحات التحرير لتحسين توازي الاستعلام. ومع ذلك، إذا كنت تستخدم دالة تجميعية بين جميع الأقسام، فقد لا يكون وجود استعلام متوازي قابلا للتطبيق على السيناريوهات الخاصة بك.
على سبيل المثال، يمكنك إضافة PartitionId إلى السطر #22 وحفظ التغيير الخاص بك. ثم يمكنك استخدام محاكاة التحديث للحصول على الرسم التخطيطي الجديد.
يمكنك أيضا ضبط وحدات الدفق لتحفيز كيفية تخصيص عقد الدفق مع وحدات SUs مختلفة. يمنحك فكرة عن عدد وحدات SUs التي تحتاجها للتعامل مع حمل العمل الخاص بك.
استخدام محاكاة الوظيفة في مدخل Microsoft Azure
- انتقل إلى محرر الاستعلام في مدخل Microsoft Azure وحدد Job simulation في الجزء السفلي. وهو يحاكي المهمة التي تقوم بتشغيل المخطط استنادا إلى الاستعلام الخاص بك ووحدات البث المعرفة مسبقا.
- حدد التحسينات لعرض اقتراحات تحسين توازي الاستعلام.
- اضبط وحدات الدفق لمعرفة عدد وحدات SUs التي تحتاجها للتعامل مع حمل العمل.
رسم تخطيطي على مستوى المعالج
بمجرد تعديل وحدات الدفق لمحاكاة طبولوجيا وظيفتك، يمكنك توسيع أي من عقد الدفق لمراقبة كيفية معالجة بياناتك على مستوى المعالج.
يسمح لك الرسم التخطيطي على مستوى المعالج ب:
- مراقبة كيفية تخصيص أقسام الإدخال ومعالجتها في كل عقدة دفق.
- تعرف على التحول الزمني لكل معالج حوسبة.
- توفير معلومات حول ما إذا كانت معالجات الإدخال والإخراج تتم محاذاتها بالتوازي.
لتعيين المعالج مع خطوة الاستعلام، حدد نقرا مزدوجا على الرسم التخطيطي. تساعدك هذه الميزة على تحديد موقع خطوات الاستعلام التي تقوم بتجميع.
اقتراحات التحسين
فيما يلي تفسيرات التحسينات:
النوع | المعنى |
---|---|
القسم المخصص غير مدعوم | تغيير مفتاح قسم الإدخال 'xxx' إلى 'xxx'. |
عدد الأقسام غير المتطابقة | يجب أن يكون للإخراج والإخراج نفس عدد الأقسام. |
مفاتيح القسم غير متطابقة | يجب أن يستخدم الإدخال والإخراج وكل خطوة استعلام نفس مفتاح القسم. |
عدد أقسام الإدخال غير المتطابقة | يجب أن تحتوي جميع المدخلات على نفس عدد الأقسام. |
مفاتيح أقسام الإدخال غير متطابقة | يجب أن تستخدم جميع المدخلات نفس مفتاح القسم. |
مستوى توافق منخفض | ترقية CompatibilityLevel على ملف JobConfig.json. |
لم يتم العثور على مفتاح قسم الإخراج | تحتاج إلى استخدام مفتاح قسم محدد للإخراج. |
القسم المخصص غير مدعوم | يمكنك فقط استخدام مفاتيح الأقسام المعرفة مسبقا. |
خطوة الاستعلام لا تستخدم القسم | لا يستخدم استعلامك أي عبارة PARTITION BY. |
الخطوات التالية
إذا كنت تريد معرفة المزيد حول توازي الاستعلام والرسم التخطيطي للمهمة، فراجع هذه البرامج التعليمية: