تحسين التحويلات

استخدم الإستراتيجيات التالية لتحسين أداء التحويلات في تعيين تدفقات البيانات في Azure Data Factory ومسارات Azure Synapse Analytics.

تحسين عمليات الربط والموجود وعمليات البحث

البث

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

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

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

Join Transformation optimize

الروابط المتقاطعة

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

الفرز قبل الربط

على عكس دمج الربط في أدوات مثل SSIS، فإن تحويل الربط ليس عملية ربط ودمج إلزامية. لا تتطلب مفاتيح الربط الفرز قبل التحويل. لا يوصى باستخدام تحويلات الفرز في تعيين تدفقات البيانات.

أداء تحويل النافذة

تحويل النافذة في تعيين تدفق البيانات أقسام البيانات حسب القيمة في الأعمدة التي تحددها كجزء من over() عبارة في إعدادات التحويل. هناك العديد من الوظائف التجميعية والتحليلية الشائعة التي يتم كشفها في تحويل Windows. ومع ذلك، إذا كانت حالة الاستخدام الخاصة بك هي إنشاء نافذة على مجموعة البيانات بأكملها لتحديد المرتبة rank() أو رقم rowNumber()الصف ، فمن المستحسن استخدام تحويلالرتبة وتحويل المفتاح البديل بدلا من ذلك. تؤدي هذه التحويلات أداء أفضل مرة أخرى عمليات مجموعة البيانات الكاملة باستخدام هذه الوظائف.

إعادة تقسيم البيانات المنحرفة

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

Skewness and kurtosis

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

إذا لم يتم تقسيم بياناتك بالتساوي بعد التحويل، يمكنك استخدام علامة التبويب تحسين لإعادة التقسيم. تستغرق إعادة تبديل البيانات وقتا وقد لا تحسن أداء تدفق البيانات.

تلميح

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

إشعار

لا تعدل التحويلات داخل تدفق البيانات (باستثناء تحويل المتلقي) تقسيم الملف والمجلد للبيانات الثابتة. التقسيم في كل تحويل يعيد تقسيم البيانات داخل إطارات البيانات لمجموعة Spark المؤقتة بلا خادم التي يديرها ADF لكل تنفيذ من عمليات تنفيذ تدفق البيانات.

راجع مقالات تدفق البيانات الأخرى المتعلقة بالأداء: