ميزات تحسين أداء نشاط النسخ

ينطبق على: Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

توضح هذه المقالة ميزات تحسين أداء نشاط النسخ التي يمكنك الاستفادة منها في تدفقات Azure Data Factory and Synapse.

تكوين ميزات الأداء باستخدام واجهة المستخدم

عند تحديد نشاط Copy في لوحة محرر البنية الأساسية لبرنامج ربط العمليات التجارية واختيار علامة التبويب "Settings" في منطقة تكوين النشاط أسفل اللوحة، سترى خيارات لتكوين جميع ميزات الأداء المفصلة أدناه.

إظهار ميزات أداء نشاط Copy في علامة التبويب

وحدات تكامل البيانات

وحدة تكامل البيانات هي مقياس يمثل الطاقة (مجموعة من وحدة المعالجة المركزية والذاكرة وتخصيص موارد الشبكة) لوحدة واحدة داخل الخدمة. وحدة تكامل البيانات تنطبق فقط على وقت تشغيل تكامل Azure، ولكن ليس وقت تشغيل التكامل المستضاف ذاتيًا.

تتراوح وحدات DIUs المسموح بها لتمكين تشغيل نشاط النسخ بين 4 و256. إذا لم يكن محددًا أو اخترت "Auto" في واجهة المستخدم، فإن الخدمة تطبق ديناميكيًا إعداد وحدة تكامل البيانات الأمثل استنادًا إلى زوج المتلقي المصدر ونمط البيانات. يسرد الجدول التالي نطاقات وحدة تكامل البيانات المدعومة والسلوك الافتراضي في سيناريوهات النسخ المختلفة:

سيناريو النسخ نطاق DIU المدعوم وحدات DIUs الافتراضية التي تحددها الخدمة
بين مخازن الملفات - نسخ من أو إلى ملف واحد: 4
- نسخ من وإلى ملفات متعددة: 4-256 استنادا إلى عدد الملفات وحجمها

على سبيل المثال، إذا قمت بنسخ البيانات من مجلد مع 4 ملفات كبيرة واخترت الاحتفاظ بالتسلسل الهرمي، فإن وحدة DIU الفعالة القصوى هي 16؛ والبيانات ذات الفعالية القصوى هي 16. عندما تختار دمج الملف، يكون الحد الأقصى الفعال ل DIU هو 4.
بين 4 و32 اعتمادًا على عدد وحجم الملفات
من مخزن الملفات إلى غير مخزن الملفات - نسخ من ملف واحد: 4
- نسخ من ملفات متعددة: 4-256 استنادا إلى عدد الملفات وحجمها

على سبيل المثال، إذا قمت بنسخ البيانات من مجلد مع ملفات كبيرة 4، يكون الحد الأقصى فعالية DIU 16.
- نسخ إلى قاعدة بيانات Azure SQL Database أو Azure Cosmos DB: ما بين 4 و16 اعتمادًا على مستوى المتلقي (DTUs/RUs) ونمط الملف المصدر
- نسخ إلى Azure Synapse Analytics باستخدام PolyBase أو عبارة COPY: 2
- سيناريو آخر: 4
من غير مخزن الملفات إلى مخزن الملفات - نسخ من مخازن البيانات التي تدعم خيار القسم (بما في ذلك قاعدة بيانات Azure ل PostgreSQL وقاعدة بيانات Azure SQL ومثيل Azure SQL المدار وAzure Synapse Analytics وOracle وNetezza وSQL Server وTeradata): 4-256 عند الكتابة إلى مجلد و4 عند الكتابة إلى ملف واحد. ملاحظة يمكن لكل قسم بيانات مصدر استخدام ما يصل إلى 4 وحدات DIU.
- سيناريوهات أخرى: 4
- نسخ من REST أو HTTP: 1
- نسخ من Amazon Redshift باستخدام UNLOAD: 4
- سيناريو آخر: 4
بين المخازن غير الملفات - نسخ من مخازن البيانات التي تدعم خيار القسم (بما في ذلك قاعدة بيانات Azure ل PostgreSQL وقاعدة بيانات Azure SQL ومثيل Azure SQL المدار وAzure Synapse Analytics وOracle وNetezza وSQL Server وTeradata): 4-256 عند الكتابة إلى مجلد و4 عند الكتابة إلى ملف واحد. ملاحظة يمكن لكل قسم بيانات مصدر استخدام ما يصل إلى 4 وحدات DIU.
- سيناريوهات أخرى: 4
- نسخ من REST أو HTTP: 1
- سيناريو آخر: 4

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

