نسخ البيانات وتحويلها في تحليلات Azure Synapse باستخدام مصنع بيانات Azure أو مسارات Synapse

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

تلميح

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

توضح هذه المقالة كيفية استخدام نسخ النشاط في مصنع بيانات Azure أو مسارات Synapse لنسخ البيانات من وإلى تحليلات Azure Synapse، واستخدام تدفق البيانات لتحويل البيانات في مخزن تجميع بيانات Azure الجيل2. للتعرف على Azure Data Factory، أقرأ المقالة التمهيدية.

القدرات المدعومة

يتم دعم موصل Azure Synapse Analytics للإمكانيات التالية:

القدرات المدعومة IR نقطة النهاية الخاصة المُدارة
Copy activity (المصدر/المتلق) (1) (2)
تعيين تدفق البيانات (المصدر/ المتلقي) (1)
نشاط البحث (1) (2)
نشاط GetMetadata (1) (2)
نشاط البرنامج النصي (1) (2)
نشاط الإجراء المخزن (1) (2)

① وقت تشغيل تكامل Azure ② وقت تشغيل التكامل المستضاف ذاتيًا

بالنسبة إلى نشاط النسخ، يدعم موصل تحليلات Azure Synapse هذه الوظائف:

  • انسخ البيانات باستخدام مصادقة SQL ومصادقة الرمز المميز لتطبيق Microsoft Entra مع كيان الخدمة أو الهويات المدارة لموارد Azure.
  • كمصدر، قم باسترداد البيانات باستخدام استعلام SQL أو الإجراء المخزن. يمكنك أيضا اختيار النسخ المتوازي من مصدر Azure Synapse Analytics، راجع قسم النسخ المتوازي من Azure Synapse Analytics للحصول على التفاصيل.
  • كمتلقي، قم بتحميل البيانات باستخدام عبارة COPY أو PolyBase أو الإدراج المجمع. نوصي بعبارة COPY أو PolyBase للحصول على أداء نسخ أفضل. يدعم الموصل أيضاً إنشاء جدول الوجهة تلقائياً باستخدام DISTRIBUTION = ROUND_ROBIN إذا لم يكن موجوداً استناداً إلى مخطط المصدر.

هام

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

الشروع في العمل

تلميح

لتحقيق أفضل أداء، استخدم PolyBase أو عبارة COPY لتحميل البيانات في تحليلات Azure Synapse. تحتوي أقسام استخدام PolyBase لتحميل البيانات في Azure Synapse Analytics واستخدام عبارة COPY لتحميل البيانات في Azure Synapse Analytics على تفاصيل. للحصول على إرشادات حول حالة الاستخدام، راجع Load 1 TB into Azure Synapse Analytics under 15 minutes with Azure Data Factory.

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

قم بإنشاء خدمة تحليلات Azure Synapse المرتبطة باستخدام واجهة المستخدم

استخدم الخطوات التالية لإنشاء خدمة تحليلات Azure Synapse مرتبطة في واجهة مستخدم مدخل Azure.

  1. استعرض للوصول إلى علامة التبويب "Manage" في مصنع بيانات Azure أو مساحة عمل Synapse، وحدد "Linked Services"، ثم انقر فوق "New":

  2. ابحث عن Synapse وحدد موصل تحليلات Azure Synapse.

    لقطة شاشة لموصل Azure Synapse Analytics.

  3. قم بتكوين تفاصيل الخدمة، واختبر الاتصال، وأنشئ الخدمة المرتبطة الجديدة.

    لقطة شاشة لتكوين خدمة مرتبطة ب Azure Synapse Analytics.

تفاصيل تكوين الموصل

توفر الأقسام التالية تفاصيل حول الخصائص التي تحدد مصنع البيانات وكيانات خط أنابيب Synapse الخاصة بموصل تحليلات Azure Synapse.

خصائص الخدمة المرتبطة

يدعم الإصدار الموصى به لموصل Azure Synapse Analytics TLS 1.3. راجع هذا القسم لترقية إصدار موصل Azure Synapse Analytics من الإصدار القديم . للحصول على تفاصيل الخاصية، راجع الأقسام المقابلة.

تلميح

عند إنشاء خدمة مرتبطة لتجمع SQL بلا خادم في Azure Synapse من مدخل Microsoft Azure:

  1. بالنسبة للخيار طريقة اختيار الحساب، اختر الإدخال يدويًا.
  2. الصق اسم المجال المؤهل بالكامل لنقطة النهاية بلا خادم. يمكنك العثور على هذا في صفحة نظرة عامة على مدخل Microsoft Azure لمساحة عمل Synapse الخاصة بك، في الخصائص ضمن نقطة نهاية SQL بلا خادم. على سبيل المثال، myserver-ondemand.sql-azuresynapse.net
  3. بالنسبة إلى اسم قاعدة البيانات، قم بتوفير اسم قاعدة البيانات في تجمع SQL بلا خادم.

تلميح

إذا واجهت خطأ برمز الخطأ ك "UserErrorFailedToConnectToSqlServer" ورسالة مثل "حد جلسة العمل لقاعدة البيانات هو XXX وتم الوصول إليه."، أضف Pooling=false إلى سلسلة الاتصال وحاول مرة أخرى.

يتم دعم هذه الخصائص العامة لخدمة مرتبطة ب Azure Synapse Analytics عند تطبيق الإصدار الموصى به :

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى AzureSqlDW. ‏‏نعم‬
الخادم اسم أو عنوان الشبكة لمثيل خادم SQL الذي تريد الاتصال به. ‏‏نعم‬
قاعدة بيانات اسم قاعدة البيانات. ‏‏نعم‬
نوع المصادقة النوع المستخدم للمصادقة. القيم المسموح بها هي SQL (افتراضي)، ServicePrincipal، SystemAssignedManagedIdentity، UserAssignedManagedIdentity. انتقل إلى قسم المصادقة ذات الصلة حول خصائص ومتطلبات أساسية محددة. ‏‏نعم‬
تشفير الإشارة إلى ما إذا كان تشفير TLS مطلوبا لجميع البيانات المرسلة بين العميل والخادم. الخيارات: إلزامية (ل true، default)/اختيارية (ل false)/strict. لا
trustServerCertificate الإشارة إلى ما إذا كان سيتم تشفير القناة أثناء تجاوز سلسلة الشهادات للتحقق من صحة الثقة. لا
اسم المضيفInCertificate اسم المضيف الذي يجب استخدامه عند التحقق من صحة شهادة الخادم للاتصال. عند عدم التحديد، يتم استخدام اسم الخادم للتحقق من صحة الشهادة. لا
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. يمكنك استخدام وقت تشغيل التكامل Azure أو وقت تشغيل تكامل مستضاف ذاتياً (إذا كان مخزن البيانات الخاص بك موجوداً في شبكة خاصة). إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. لا

للحصول على خصائص اتصال إضافية، راجع الجدول أدناه:

الخاصية الوصف مطلوب
applicationIntent نوع حمل عمل التطبيق عند الاتصال بخادم. القيم المسموح بها هي ReadOnly وReadWrite. لا
connectTimeout طول الوقت (بالثوان) لانتظار اتصال بالخادم قبل إنهاء المحاولة وإنشاء خطأ. لا
connectRetryCount عدد عمليات إعادة الاتصال التي تمت محاولتها بعد تحديد فشل الاتصال الخامل. يجب أن تكون القيمة عددا صحيحا بين 0 و255. لا
ConnectRetryInterval مقدار الوقت (بالثوان) بين كل محاولة إعادة اتصال بعد تحديد فشل الاتصال الخامل. يجب أن تكون القيمة عددا صحيحا بين 1 و60. لا
وقت موازنة التحميل الحد الأدنى من الوقت (بالثوان) للاتصال للعيش في تجمع الاتصال قبل إتلاف الاتصال. لا
commandTimeout وقت الانتظار الافتراضي (بالثوان) قبل إنهاء محاولة تنفيذ أمر وإنشاء خطأ. لا
الأمان المتكامل القيم المسموح بها هي true أو false. عند تحديد false، حدد ما إذا كان اسم المستخدم وكلمة المرور محددين في الاتصال. عند تحديد true، يشير إلى ما إذا كانت بيانات اعتماد حساب Windows الحالية تستخدم للمصادقة. لا
تجاوز الفشلPartner اسم أو عنوان الخادم الشريك للاتصال به إذا كان الخادم الأساسي معلقا. لا
maxPoolSize الحد الأقصى لعدد الاتصالات المسموح بها في تجمع الاتصال للاتصال المحدد. لا
minPoolSize الحد الأدنى لعدد الاتصالات المسموح بها في تجمع الاتصال للاتصال المحدد. لا
مجموعات متعددةActiveResultSets القيم المسموح بها هي true أو false. عند تحديد true، يمكن للتطبيق الاحتفاظ بمجموعات نتائج نشطة متعددة (MARS). عند تحديد false، يجب على التطبيق معالجة أو إلغاء جميع مجموعات النتائج من دفعة واحدة قبل أن يتمكن من تنفيذ أي دفعات أخرى على هذا الاتصال. لا
multiSubnetFailover القيم المسموح بها هي true أو false. إذا كان التطبيق الخاص بك يتصل بمجموعة توفر AlwaysOn (AG) على شبكات فرعية مختلفة، فقم بتعيين هذه الخاصية لتوفير true اكتشاف أسرع للخادم النشط حاليا والاتصال به. لا
packetSize حجم وحدات البايت لحزم الشبكة المستخدمة للاتصال بمثيل الخادم. لا
تجميع القيم المسموح بها هي true أو false. عند تحديد true، سيتم تجميع الاتصال. عند تحديد false، سيتم فتح الاتصال بشكل صريح في كل مرة يتم فيها طلب الاتصال. لا

مصادقة SQL

لاستخدام مصادقة SQL، بالإضافة إلى الخصائص العامة الموضحة في القسم السابق، حدد الخصائص التالية:

الخاصية الوصف مطلوب
userName اسم المستخدم المستخدم للاتصال بالخادم. ‏‏نعم‬
كلمة المرور كلمة المرور لاسم المستخدم. وضع علامة على هذا الحقل باعتباره SecureString لتخزينه بشكل آمن. أو يمكنك أيضًا الإشارة إلى سر مخزن في Azure Key Vault. ‏‏نعم‬

مثال: استخدام مصادقة SQL

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SQL",
            "userName": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

مثال: كلمة المرور في Azure Key Vault

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SQL",
            "userName": "<user name>",
            "password": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

المصادقة الأساسية للخدمة

لاستخدام مصادقة كيان الخدمة، بالإضافة إلى الخصائص العامة الموصوفة في القسم السابق، حدد الخصائص التالية:

الخاصية الوصف مطلوب
servicePrincipalId حدد معرّف عميل التطبيق. ‏‏نعم‬
servicePrincipalCredential بيانات اعتماد كيان الخدمة. حدِّد مفتاح التطبيق. ضع علامة على هذا الحقل كـ SecureString لتخزينها بأمان، أو راجع السر المُخزن في Azure Key Vault. ‏‏نعم‬
tenant حدد معلومات المستأجر (اسم المجال أو معرف المستأجر) التي يوجد داخلها التطبيق. يمكنك استرداده عن طريق تمرير الماوس في الزاوية العلوية اليمنى من Azure portal. ‏‏نعم‬
azureCloudType للمصادقة الأساسية للخدمة، حدد نوع بيئة سحابة Azure التي تم تسجيل تطبيق Microsoft Entra إليها.
القيم المسموح بها هي AzurePublicو AzureUsGovernmentAzureChinaو و.AzureGermany وبشكل افتراضي، يتم استخدام مصنع البيانات أو بيئة سحابة خط Synapse.
لا

عليك أيضًا اتباع الخطوات التالية:

  1. إنشاء تطبيق Microsoft Entra من مدخل Microsoft Azure. قم بتدوين اسم التطبيق والقيم التالية التي تحدد الخدمة المرتبطة:

    • مُعرّف التطبيق
    • مفتاح التطبيق
    • معرف المستأجر
  2. قم بتوفير مسؤول Microsoft Entra للخادم الخاص بك في مدخل Microsoft Azure إذا لم تكن قد فعلت ذلك بالفعل. يمكن أن يكون مسؤول Microsoft Entra مستخدم Microsoft Entra أو مجموعة Microsoft Entra. إذا منحت المجموعة ذات الهوية المُدارة دوراً إدارياً، فتخط الخطوتين 3 و4. سيكون للمسؤول حق الوصول الكامل إلى قاعدة البيانات.

  3. إنشاء مستخدمي قاعدة البيانات المضمنة لمبدأ الخدمة. اتصل بمستودع البيانات الذي تريد نسخ البيانات منه أو إليه باستخدام أدوات مثل SSMS، مع هوية Microsoft Entra التي تحتوي على الأقل على إذن ALTER ANY USER. قم بتشغيل T-SQL التالي:

    CREATE USER [your_application_name] FROM EXTERNAL PROVIDER;
    
  4. امنح كيان الخدمة الأذونات المطلوبة كما تفعل عادة لمستخدمي SQL أو الآخرين. قم بتشغيل التعليمات البرمجية التالية، أو راجع المزيد من الخيارات هنا. إذا كنت ترغب في استخدام PolyBase لتحميل البيانات، فتعرف على إذن قاعدة البيانات المطلوب.

    EXEC sp_addrolemember db_owner, [your application name];
    
  5. تكوين خدمة مرتبطة ب Azure Synapse Analytics في Azure Data Factory أو مساحة عمل Synapse.

مثال على الخدمة المرتبطة التي تستخدم المصادقة الأساسية للخدمة

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "connectionString": "Server=tcp:<servername>.database.windows.net,1433;Database=<databasename>;Connection Timeout=30",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredential": {
                "type": "SecureString",
                "value": "<application key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

الهويات المُدارة المعينة بواسطة النظام لمصادقة موارد Azure

يمكن إقران مصنع البيانات أو مساحة عمل Synapse بهوية مُدارة يعينها النظام لموارد Azure والتي تمثل المورد. يمكنك استخدام هذه الهوية المُدارة لمصادقة تحليلات Azure Synapse. يمكن للمورد المعين الوصول إلى البيانات ونسخها من أو إلى مستودع البيانات الخاص بك باستخدام هذه الهوية.

لاستخدام مصادقة الهوية المدارة المعينة من قبل النظام، حدد الخصائص العامة الموضحة في القسم السابق، واتبع هذه الخطوات.

  1. قم بتوفير مسؤول Microsoft Entra للخادم الخاص بك على مدخل Microsoft Azure إذا لم تكن قد فعلت ذلك بالفعل. يمكن أن يكون مسؤول Microsoft Entra مستخدم Microsoft Entra أو مجموعة Microsoft Entra. إذا منحت ذات الهوية المُدارة المعينة من قبل النظام دور مسؤول، فتخطَ الخطوتين 3 و4. سيكون للمسؤول حق الوصول الكامل إلى قاعدة البيانات.

  2. قم بإنشاء مستخدمي قاعدة البيانات المضمنة للهوية المُدارة المعينة من قبل النظام. اتصل بمستودع البيانات الذي تريد نسخ البيانات منه أو إليه باستخدام أدوات مثل SSMS، مع هوية Microsoft Entra التي تحتوي على الأقل على إذن ALTER ANY USER. قم بتشغيل T-SQL التالي.

    CREATE USER [your_resource_name] FROM EXTERNAL PROVIDER;
    
  3. امنح الهوية المُدارة المعينة من قبل النظام الأذونات المطلوبة كما تفعل عادةً لمستخدمي SQL وغيرهم. قم بتشغيل التعليمات البرمجية التالية، أو راجع المزيد من الخيارات هنا. إذا كنت ترغب في استخدام PolyBase لتحميل البيانات، فتعرف على إذن قاعدة البيانات المطلوب.

    EXEC sp_addrolemember db_owner, [your_resource_name];
    
  4. تكوين خدمة مرتبطة ب Azure Synapse Analytics.

مثال:

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SystemAssignedManagedIdentity"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

مصادقة الهوية المدارة المعينة من قبل المستخدم

يمكن إقران مصنع البيانات أو مساحة عمل Synapse بهوية مُدارة معينة من قبل المستخدم تمثل المورد. يمكنك استخدام هذه الهوية المُدارة لمصادقة تحليلات Azure Synapse. يمكن للمورد المعين الوصول إلى البيانات ونسخها من أو إلى مستودع البيانات الخاص بك باستخدام هذه الهوية.

لاستخدام مصادقة هوية مدارة من قبل عميل معيّن، بالإضافة إلى الخصائص العامة الموصوفة في القسم السابق، حدد الخصائص التالية:

الخاصية الوصف مطلوب
بيانات الاعتماد حدد الهوية المدارة المعينة من قبل المستخدم ككائن بيانات الاعتماد. ‏‏نعم‬

عليك أيضًا اتباع الخطوات التالية:

  1. قم بتوفير مسؤول Microsoft Entra للخادم الخاص بك على مدخل Microsoft Azure إذا لم تكن قد فعلت ذلك بالفعل. يمكن أن يكون مسؤول Microsoft Entra مستخدم Microsoft Entra أو مجموعة Microsoft Entra. إذا قمت بمنح المجموعة ذات الهوية المُدارة المعينة من قِبل المستخدم دورًا إداريًا، فتخط الخطوات 3. سيكون للمسؤول حق الوصول الكامل إلى قاعدة البيانات.

  2. قم بإنشاء مستخدمي قاعدة البيانات المضمنة للهوية المُدارة المعينة من قبل المستخدم. اتصل بمستودع البيانات الذي تريد نسخ البيانات منه أو إليه باستخدام أدوات مثل SSMS، مع هوية Microsoft Entra التي تحتوي على الأقل على إذن ALTER ANY USER. قم بتشغيل T-SQL التالي.

    CREATE USER [your_resource_name] FROM EXTERNAL PROVIDER;
    
  3. قم بإنشاء هوية مدارة واحدة أو عدة هويات مدارة يعينها المستخدم وامنح الهوية المدارة المعينة من قبل المستخدم الأذونات المطلوبة كما تفعل عادةً لمستخدمي SQL وغيرهم. قم بتشغيل التعليمات البرمجية التالية، أو راجع المزيد من الخيارات هنا. إذا كنت ترغب في استخدام PolyBase لتحميل البيانات، فتعرف على إذن قاعدة البيانات المطلوب.

    EXEC sp_addrolemember db_owner, [your_resource_name];
    
  4. تعيين هوية مدارة معينة من قبل المستخدم، واحدة أو متعددة، إلى مصنع البيانات وإنشاء بيانات اعتماد لكل هوية مدارة معينة من قبل المستخدم.

  5. تكوين خدمة مرتبطة ب Azure Synapse Analytics.

مثال

{
    "name": "AzureSqlDWLinkedService",
    "properties": {
        "type": "AzureSqlDW",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "UserAssignedManagedIdentity",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

الإصدار القديم

يتم دعم هذه الخصائص العامة لخدمة Azure Synapse Analytics المرتبطة عند تطبيق الإصدار القديم :

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى AzureSqlDW. ‏‏نعم‬
سلسلة الاتصال حدد المعلومات المطلوبة للاتصال بمثيل Azure Synapse Analytics لخاصية connectionString .
قم بتمييز هذا الحقل على أنه SecureString لتخزينه بشكل آمن. يمكنك أيضا وضع كلمة المرور/ مفتاح الخدمة الأساسي في Azure Key Vault وإذا كانت مصادقة SQL، فاسحب password التكوين من سلسلة الاتصال. راجع مقالة تخزين بيانات الاعتماد في Azure Key Vault مع مزيد من التفاصيل.
‏‏نعم‬
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. يمكنك استخدام وقت تشغيل التكامل Azure أو وقت تشغيل تكامل مستضاف ذاتياً (إذا كان مخزن البيانات الخاص بك موجوداً في شبكة خاصة). إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. لا

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

مصادقة SQL للإصدار القديم

لاستخدام مصادقة SQL، حدد الخصائص العامة الموضحة في القسم السابق.

المصادقة الأساسية للخدمة للإصدار القديم

لاستخدام مصادقة كيان الخدمة، بالإضافة إلى الخصائص العامة الموصوفة في القسم السابق، حدد الخصائص التالية:

الخاصية الوصف مطلوب
servicePrincipalId حدد معرّف عميل التطبيق. ‏‏نعم‬
servicePrincipalKey حدِّد مفتاح التطبيق. ضع علامة على هذا الحقل باعتباره SecureString لتخزينه بشكل آمن، أو قم بالإشارة إلى بيانات سرية مخزنة في Azure Key Vault. ‏‏نعم‬
tenant حدد معلومات المستأجر، مثل اسم المجال أو معرّف المستأجر، الذي يتواجد تطبيقك ضمنه. يمكنك استرداده من خلال تمرير الماوس على الزاوية العلوية اليمنى من مدخل Microsoft Azure. ‏‏نعم‬
azureCloudType للمصادقة الأساسية للخدمة، حدد نوع بيئة سحابة Azure التي تم تسجيل تطبيق Microsoft Entra إليها.
القيم المسموح بها هي AzurePublic، وAzureChina، وAzureUsGovernment، وAzureGermany. وبشكل افتراضي، يتم استخدام مصنع البيانات أو بيئة سحابة خط Synapse.
لا

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

مصادقة الهوية المدارة المعينة من قبل النظام للإصدار القديم

لاستخدام مصادقة الهوية المدارة المعينة من قبل النظام، اتبع نفس الخطوة للإصدار الموصى به في مصادقة الهوية المدارة المعينة من قبل النظام.

مصادقة الهوية المدارة المعينة من قبل المستخدم للإصدار القديم

لاستخدام مصادقة الهوية المدارة المعينة من قبل المستخدم، اتبع نفس الخطوة للإصدار الموصى به في مصادقة الهوية المدارة المعينة من قبل المستخدم.

خصائص مجموعة البيانات

للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف مجموعات البيانات، راجع مقالة مجموعات البيانات.

الخصائص التالية مدعومة لمجموعة بيانات تحليلات Azure Synapse:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مجموعة البيانات إلى AzureSqlDWTable. ‏‏نعم‬
Schema اسم المخطط. لا للمصدر، نعم للمتلقي
طاولتنا اسم الجدول/طريقة العرض. لا للمصدر، نعم للمتلقي
اسم الجدول اسم الجدول/طريقة العرض مع المخطط. هذه الخاصية مدعومة للتوافق مع الإصدارات السابقة. بالنسبة لحمل العمل الجديد، استخدم schema وtable. لا للمصدر، نعم للمتلقي

مثال خصائص مجموعة البيانات

{
    "name": "AzureSQLDWDataset",
    "properties":
    {
        "type": "AzureSqlDWTable",
        "linkedServiceName": {
            "referenceName": "<Azure Synapse Analytics linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

خصائص نشاط النسخ

للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف الأنشطة، راجع مقالة التدفقات. يوفر هذا القسم قائمة بالخصائص التي يدعمها مصدر ومتلقي تحليلات Azure Synapse.

تحليلات Azure Synapse كمصدر

تلميح

لتحميل البيانات من Azure Synapse Analytics بكفاءة باستخدام تقسيم البيانات، تعرف على المزيد من النسخ المتوازي من Azure Synapse Analytics.

لنسخ البيانات من Azure Synapse Analytics، قم بتعيين خاصية النوع في مصدر نشاط النسخ إلى SqlDWSource. يتم اعتماد الخصائص التالية في قسم مصدر نشاط النسخ:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مصدر نشاط النسخ إلى SqlDWSource. ‏‏نعم‬
sqlReaderQuery استخدم استعلام SQL المخصص لقراءة البيانات. مثال:select * from MyTable. لا
sqlReaderStoredProcedureName اسم الإجراء المخزن الذي يقرأ البيانات من الجدول المصدر. يجب أن تكون بوابة لغة الاستعلامات المركبة الأخيرة عبارة عن مصطلح SELECT في الإجراء المُخزن. لا
storedProcedureParameters معلمات الإجراء المخزن.
القيم المسموح بها هي أزواج الاسم أو القيمة. يجب أن تتطابق الأسماء وغلاف المعلمات مع الأسماء والغلاف الخاص بمعلمات الإجراء المخزن.
لا
isolationLevel يحدد سلوك تأمين المعاملة لمصدر SQL. القيم المسموح بها هي: ReadCommitted، وReadUncommitted، وRepeatableRead، وSerializable، وSnapshot. إذا لم يتم تحديده، فسيتم استخدام مستوى العزل الافتراضي لقاعدة البيانات. لمزيد من المعلومات، راجع system.data.isolationlevel. لا
خيارات التقسيم يحدد خيارات تقسيم البيانات المستخدمة لتحميل البيانات من تحليلات Azure Synapse.
القيم المسموح بها هي: None (افتراضي)، وPhysicalPartitionsOfTable، وDynamicRange.
عند تمكين خيار قسم (أي، ليس None)، يتم التحكم في درجة التوازي لتحميل البيانات بشكل متزامن من Azure Synapse Analytics بواسطة parallelCopies الإعداد في نشاط النسخ.
لا
partitionSettings حدد مجموعة الإعدادات الخاصة بتقسيم البيانات.
تطبيق عندما لا يكون خيار التقسيم None.
لا
تحت partitionSettings:
partitionColumnName حدد اسم عمود المصدر بعدد صحيح أو نوع التاريخ/التاريخ والوقت (int أو smallint أو bigint أو date أو smalldatetime أو datetime أو datetime2 أو datetimeoffset) التي سيتم استخدامها عن طريق تقسيم النطاق للنسخ المتوازي. إذا لم يتم تحديده، فسيتم اكتشاف الفهرس أو المفتاح الأساسي للجدول تلقائياً واستخدامهما كعمود قسم.
تُطبق عندما يكون خيار التقسيم هو DynamicRange. إذا كنت تستخدم استعلاماً لاسترداد البيانات المصدر، اربط ?DfDynamicRangePartitionCondition في عبارة WHERE. على سبيل المثال، راجع القسم النسخ المتوازي من قاعدة بيانات SQL.
لا
التقسيم القيمة القصوى لعمود القسم لتقسيم نطاق القسم. تُستخدم هذه القيمة لتحديد مرحلة القسم، وليس لتصفية الصفوف في الجدول. سيتم تقسيم ونسخ جميع الصفوف في الجدول أو نتيجة الاستعلام. إذا لم يتم تحديده، يكشف نشاط النسخ القيمة تلقائياً.
تُطبق عندما يكون خيار التقسيم هو DynamicRange. على سبيل المثال، راجع القسم النسخ المتوازي من قاعدة بيانات SQL.
لا
partitionLowerBound الحد الأدنى لقيمة عمود القسم لتقسيم نطاق القسم. تُستخدم هذه القيمة لتحديد مرحلة القسم، وليس لتصفية الصفوف في الجدول. سيتم تقسيم ونسخ جميع الصفوف في الجدول أو نتيجة الاستعلام. إذا لم يتم تحديده، يكشف نشاط النسخ القيمة تلقائياً.
تُطبق عندما يكون خيار التقسيم هو DynamicRange. على سبيل المثال، راجع القسم النسخ المتوازي من قاعدة بيانات SQL.
لا

لاحظ النقطة التالية:

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

مثال: استخدام استعلام SQL

"activities":[
    {
        "name": "CopyFromAzureSQLDW",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure Synapse Analytics input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlDWSource",
                "sqlReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

مثال: استخدام الإجراء المخزن

"activities":[
    {
        "name": "CopyFromAzureSQLDW",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure Synapse Analytics input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlDWSource",
                "sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
                "storedProcedureParameters": {
                    "stringData": { "value": "str3" },
                    "identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

نموذج الإجراء المخزن:

CREATE PROCEDURE CopyTestSrcStoredProcedureWithParameters
(
    @stringData varchar(20),
    @identifier int
)
AS
SET NOCOUNT ON;
BEGIN
    select *
    from dbo.UnitTestSrcTable
    where dbo.UnitTestSrcTable.stringData != stringData
    and dbo.UnitTestSrcTable.identifier != identifier
END
GO

Azure Synapse Analytics كمتلقي

تدعم مسارات مصنع بيانات Azure وSynapse ثلاث طرق لتحميل البيانات في تحليلات Azure Synapse.

الطريقة الأسرع والأكثر قابلية للتطوير لتحميل البيانات هي من خلال عبارة COPY أو PolyBase.

لنسخ البيانات إلى Azure Synapse Analytics، قم بتعيين نوع المتلقي في نشاط النسخ إلى SqlDWSink. تُدعم الخصائص التالية في قسم متلقي نشاط النسخ:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع متلقي نشاط النسخ إلى SqlDWSink. ‏‏نعم‬
allowPolyBase يشير إلى ما إذا كان سيتم استخدام PolyBase لتحميل البيانات في تحليلات Azure Synapse. allowCopyCommand ولا يمكن أن يكون كلاهما allowPolyBase صحيحا.

راجع قسم Use PolyBase to load data into Azure Synapse Analytics للحصول على القيود والتفاصيل.

القيم المسموح بها هي true (افتراضي) وfalse.
‏‏لا.
يوضع عند استخدام PolyBase.
polyBaseSettings مجموعة من الخصائص التي يمكن تحديدها عند تعيين الخاصية allowPolybase إلى true. ‏‏لا.
يوضع عند استخدام PolyBase.
allowCopyCommand يشير إلى ما إذا كان يجب استخدام عبارة COPY لتحميل البيانات في Azure Synapse Analytics. allowCopyCommand ولا يمكن أن يكون كلاهما allowPolyBase صحيحا.

راجع قسم استخدام عبارة COPY لتحميل البيانات في Azure Synapse Analytics للحصول على القيود والتفاصيل.

القيم المسموح بها هي true (افتراضي) وfalse.
‏‏لا.
تقدم بطلب عند استخدام نسخ.
copyCommandSettings مجموعة من الخصائص التي يمكن تحديدها عند allowCopyCommand تعيين الخاصية إلى TRUE. ‏‏لا.
تقدم بطلب عند استخدام نسخ.
writeBatchSize عدد الصفوف المراد إدراجها في جدول SQL لكل دفعة.

القيمة المسموح بها هي integer (عدد الصفوف). بشكل افتراضي، تحدد الخدمة ديناميكياً حجم الدُفعة المناسب بناءً على حجم الصف.
‏‏لا.
تنطبق عند استخدام إدراج بالجملة.
writeBatchTimeout وقت الانتظار حتى تكتمل عملية الإجراء الإدراج والإصدار والتخزين قبل انتهاء المهلة.
القيم المسموح بها هي للمدى الزمني. مثال على ذلك هو "00:30:00" لمدة 30 دقيقة. إذا لم يتم تحديد أي قيمة، يتم تعيين المهلة افتراضيا إلى "00:30:00".
‏‏لا.
تنطبق عند استخدام إدراج بالجملة.
preCopyScript حدد استعلام SQL لتشغيل "نسخ النشاط" قبل كتابة البيانات في تحليلات Azure Synapse في كل تشغيل. استخدم هذه الخاصية لتنظيف البيانات المحملة في الخلفية. لا
tableOption يحدد ما إذا كان سيتم إنشاء جدول المتلقي تلقائيا، إذا لم يكن موجودا، استنادا إلى المخطط المصدر. القيم المسموح بها هي: none (افتراضي)، وautoCreate. لا
disableMetricsCollection تجمع الخدمة مقاييس مثل تحليلات Azure Synapse DWUs لتحسين أداء النسخ والتوصيات، والتي تقدم وصولاً إضافياً لقاعدة البيانات الرئيسية. إذا كنت مهتمًا بهذا السلوك، فحدد trueلإيقاف تشغيله. لا (الافتراضي هو false)
 maxConcurrentConnections الحد الأعلى للاتصالات المتزامنة التي تم إنشاؤها إلى مخزن البيانات أثناء تشغيل النشاط. حدد قيمة فقط عندما تريد تحديد الاتصالات المتزامنة.  لا
WriteBehavior حدد سلوك الكتابة لنشاط النسخ لتحميل البيانات في Azure Synapse Analytics.
القيمة المسموح بها هي Insert و Upsert. تستخدم الخدمة insert لتحميل البيانات بشكلٍ افتراضي.
لا
upsertSettings حدد مجموعة إعدادات سلوك الكتابة.
استخدمها عندما يكون خيار WriteBehavior هو Upsert.
لا
تحت upsertSettings:
المفاتيح حدد أسماء الأعمدة لتعريف الصف الفريد. يمكن استخدام مفتاح واحد أو سلسلة من المفاتيح. إذا لم يتم تحديده، فسيتم استخدام عمود المفتاح الأساسي. لا
interimSchemaName حدد مخططاً مؤقتاً لإنشاء جدول مؤقت. ملاحظة: يحتاج المستخدم إلى الحصول على إذن لإنشاء أي جدول وحذفه. بشكل افتراضي، سيشارك الجدول المؤقت نفس المخطط كجدول متلقي. لا

مثال 1: متلقي Azure Synapse Analytics

"sink": {
    "type": "SqlDWSink",
    "allowPolyBase": true,
    "polyBaseSettings":
    {
        "rejectType": "percentage",
        "rejectValue": 10.0,
        "rejectSampleValue": 100,
        "useTypeDefault": true
    }
}

مثال 2: بيانات Upsert

"sink": {
    "type": "SqlDWSink",
    "writeBehavior": "Upsert",
    "upsertSettings": {
        "keys": [
             "<column name>"
        ],
        "interimSchemaName": "<interim schema name>"
    },
}

نسخة متوازية من تحليلات Azure Synapse

يوفر موصل تحليلات Azure Synapse في نشاط النسخ تقسيماً مضمناً للبيانات لنسخ البيانات بشكل متوازٍ. يمكنك العثور على خيارات تقسيم البيانات في علامة التبويب Source لنشاط النسخ.

لقطة شاشة لخيارات التقسيم

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

يُقترح عليك تمكين النسخ المتوازي مع تقسيم البيانات خاصة عند تحميل كمية كبيرة من البيانات من تحليلات Azure Synapse. فيما يلي تكوينات مقترحة لسيناريوهات مختلفة. عند نسخ البيانات إلى مخزن بيانات مستند إلى ملف، يوصى بالكتابة إلى مجلد كملفات متعددة (حدد اسم المجلد فقط)، وفي هذه الحالة يكون الأداء أفضل من الكتابة إلى ملف واحد.

السيناريو الإعدادات المقترحة
تحميل كامل من جدول كبير بأقسام فعلية. خيار التقسيم: أقسام فعلية للجدول.

أثناء التنفيذ، تكتشف الخدمة تلقائياً الأقسام المادية ونسخ البيانات حسب الأقسام.

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

على سبيل المثال، إذا كان معرّف عمود التقسيم يحتوي على قيم تتراوح من 1 إلى 100، وقمت بتعيين الحد الأدنى كـ 20 والحد الأعلى كـ 80، مع النسخ المتوازي كـ 4، تسترد الخدمة البيانات من خلال 4 أقسام - المعرّفات في النطاق <= 20 و[21 و50] و[51 و80] و>=81 على التوالي.
تحميل كمية كبيرة من البيانات باستخدام استعلام مخصص، دون أقسام فعلية، مع وجود عدد صحيح أو عمود التاريخ/التاريخ والوقت لتقسيم البيانات. خيارات التقسيم: تقسيم النطاق الديناميكي.
استعلام: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
عمود التقسيم: حدد العمود المستخدم لتقسيم البيانات.
الحد الأعلى للتقسيم والحد الأدنى للتقسيم (اختياري): حدد إذا كنت تريد تحديد المقدار الموسع للتقسيم. هذا ليس لتصفية الصفوف في الجدول، سيتم تقسيم كافة الصفوف في نتيجة الاستعلام ونسخها. إذا لم يتم تحديده، يكشف نشاط النسخ القيمة تلقائياً.

على سبيل المثال، إذا كان معرّف عمود التقسيم يحتوي على قيم تتراوح من 1 إلى 100، وقمت بتعيين الحد الأدنى كـ 20 والحد الأعلى كـ 80، مع النسخ المتوازي كـ 4، تسترد الخدمة البيانات من خلال 4 أقسام - المعرّفات في النطاق <= 20 و[21 و50] و[51 و80] و>=81 على التوالي.

فيما يلي المزيد من نماذج الاستعلامات لسيناريوهات مختلفة:
1. الاستعلام عن الجدول بأكمله:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
2. الاستعلام من جدول مع تحديد عمود وعوامل تصفية إضافية ل where-clause:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
3. الاستعلام باستخدام الاستعلامات الفرعية:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
4. الاستعلام مع القسم في الاستعلام الفرعي:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

أفضل الممارسات لتحميل البيانات مع خيار التقسيم:

  1. اختر عمود مميز كعمود تقسيم (مثل المفتاح الأساسي أو المفتاح الفريد) لتجنب انحراف البيانات.
  2. إذا كان الجدول يحتوي على قسم مضمن، فاستخدم خيار القسم "الأقسام المادية للجدول" للحصول على أداء أفضل.
  3. إذا كنت تستخدم Azure Microsoft Integration Runtime لنسخ البيانات لكن يمكنك تعيين "وحدات تكامل بيانات (DIU)" (> 4) أكبر للاستفادة من المزيد من موارد الحوسبة. تحقق من السيناريوهات القابلة للتطبيق هناك.
  4. تتحكم "درجة توازي النسخ" في أرقام التقسيم، ويؤدي تعيين هذا الرقم إلى عدد كبير جداً في بعض الأحيان إلى الإضرار بالأداء، ويوصي بتعيين هذا الرقم إلى (DIU أو عدد عقد وقت تشغيل التكامل المستضاف ذاتياً) * (2 إلى 4).
  5. ملاحظة يمكن أن يقوم تحليلات Azure Synapse بتنفيذ 32 استعلاماً كحد أقصى في وقت واحد، وقد يتسبب تعيين "درجة توازي النسخ" بشكل كبير جداً في حدوث مشكلة تقييد المشبك.

مثال: تحميل كامل من جدول كبير مع أقسام فعلية

"source": {
    "type": "SqlDWSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

مثال: الاستعلام مع تقسيم النطاق الديناميكي

"source": {
    "type": "SqlDWSource",
    "query": "SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
        "partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
    }
}

نموذج استعلام للتحقق من التقسيم الفعلي

SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, c.name AS ColumnName, CASE WHEN c.name IS NULL THEN 'no' ELSE 'yes' END AS HasPartition
FROM sys.tables AS t
LEFT JOIN sys.objects AS o ON t.object_id = o.object_id
LEFT JOIN sys.schemas AS s ON o.schema_id = s.schema_id
LEFT JOIN sys.indexes AS i ON t.object_id = i.object_id
LEFT JOIN sys.index_columns AS ic ON ic.partition_ordinal > 0 AND ic.index_id = i.index_id AND ic.object_id = t.object_id
LEFT JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
LEFT JOIN sys.types AS y ON c.system_type_id = y.system_type_id
WHERE s.name='[your schema]' AND t.name = '[your table name]'

إذا كان الجدول يحتوي على قسم فعلي، فسترى "HasPartition" على أنه "نعم".

استخدام عبارة COPY لتحميل البيانات في Azure Synapse Analytics

يعد استخدام عبارة COPY طريقة بسيطة ومرنة لتحميل البيانات في Azure Synapse Analytics مع معدل نقل عال. لمعرفة المزيد من التفاصيل، تحقق من بيانات التحميل المجمع باستخدام عبارة COPY

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

تلميح

عند استخدام عبارة COPY مع وقت تشغيل تكامل Azure، تكون وحدات تكامل البيانات الفعالة (DIU) دائما 2. لا يؤثر ضبط DIU على الأداء، حيث يتم تشغيل تحميل البيانات من التخزين بواسطة محرك Azure Synapse.

نسخ مباشر باستخدام عبارة COPY

تدعم عبارة COPY لتحليلات Azure Synapse مباشرة Azure Blob وAzure Data Lake Storage Gen2. إذا كانت بيانات المصدر تفي بالمعايير الموضحة في هذا القسم، فاستخدم عبارة COPY للنسخ مباشرة من مخزن البيانات المصدر إلى تحليلات Azure Synapse. وإلا، استخدم نسخة مرحلية باستخدام عبارة COPY. تتحقق الخدمة من الإعدادات وتفشل في تشغيل نشاط النسخ إذا لم يتم استيفاء المعايير.

  1. الخدمة المرتبطة بالمصدر والتنسيق مع الأنواع التالية وأساليب المصادقة:

    نوع مخزن بيانات المصدر المعتمد التنسيق المدعوم نوع مصادقة المصدر المدعوم
    Azure Blob نص Delimited مصادقة مفتاح الحساب، ومصادقة توقيع الوصول المشترك، والمصادقة الأساسية للخدمة (باستخدام ServicePrincipalKey)، ومصادقة الهوية المدارة المعينة من قبل النظام
      Parquet مصادقة مفتاح الحساب، مصادقة توقيع الوصول المشترك
      ORC مصادقة مفتاح الحساب، مصادقة توقيع الوصول المشترك
    Azure Data Lake Storage Gen2 نص Delimited
    Parquet
    ORC
    مصادقة مفتاح الحساب، والمصادقة الأساسية للخدمة (باستخدام ServicePrincipalKey)، ومصادقة توقيع الوصول المشترك، ومصادقة الهوية المدارة المعينة من قبل النظام

    هام

  2. إعدادات التنسيق مع ما يلي:

    1. بالنسبة إلى Parquet: compression لا يمكن أن يكون ضغطا أو Snappy أو GZip.
    2. بالنسبة إلى ORC: compression لا يمكن أن يكون ضغطا أو zlibأو Snappy.
    3. بالنسبة للنص المحدد:
      1. rowDelimiterيتم تعيين بشكل صريح كحرف واحد أو "\r\n"، القيمة الافتراضية غير معتمدة.
      2. nullValue يتم ترك كافتراضي أو تعيين إلى سلسلة فارغة ("").
      3. encodingName يتم ترك كافتراضي أو تعيين إلى utf-8 أو utf-16.
      4. escapeChar يجب أن يكون مثل quoteChar، وليس فارغا.
      5. skipLineCount يتم ترك كافتراضي أو تعيين إلى 0.
      6. compression يمكن أن يكون أي ضغط أو GZip.
  3. إذا كان مصدرك مجلدا، recursive فيجب تعيين نشاط النسخ إلى صحيح، ويجب wildcardFilename أن يكون * أو *.*.

  4. wildcardFolderPath، wildcardFilename (غير *أو *.*modifiedDateTimeStartmodifiedDateTimeEndو، prefixو، enablePartitionDiscovery وadditionalColumns، و غير محددة.

يتم دعم إعدادات عبارة COPY التالية ضمن allowCopyCommand في نشاط النسخ:

الخاصية الوصف مطلوب
قيم افتراضية يحدد القيم الافتراضية لكل عمود هدف في تحليلات Azure Synapse. تقوم القيم الافتراضية في الخاصية بالكتابة فوق القيد DEFAULT المعين في مستودع البيانات، ولا يمكن أن يكون لعمود الهوية قيمة افتراضية. لا
خيارات إضافية خيارات إضافية سيتم تمريرها إلى عبارة نسخ Azure Synapse Analytics مباشرة في عبارة "With" في عبارة COPY. اقتبس القيمة حسب الحاجة للتوافق مع متطلبات عبارة COPY. لا
"activities":[
    {
        "name": "CopyFromAzureBlobToSQLDataWarehouseViaCOPY",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "ParquetDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ParquetSource",
                "storeSettings":{
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true
                }
            },
            "sink": {
                "type": "SqlDWSink",
                "allowCopyCommand": true,
                "copyCommandSettings": {
                    "defaultValues": [
                        {
                            "columnName": "col_string",
                            "defaultValue": "DefaultStringValue"
                        }
                    ],
                    "additionalOptions": {
                        "MAXERRORS": "10000",
                        "DATEFORMAT": "'ymd'"
                    }
                }
            },
            "enableSkipIncompatibleRow": true
        }
    }
]

نسخة مرحلية باستخدام عبارة COPY

عندما لا تكون بيانات المصدر متوافقة أصلياً مع عبارة COPY، قم بتمكين نسخ البيانات عبر مرحلة مؤقتة Azure Blob أو مخزن تجميع بيانات Azure الجيل2 (لا يمكن أن يكون Azure Premium Storage). في هذه الحالة، تقوم الخدمة تلقائياً بتحويل البيانات لتلبية متطلبات تنسيق البيانات لعبارة COPY. ثم يستدعي عبارة COPY لتحميل البيانات في تحليلات Azure Synapse. أخيراً، يقوم بتنظيف بياناتك المؤقتة من التخزين. راجع النسخ المرحلي للحصول على تفاصيل حول نسخ البيانات عبر التقسيم المرحلي.

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

هام

  • عند استخدام مصادقة الهوية المدارة للخدمة المرتبطة المرحلية، تعرف على التكوينات المطلوبة ل Azure Blob وAzure Data Lake Storage Gen2 على التوالي. تحتاج أيضا إلى منح أذونات للهوية المدارة لمساحة عمل Azure Synapse Analytics في تخزين Azure Blob المرحلي أو حساب Azure Data Lake Storage Gen2. لمعرفة كيفية منح هذا الإذن، راجع منح أذونات للهوية المدارة لمساحة العمل.
  • إذا تم تكوين Azure Storage المرحلي باستخدام نقطة نهاية خدمة VNet، فيجب عليك استخدام مصادقة الهوية المدارة مع تمكين "السماح بخدمة Microsoft الموثوق بها" على حساب التخزين، راجع تأثير استخدام نقاط نهاية خدمة VNet مع تخزين Azure.

هام

إذا تم تكوين التخزين المرحلي Azure Storage باستخدام نقطة نهاية خاصة مُدارة وتم تمكين جدار حماية التخزين، فيجب عليك استخدام مصادقة هوية مُدارة ومنح أذونات قارئ بيانات تخزين البيانات الثنائية إلى Synapse SQL Server للتأكد من أنه يمكنه الوصول إلى الملفات المرحلية أثناء تحميل عبارة COPY.

"activities":[
    {
        "name": "CopyFromSQLServerToSQLDataWarehouseViaCOPYstatement",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "SQLServerDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlSource",
            },
            "sink": {
                "type": "SqlDWSink",
                "allowCopyCommand": true
            },
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingStorage",
                    "type": "LinkedServiceReference"
                }
            }
        }
    }
]

استخدام PolyBase لتحميل البيانات في Azure Synapse Analytics

يعد استخدام PolyBase طريقة فعالة لتحميل كمية كبيرة من البيانات في Azure Synapse Analytics مع معدل نقل عال. ستلاحظ زيادة كبيرة في الإنتاجية باستخدام PolyBase بدلاً من آلية BULKINSERT الافتراضية.

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

تلميح

تعرف على المزيد حول أفضل الممارسات لاستخدام PolyBase. عند استخدام PolyBase مع وقت تشغيل تكامل Azure، تكون وحدات تكامل البيانات الفعالة (DIU) للتخزين المباشر أو المرحلي إلى Synapse هي دائما 2. لا يؤثر ضبط DIU على الأداء، حيث يتم تشغيل تحميل البيانات من التخزين بواسطة محرك Synapse.

يتم دعم إعدادات PolyBase التالية ضمن polyBaseSettings في نشاط النسخ:

الخاصية الوصف مطلوب
rejectValue تحديد عدد الصفوف التي يمكن رفضها قبل فشل الاستعلام أو النسبة المئوية لها.

تعرف على المزيد حول خيارات رفض PolyBase في قسم الوسيطات في CREATE EXTERNAL TABLE (Transact-SQL).

القيم المسموح بها هي 0 (افتراضي)، 1، 2، إلخ.
لا
النوع تحديد ما إذا كان خيار rejectValue قيمة حرفية أو نسبة مئوية.

القيم المسموح بها هي القيمة (الافتراضية) والنسبة المئوية.
لا
رفض عينة القيمة يحدد عدد الصفوف المراد استردادها قبل أن تعيد PolyBase حساب النسبة المئوية للصفوف المرفوضة.

القيم المسموح بها هي 1، 2، إلخ.
نعم، إذا كان نوع الرفض هو النسبة المئوية.
useTypeDefault تحديد كيفية معالجة القيم المفقودة في ملفات نصية محددة عندما يقوم PolyBase باسترداد البيانات من الملف النصي.

تعرف على المزيد حول هذه الخاصية من قسم الوسيطات في CREATE EXTERNAL FILE FORMAT (Transact-SQL).

القيم المسموح بها هي true (افتراضي) وfalse.

لا

نسخ مباشر باستخدام PolyBase

يدعم Azure Synapse Analytics PolyBase مباشرة Azure Blob وAzure Data Lake Storage Gen2. إذا كانت بيانات المصدر تفي بالمعايير الموضحة في هذا القسم، فاستخدم PolyBase للنسخ مباشرة من مخزن البيانات المصدر إلى تحليلات Azure Synapse. بخلاف ذلك، استخدم نسخة مرحلية باستخدام PolyBase.

تلميح

لنسخ البيانات بكفاءة إلى Azure Synapse Analytics، تعرف على المزيد من Azure Data Factory يجعل من السهل والمريح الكشف عن الرؤى من البيانات عند استخدام Data Lake Store مع Azure Synapse Analytics.

إذا لم يتم استيفاء المتطلبات، تقوم الخدمة بفحص الإعدادات والعودة تلقائياً إلى آلية BULKINSERT لنقل البيانات.

  1. الخدمة المرتبطة بالمصدر مع الأنواع التالية وأساليب المصادقة:

    نوع مخزن بيانات المصدر المعتمد نوع مصادقة المصدر المدعوم
    Azure Blob مصادقة مفتاح الحساب، مصادقة الهوية المدارة المعينة من قبل النظام
    Azure Data Lake Storage Gen2 مصادقة مفتاح الحساب، مصادقة الهوية المدارة المعينة من قبل النظام

    هام

  2. تنسيق البيانات المصدر هو من Parquet أو ORC أو نص محدد، مع التكوينات التالية:

    1. لا يحتوي مسار المجلد على مرشح أحرف البدل.
    2. اسم الملف فارغ أو يشير إلى ملف واحد. إذا قمت بتحديد اسم ملف حرف البدل في نشاط النسخ، يمكن أن يكون * فقط أو *.*.
    3. rowDelimiterافتراضي أو \n أو \r\n أو \r.
    4. nullValue يتم ترك كافتراضي أو تعيين إلى سلسلة فارغة ("")، ويتم treatEmptyAsNull تركه كافتراضي أو تعيينه إلى صحيح.
    5. يُترك encodingName كإعداد افتراضي أو يتم التعيين إلى utf-8.
    6. quoteCharskipLineCount، escapeCharو، و غير محددين. يدعم PolyBase تخطي صف الرأس، والذي يمكن تكوينه ك firstRowAsHeader.
    7. compressionلا يمكن أن يكون ضغطا أو GZipDeflate.
  3. إذا كان المصدر عبارة عن مجلد، recursive فيجب تعيين نشاط النسخ إلى صحيح.

  4. wildcardFolderPathenablePartitionDiscoveryadditionalColumns modifiedDateTimeStartprefixmodifiedDateTimeEndلم يتم تحديد و. wildcardFilename

إشعار

إذا كان المصدر عبارة عن مجلد، فلاحظ أن PolyBase يسترد الملفات من المجلد وكافة مجلداته الفرعية، ولا يسترد البيانات من الملفات التي يبدأ اسم الملف بتسطير (_) أو نقطة (.)، كما هو موثق هنا - وسيطة LOCATION.

"activities":[
    {
        "name": "CopyFromAzureBlobToSQLDataWarehouseViaPolyBase",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "ParquetDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ParquetSource",
                "storeSettings":{
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true
                }
            },
            "sink": {
                "type": "SqlDWSink",
                "allowPolyBase": true
            }
        }
    }
]

نسخة مرحلية باستخدام PolyBase

عندما لا تكون بيانات المصدر متوافقة أصلياً مع PolyBase، قم بتمكين نسخ البيانات عبر مرحلة مؤقتة Azure Blob أو مخزن تجميع بيانات Azure الجيل2 (لا يمكن أن يكون Azure Premium Storage). في هذه الحالة، تقوم الخدمة تلقائياً بتحويل البيانات لتلبية متطلبات تنسيق البيانات الخاصة بـ PolyBase. ثم يستدعي PolyBase لتحميل البيانات في تحليلات Azure Synapse. أخيراً، يقوم بتنظيف بياناتك المؤقتة من التخزين. راجع النسخ المرحلي للحصول على تفاصيل حول نسخ البيانات عبر التقسيم المرحلي.

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

هام

  • عند استخدام مصادقة الهوية المدارة للخدمة المرتبطة المرحلية، تعرف على التكوينات المطلوبة ل Azure Blob وAzure Data Lake Storage Gen2 على التوالي. تحتاج أيضا إلى منح أذونات للهوية المدارة لمساحة عمل Azure Synapse Analytics في تخزين Azure Blob المرحلي أو حساب Azure Data Lake Storage Gen2. لمعرفة كيفية منح هذا الإذن، راجع منح أذونات للهوية المدارة لمساحة العمل.
  • إذا تم تكوين Azure Storage المرحلي باستخدام نقطة نهاية خدمة VNet، فيجب عليك استخدام مصادقة الهوية المدارة مع تمكين "السماح بخدمة Microsoft الموثوق بها" على حساب التخزين، راجع تأثير استخدام نقاط نهاية خدمة VNet مع تخزين Azure.

هام

إذا تم تكوين Azure Storage المرحلي باستخدام نقطة نهاية خاصة مُدارة وتم تمكين جدار حماية التخزين، فيجب عليك استخدام مصادقة هوية مُدارة ومنح أذونات قارئ بيانات تخزين البيانات الثنائية إلى Synapse SQL Server للتأكد من أنه يمكنه الوصول إلى الملفات المرحلية أثناء تحميل PolyBase.

"activities":[
    {
        "name": "CopyFromSQLServerToSQLDataWarehouseViaPolyBase",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "SQLServerDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlSource",
            },
            "sink": {
                "type": "SqlDWSink",
                "allowPolyBase": true
            },
            "enableStaging": true,
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingStorage",
                    "type": "LinkedServiceReference"
                }
            }
        }
    }
]

أفضل الممارسات لاستخدام PolyBase

توفر الأقسام التالية أفضل الممارسات بالإضافة إلى تلك الممارسات المذكورة في أفضل الممارسات لتحليلات Azure Synapse.

مطلوب إذن قاعدة البيانات

لاستخدام PolyBase، يجب أن يكون لدى المستخدم الذي يقوم بتحميل البيانات في Azure Synapse Analytics إذن "CONTROL" على قاعدة البيانات الهدف. إحدى الطرق لتحقيق ذلك هي إضافة المستخدم كعضو في دور db_owner . تعرف على كيفية القيام بذلك في نظرة عامة على Azure Synapse Analytics.

حدود حجم الصف ونوع البيانات

تحميل PolyBase محدودة بصفوف أصغر من 1 ميغابايت. لا يمكن استخدامه للتحميل إلى VARCHR (MAX) أو NVARCHAR (MAX) أو VARBINARY (MAX). لمزيد من المعلومات، راجع حدود سعة خدمة Azure Synapse Analytics.

عندما تحتوي بيانات المصدر على صفوف أكبر من 1 ميغا بايت، فقد ترغب في تقسيم الجداول المصدر عمودياً إلى عدة جداول صغيرة. تأكد من أن الحجم الأكبر لكل صف لا يتجاوز الحد. يمكن بعد ذلك تحميل الجداول الأصغر باستخدام PolyBase ودمجها معاً في تحليلات Azure Synapse.

بدلاً من ذلك، بالنسبة للبيانات ذات الأعمدة العريضة، يمكنك استخدام غير PolyBase لتحميل البيانات عن طريق إيقاف تشغيل إعداد "السماح لـ PolyBase".

فئة موارد Azure Synapse Analytics

لتحقيق أفضل إنتاجية ممكنة، قم بتعيين فئة موارد أكبر للمستخدم الذي يقوم بتحميل البيانات إلى تحليلات Azure Synapse عبر PolyBase.

استكشاف أخطاء PolyBase وإصلاحها

تحميل إلى العمود العشري

إذا كانت بيانات المصدر بتنسيق نصي أو مخازن أخرى غير متوافقة مع PolyBase (باستخدام نسخة مرحلية وPolyBase)، وتحتوي على قيمة فارغة ليتم تحميلها في عمود تحليلات Azure Synapse العشري، فقد تحصل على الخطأ التالي:

ErrorCode=FailedDbOperation, ......HadoopSqlException: Error converting data type VARCHAR to DECIMAL.....Detailed Message=Empty string can't be converted to DECIMAL.....

الحل هو إلغاء تحديد الخيار "استخدام النوع الافتراضي" (كخطأ) في متلقي نشاط النسخ -> إعدادات PolyBase. "USE_TYPE_DEFAULT" هو تكوين أصلي PolyBase، والذي يحدد كيفية التعامل مع القيم المفقودة في الملفات النصية المحددة عندما يسترد PolyBase البيانات من الملف النصي.