سيتم تحصيل # من وحدات DIU المستخدمة * مدة النسخ * سعر الوحدة/ساعة DIU. انظر الأسعار الحالية هنا. قد يتم تطبيق العملة المحلية والخصم المنفصل لكل نوع اشتراك.

مثال:

"activities":[
    {
        "name": "Sample copy activity",
        "type": "Copy",
        "inputs": [...],
        "outputs": [...],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
            },
            "sink": {
                "type": "AzureDataLakeStoreSink"
            },
            "dataIntegrationUnits": 128
        }
    }
]

قابلية توسع وقت تشغيل التكامل المستضاف ذاتياً

إذا كنت ترغب في تحقيق إنتاجية أعلى، فيمكنك إما توسيع نطاق وقت تشغيل التكامل المستضاف ذاتيًا أو تغيير حجمه:

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

ملاحظة في السيناريوهات التالية، يمكن لتنفيذ نشاط النسخ الفردي الاستفادة من عدة عقد IR ذاتية الاستضافة:

نسخة متوازية

يمكنك تعيين نسخة متوازية (خاصية parallelCopies في تعريف JSON لنشاط النسخ، أو الإعداد Degree of parallelism في علامة التبويب الإعدادات لخصائص نشاط النسخ في واجهة المستخدم) على نشاط النسخ للإشارة إلى التوازي الذي تريد أن يستخدمه نشاط النسخ. يمكنك اعتبار هذه الخاصية على أنها الحد الأقصى لعدد سلاسل الرسائل ضمن نشاط النسخ التي تقرأ من مصدرك أو تكتب إلى مخازن بيانات المتلقي بالتوازي.

النسخة المتوازية متعامدة مع وحدات تكامل البيانات أو عقد IR ذاتية الاستضافة. يتم حسابها عبر جميع وحدات DIU أو عقد IR ذاتية الاستضافة.

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

تلميح

عادةً ما يمنحك السلوك الافتراضي للنسخة المتوازية أفضل إنتاجية، والتي يتم تحديدها تلقائيًا بواسطة الخدمة بناءً على زوج مصدر المصدر ونمط البيانات وعدد وحدات DIU أو عدد وحدات المعالجة المركزية/الذاكرة/العقدة الخاصة بـ IR المستضافة ذاتيًا. ارجع إلى استكشاف أخطاء أداء نشاط النسخ وإصلاحها بشأن وقت ضبط النسخة الموازية.

يسرد الجدول التالي سلوك النسخ المتوازي:

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

العدد الفعلي لنشاط النسخ المتوازي المستخدم في وقت التشغيل ليس أكثر من عدد الملفات التي لديك. إذا كان سلوك النسخ mergeFile في مصدر متلقي الملف، فلا يمكن لنشاط النسخ الاستفادة من التوازي على مستوى الملف.
من مخزن الملفات إلى غير مخزن الملفات - عند نسخ البيانات إلى Azure SQL Database أو Azure Cosmos DB، تعتمد النسخة المتوازية الافتراضية أيضًا على مستوى المتلقي (عدد وحدات DTUs/RUs).
- عند نسخ البيانات في Azure Table، تكون النسخة المتوازية الافتراضية هي 4.
من غير مخزن الملفات إلى مخزن الملفات - عند نسخ البيانات من مخزن البيانات الذي يدعم خيار القسم (بما في ذلكAzure SQL Database، وAzure SQL Managed Instance، وAzure Synapse Analytics، وOracle، وAmazon RDS for Oracle، وNetezza، وSAP HANA، وSAP Open Hub، وSAP Table، وSQL Server، وAmazon RDS for SQL Server، وTeradata)، النسخة المتوازية الافتراضية هي 4. العدد الفعلي لنشاط النسخ المتوازية المستخدم في وقت التشغيل ليس أكثر من عدد أقسام البيانات لديك. عند استخدام وقت تشغيل التكامل المستضاف ذاتيًا والنسخ إلى Azure Blob/ADLS Gen2، لاحظ أن الحد الأقصى للنسخة المتوازية الفعالة هو 4 أو 5 لكل عقدة IR.
- بالنسبة للسيناريوهات الأخرى، لا يتم تفعيل النسخ المتوازي. حتى لو تم تحديد التوازي، فإنه لا يتم تطبيقه.
بين المخازن غير الملفات - عند نسخ البيانات إلى Azure SQL Database أو Azure Cosmos DB، تعتمد النسخة المتوازية الافتراضية أيضًا على مستوى المتلقي (عدد وحدات DTUs/RUs).
- عند نسخ البيانات من مخزن البيانات الذي يدعم خيار القسم (بما في ذلكAzure SQL Database، وAzure SQL Managed Instance، وAzure Synapse Analytics، وOracle، وAmazon RDS for Oracle، وNetezza، وSAP HANA، وSAP Open Hub، وSAP Table، وSQL Server، وAmazon RDS for SQL Server، وTeradata)، النسخة المتوازية الافتراضية هي 4.
- عند نسخ البيانات في Azure Table، تكون النسخة المتوازية الافتراضية هي 4.

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

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

مثال:

"activities":[
    {
        "name": "Sample copy activity",
        "type": "Copy",
        "inputs": [...],
        "outputs": [...],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
            },
            "sink": {
                "type": "AzureDataLakeStoreSink"
            },
            "parallelCopies": 32
        }
    }
]

نسخة مرحلية

عند نسخ البيانات من مخزن البيانات المصدر إلى مخزن بيانات التخزين، قد تختار استخدام تخزين Azure Blob أو Azure Data Lake Storage Gen2 كمخزن مرحلي مؤقت. يكون التقسيم المرحلي مفيدًا بشكل خاص في الحالات التالية:

  • تريد إدخال البيانات من مخازن البيانات المختلفة إلى Azure Synapse Analytics عبر PolyBase، أو نسخ البيانات من/إلى Snowflake، أو استيعاب البيانات من Amazon Redshift/HDFS بأداء. تعرف على المزيد من التفاصيل من:
  • لا تريد فتح منافذ أخرى غير المنفذ 80 والمنفذ 443 في جدار الحماية لديك بسبب نُهج تكنولوجيا المعلومات الخاصة بالشركة. على سبيل المثال، عند نسخ البيانات من مخزن بيانات محلي إلى قاعدة بيانات Azure SQL أو Azure Synapse Analytics، فإنك تحتاج إلى تنشيط اتصال TCP الصادر على المنفذ 1433 لكل من جدار حماية Windows وجدار حماية شركتك. في هذا السيناريو، يمكن أن تستفيد النسخة المرحلية من وقت تشغيل التكامل المستضاف ذاتيًا لنسخ البيانات أولاً إلى تخزين مرحلي عبر HTTP أو HTTPS على المنفذ 443، ثم تحميل البيانات من التدريج إلى قاعدة بيانات SQL أو Azure Synapse Analytics. في هذا التدفق، لا تحتاج إلى تمكين المنفذ 1433.
  • أحيانًا يستغرق الأمر بعض الوقت لإجراء حركة بيانات مختلطة (أي للنسخ من مخزن بيانات محلي إلى مخزن بيانات سحابي) عبر اتصال شبكة بطيء. لتحسين الأداء، يمكنك استخدام نسخة مرحلية لضغط البيانات محليًا بحيث تستغرق وقتًا أقل لنقل البيانات إلى مخزن البيانات المرحلي في السحابة. بعد ذلك، يمكنك فك ضغط البيانات في المخزن المرحلي قبل تحميلها في مخزن البيانات الوجهة.