تحقق من خاصية tableName في تحليلات Azure Synapse

يقدم الجدول التالي أمثلة حول كيفية تحديد خاصية tableName في مجموعة بيانات JSON. يعرض عدة مجموعات من أسماء المخططات والجداول.

مخطط قاعدة البيانات اسم الجدول خاصية tableName JSON
dbo MyTable MyTable أو dbo.MyTable أو [dbo].[MyTable]
dbo1 MyTable dbo1.MyTable أو [dbo1].[MyTable]
dbo My.Table [My.Table] أو [dbo].[My.Table]
dbo1 My.Table [dbo1].[My.Table]

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

Type=System.Data.SqlClient.SqlException,Message=Invalid object name 'stg.Account_test'.,Source=.Net SqlClient Data Provider

أعمدة ذات قيم افتراضية

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

All columns of the table must be specified in the INSERT BULK statement.

القيمة NULL هي شكل خاص من القيمة الافتراضية. إذا كان العمود فارغاً، فقد تكون بيانات الإدخال في كائن تخزين البيانات الثنائية الكبيرة لهذا العمود فارغة. لكن لا يمكن أن يكون مفقوداً من مجموعة بيانات الإدخال. تُدرج PolyBase القيمة NULL للقيم المفقودة في تحليلات Azure Synapse.

فشل الوصول إلى الملفات الخارجية

إذا تلقيت الخطأ التالي، فتأكد من أنك تستخدم مصادقة هوية مُدارة ومنحت أذونات قارئ بيانات تخزين البيانات الثنائية الكبيرة للهوية المُدارة لمساحة عمل Azure Synapse.

Job failed due to reason: at Sink '[SinkName]': shaded.msdataflow.com.microsoft.sqlserver.jdbc.SQLServerException: External file access failed due to internal error: 'Error occurred while accessing HDFS: Java exception raised on call to HdfsBridge_IsDirExist. Java exception message:\r\nHdfsBridge::isDirExist 

لمزيد من المعلومات، راجع منح أذونات للهوية المدارة بعد إنشاء مساحة العمل.

تعيين خصائص تدفق البيانات

عند تحويل البيانات في تعيين تدفق البيانات، يمكنك القراءة والكتابة في الجداول من تحليلات Azure Synapse. لمزيد من المعلومات، راجع تحويل المصدر و تحويل المتلقي في تعيين تدفقات البيانات.

تحويل المصدر

تتوفر الإعدادات الخاصة ب Azure Synapse Analytics في علامة التبويب خيارات المصدر لتحويل المصدر.

الإدخال حدد ما إذا كنت تشير إلى المصدر إلى جدول (ما يعادل Select * from <table-name>) أو إدخال استعلام SQL مخصص.

تمكين التقسيم المرحلي يوصى بشدة باستخدام هذا الخيار في أحمال عمل الإنتاج مع مصادر Azure Synapse Analytics. عند تنفيذ نشاط تدفق بيانات باستخدام مصادر Azure Synapse Analytics من البنية الأساسية لبرنامج ربط العمليات التجارية، ستتم مطالبتك بحساب تخزين موقع مرحلي وستستخدم ذلك لتحميل البيانات المرحلي. إنها أسرع آلية لتحميل البيانات من تحليلات Azure Synapse.

  • عند استخدام مصادقة الهوية المدارة للخدمة المرتبطة بالتخزين، تعرف على التكوينات المطلوبة ل Azure Blob وAzure Data Lake Storage Gen2 على التوالي.
  • إذا تم تكوين Microsoft Azure Storage الخاص بك بنقطة نهاية خدمة VNet، يجب عليك استخدام مصادقة هوية مُدارة مع تمكين «السماح بخدمة Microsoft الموثوق بها» على حساب التخزين، راجع تأثير استخدام نقاط النهاية في خدمة VNet من خلال Microsoft Azure Storage.
  • عند استخدام تجمع SQL بلا خادم Azure Synapse كمصدر، لا يتم دعم تمكين التقسيم المرحلي.

الاستعلام: إذا حددت استعلامًا في حقل الإدخال، فأدخل استعلام SQL لمصدرك. يتجاوز هذا الإعداد أي جدول اخترته في مجموعة البيانات. عبارات Order By غير مدعومة هنا، ولكن يمكنك تعيين جملة SELECT FROM الكاملة. يمكنك أيضاً استخدام وظائف الجدول المعرفة بواسطة المستخدم. select * from udfGetData() هو UDF في SQL يقوم بإرجاع جدول. سينتج هذا الاستعلام جدول مصدر يمكنك استخدامه في تدفق البيانات. يعد استخدام الاستعلامات أيضاً طريقة رائعة لتقليل عدد الصفوف للاختبار أو لعمليات البحث.

مثال SQL: Select * from MyTable where customerId > 1000 and customerId < 2000

حجم الدُفعة: أدخل حجم الدُفعة لتقسيم البيانات الكبيرة إلى قراءات. في تدفقات البيانات، سيتم استخدام هذا الإعداد لضبط التخزين المؤقت العمودي Spark. هذا حقل خيار، والذي سيستخدم افتراضيات Spark إذا تُرك فارغاً.

مستوى العزل: الإعداد الافتراضي لمصادر SQL في تعيين تدفق البيانات للقراءة غير ملزم. يمكنك تغيير مستوى العزل هنا إلى إحدى هذه القيم:

  • تثبيت القراءة
  • عدم تثبيت القراءة
  • القراءة القابلة للتكرار
  • قابل للتسلسل
  • لا شيء (تجاهل مستوى العزل)

مستوى العزل

تحويل المتلقي

تتوفر الإعدادات الخاصة ب Azure Synapse Analytics في علامة التبويب Settings لتحويل المتلقي.

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

إجراء الجدول: يحدد ما إذا كان سيتم إعادة إنشاء أو إزالة كافة الصفوف من الجدول الوجهة قبل الكتابة.

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

تمكين التدريج: يتيح هذا التحميل في مجموعات SQL تحليلات Azure Synapse باستخدام أمر النسخ ويوصى به لمعظم متلقيّ Synapse. يتم تكوين التخزين المرحلي في نشاط Execute Data Flow.

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

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

لقطة شاشة توضح تدفق البيانات

نصوص SQL قبل وبعد: أدخل نصوص SQL متعددة الأسطر التي سيتم تنفيذها قبل (المعالجة المسبقة) وبعد (المعالجة اللاحقة) أن تتم كتابة البيانات في قاعدة بيانات المتلقي الخاصة

لقطة شاشة تعرض نصوص مرحلة ما قبل وبعد معالجة SQL في تدفق بيانات Azure Synapse Analytics.

تلميح

  1. يوصى بتقسيم البرامج النصية دفعة واحدة مع أوامر مُتعددة إلى دفعات متعددة.
  2. يمكن فقط تشغيل عبارات لغة تعريف البيانات (DDL) ولغة معالجة البيانات (DML) التي ترجع عدد تحديثات بسيط كجزء مـن دفعة. تعرَّف على المزيد من خلال تنفيذ عمليات الدُفعات

معالجة صف الخطأ

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

  • سيتم اقتطاع البيانات المتسلسلة أو الثنائية في الجدول
  • لا يمكن إدراج القيمة NULL في العمود
  • فشل التحويل عند تحويل القيمة إلى نوع البيانات

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

تثبيت المعاملة: اختر ما إذا كانت بياناتك ستتم كتابتها في معاملة واحدة أو على دفعات. ستوفر المعاملة الفردية أداءً أفضل ولن تكون أي بيانات مكتوبة مرئية للآخرين حتى اكتمال المعاملة. المعاملات المجمعة لها أداء أسوأ ولكن يمكن أن تعمل مع مجموعات البيانات الكبيرة.

إخراج البيانات المرفوضة: في حالة التمكين، يمكنك إخراج صفوف الخطأ في ملف csv في تخزين Azure Blob أو حساب Azure Data Lake Storage Gen2 الذي تختاره. سيؤدي هذا إلى كتابة صفوف الخطأ بثلاثة أعمدة إضافية: عملية SQL مثل INSERT أو UPDATE، ورمز خطأ تدفق البيانات، ورسالة الخطأ في الصف.

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

رسم تخطيطي يوضح معالجة صف الخطأ في تعيين تحويل متلقي تدفق البيانات.

بحث عن خصائص النشاط

لمعرفة تفاصيل حول الخصائص، تحقق من نشاط البحث.

خصائص نشاط GetMetadata

لمعرفة تفاصيل حول الخصائص، يرجى التحقق من نشاط GetMetadata

تعيين نوع البيانات لتحليلات Azure Synapse

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

تلميح

راجع مقالة أنواع بيانات الجدول في Azure Synapse Analytics حول أنواع البيانات المدعومة من Azure Synapse Analytics والحلول البديلة لتلك غير المدعومة.

نوع بيانات تحليلات Azure Synapse نوع البيانات المؤقتة لمصنع البيانات
عدد صحيح كبير Int64
binary بايت []
بت Boolean
حرف String, Char[]
date DateTime
التاريخ/الوقت DateTime
التاريخ والوقت2 DateTime
Datetimeoffset DateTimeOffset
عدد عشري عدد عشري
FILESTREAM attribute (varbinary(max)) بايت []
Float مزدوج
صورة بايت []
العدد الصحيح Int32
money عدد عشري
nchar String, Char[]
عددي عدد عشري
nvarchar String, Char[]
real فردي
rowversion بايت []
smalldatetime DateTime
Smallint Int16
smallmoney عدد عشري
time TimeSpan
Tinyint بايت
uniqueidentifier Guid
varbinary بايت []
حروف متنوعة String, Char[]

ترقية إصدار Azure Synapse Analytics

لترقية إصدار Azure Synapse Analytics، في صفحة تحرير الخدمة المرتبطة، حدد مستحسن ضمن الإصدار وقم بتكوين الخدمة المرتبطة بالإشارة إلى خصائص الخدمة المرتبطة للإصدار الموصى به.

يوضح الجدول أدناه الاختلافات بين Azure Synapse Analytics باستخدام الإصدار الموصى به والإصدار القديم.

الإصدار الموصى به الإصدار القديم
دعم TLS 1.3 عبر encrypt ك strict. TLS 1.3 غير مدعوم.

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