كيف يعمل النسخ المرحلي

عند تنشيط ميزة التقسيم المرحلي، يتم أولاً نسخ البيانات من مخزن البيانات المصدر إلى التخزين المرحلي (قم باستدعاء Azure Blob أو Azure Data Lake Storage Gen2). بعد ذلك، يتم نسخ البيانات من التدريج إلى مخزن بيانات التخزين. يقوم نشاط النسخ تلقائيًا بإدارة التدفق على مرحلتين نيابة عنك، كما يقوم أيضًا بمسح البيانات المؤقتة من التخزين المرحلي بعد اكتمال نقل البيانات.

نسخة مرحلية

تحتاج إلى منح إذن الحذف إلى Azure Data Factory في التخزين المرحلي الخاص بك، بحيث يمكن تنظيف البيانات المؤقتة بعد تشغيل نشاط النسخ.

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

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

التكوين

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

الخاصية ‏‏الوصف القيمة الافتراضية المطلوب
enableStaging حدد ما إذا كنت تريد نسخ البيانات عبر مخزن مرحلي مؤقت. خطأ لا
linkedServiceName حدد اسم تخزين Azure Blob أو خدمة Azure Data Lake Storage Gen2 المرتبطة، والتي تشير إلى مثيل التخزين الذي تستخدمه كمخزن مرحلي مؤقت. ‏‫غير متوفر‬ نعم، عند تعيين enableStaging إلى TRUE
path حدد المسار الذي تريده أن يحتوي على البيانات المرحلية. إذا لم تقدم مسارًا، فإن الخدمة تنشئ حاوية لتخزين البيانات المؤقتة. ‏‫غير متوفر‬ لا (نعم عند storageIntegration تحديد موصل Snowflake)
enableCompression يحدد ما إذا كان يجب ضغط البيانات قبل نسخها إلى الوجهة. هذا الإعداد يقلل من حجم البيانات التي يتم نقلها. خطأ لا

إشعار

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

فيما يلي نموذج لتعريف نشاط النسخ بالخصائص الموضحة في الجدول السابق:

"activities":[
    {
        "name": "CopyActivityWithStaging",
        "type": "Copy",
        "inputs": [...],
        "outputs": [...],
        "typeProperties": {
            "source": {
                "type": "OracleSource",
            },
            "sink": {
                "type": "SqlDWSink"
            },
            "enableStaging": true,
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingStorage",
                    "type": "LinkedServiceReference"
                },
                "path": "stagingcontainer/path"
            }
        }
    }
]

تأثير فوترة النسخ المرحلي

تتم محاسبتك بناءً على خطوتين: مدة النسخ ونوع النسخ.

  • عند استخدام التقسيم المرحلي أثناء النسخ السحابي، وهو نسخ البيانات من مخزن بيانات سحابي إلى مخزن بيانات سحابي آخر، يتم تمكين كلتا المرحلتين بواسطة وقت تشغيل تكامل Azure، ويتم تحصيل [مجموع مدة النسخ للخطوة 1 والخطوة 2] x [سعر وحدة النسخ السحابي].
  • عند استخدام التقسيم المرحلي أثناء نسخ بيانات مختلطة، وهو نسخ البيانات من مخزن بيانات محلي إلى مخزن بيانات سحابي، يتم تمكين مرحلة واحدة بواسطة وقت تشغيل تكامل مستضاف ذاتيًا، يتم محاسبتك على [مدة النسخ المختلط] x [مختلط سعر وحدة النسخ] + [مدة النسخ السحابية] x [سعر وحدة النسخ السحابي].

راجع مقالات نشاط النسخ الأخرى: