نسخ البيانات وتحويلها في تخزين Azure Blob باستخدام Azure Data Factory أو Azure Synapse Analytics

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

تلميح

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

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

تلميح

للتعرف على سيناريو الترحيل لبحيرة بيانات أو مستودع بيانات، راجع المقالة ترحيل البيانات من بحيرة البيانات أو مستودع البيانات إلى Azure.

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

موصل التخزين لـ Azure Blob هذا مدعوم للإمكانيات التالية:

القدرات المدعومة IR نقطة النهاية الخاصة المُدارة
Copy activity (المصدر/المتلق) ① ② ✓ استبعاد حساب التخزين V1
تعيين تدفق البيانات (المصدر/ المتلقي) ✓ استبعاد حساب التخزين V1
نشاط البحث ① ② ✓ استبعاد حساب التخزين V1
نشاط GetMetadata ① ② ✓ استبعاد حساب التخزين V1
حذف النشاط ① ② ✓ استبعاد حساب التخزين V1

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

لنشاط النسخ، يدعم موصل تخزين Blob:

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

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

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

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

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

  2. ابحث عن نقطة، وحدد موصل تخزين Azure Blob.

    Select Azure Blob Storage connector.

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

    Screenshot of configuration for Azure Blob Storage linked service.

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

توفر المقاطع التالية تفاصيل حول الخصائص المستخدمة لتعريف Data Factory ووحدات خط Synapse الخاصة بتخزين Blob.

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

يدعم هذا الموصل لتخزين Blob أنواع المصادقة التالية. راجع الأقسام المقابلة للاطلاع على التفاصيل.

إشعار

  • إذا كنت ترغب في استخدام وقت تشغيل تكامل Azure العام للاتصال بتخزين Blob الخاص بك عن طريق الاستفادة من خيار السماح بخدمات Microsoft الموثوقة بالوصول إلى حساب التخزين هذا المتاح على جدار حماية تخزين Azure، يجب عليك استخدام مصادقة الهوية المدارة. لمزيد من المعلومات حول إعدادات جدران حماية Azure Storage، راجع تكوين جدران حماية Azure Storage والشبكات الظاهرية.
  • عند استخدام عبارة PolyBase أو COPY لتحميل البيانات في Azure Synapse Analytics، إذا تم تكوين مصدرك أو تخزين Blob المرحلي باستخدام نقطة نهاية Azure Virtual Network، يجب استخدام مصادقة الهوية المدارة كما هو مطلوب من قبل Azure Synapse. راجع قسم مصادقة الهوية المدارة للمزيد من متطلبات التكوين.

إشعار

تدعم Azure HDInsight وأنشطة التعلم الآلي المصادقة التي تستخدم مفاتيح حساب تخزين Azure Blob فقط.

المصادقة المجهولة

يتم اعتماد الخصائص التالية لمصادقة مفتاح حساب التخزين في Azure Data Factory أو خطوط Synapse:

الخاصية الوصف مطلوب
النوع يجب تعيين typeالخاصية إلى AzureBlobStorage (مقترح) أو AzureStorage (راجع الملاحظات التالية). ‏‏نعم‬
containerUri حدد عنوان URI لحاوية Azure Blob الذي قام بتمكين الوصول للقراءة المجهولة عن طريق أخذ هذا التنسيق https://<AccountName>.blob.core.windows.net/<ContainerName> وتكوين وصول قراءة عام مجهول للحاويات والكائنات الثنائية كبيرة الحجم ‏‏نعم‬
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. يمكنك استخدام وقت تشغيل تكامل Azure أو وقت تشغيل التكامل المستضاف ذاتياً (إذا كان مخزن البيانات الخاص بك في شبكة خاصة). إذا لم يتم تحديد هذه الخاصية، فإن الخدمة تستخدم وقت تشغيل تكامل Azure الافتراضي. لا

مثال:


{
    "name": "AzureBlobStorageAnonymous",
    "properties": {
        "annotations": [],
        "type": "AzureBlobStorage",
        "typeProperties": {
            "containerUri": "https:// <accountname>.blob.core.windows.net/ <containername>",
            "authenticationType": "Anonymous"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

أمثلة على واجهة المستخدم:

تجربة واجهة المستخدم كما هو موضح في الصورة التالية. يستخدم هذا النموذج مجموعة بيانات Azure المفتوحة كمصدر. إذا كنت ترغب في الحصول على مجموعة البيانات المفتوحة bing_covid-19_data.csv، تحتاج فقط إلى اختيار نوع المصادقة ك مجهول وملء URI الحاوية ب https://pandemicdatalake.blob.core.windows.net/public.

Screenshot of configuration for Anonymous examples UI.

مصادقة مفتاح الحساب

يتم اعتماد الخصائص التالية لمصادقة مفتاح حساب التخزين في Azure Data Factory أو خطوط Synapse:

الخاصية الوصف مطلوب
النوع يجب تعيين typeالخاصية إلى AzureBlobStorage (مقترح) أو AzureStorage (راجع الملاحظات التالية). ‏‏نعم‬
سلسلة الاتصال حدد المعلومات المطلوبة للاتصال بتخزين connectionStringالخاصية.
يمكنك أيضا وضع مفتاح الحساب في Azure Key Vault وسحب accountKey التكوين من سلسلة الاتصال. للمزيد من المعلومات، راجع العينات التالية ومقالة بيانات اعتماد المخزن في Azure Key Vault.
‏‏نعم‬
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. يمكنك استخدام وقت تشغيل تكامل Azure أو وقت تشغيل التكامل المستضاف ذاتياً (إذا كان مخزن البيانات الخاص بك في شبكة خاصة). إذا لم يتم تحديد هذه الخاصية، فإن الخدمة تستخدم وقت تشغيل تكامل Azure الافتراضي. لا

إشعار

لا يتم دعم نقطة نهاية خدمة Blob الثانوية عند استخدام مصادقة مفتاح الحساب. يمكنك استخدام أنواع مصادقات أخرى.

إشعار

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

مثال:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
          "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
        },
        "connectVia": {
          "referenceName": "<name of Integration Runtime>",
          "type": "IntegrationRuntimeReference"
        }
    }
}

مثال: تخزين مفتاح الحساب في Azure Key Vault

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
            "accountKey": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

مصادقة توقيع الوصول المشترك

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

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

للمزيد من المعلومات حول توقيعات الوصول المشتركة، راجع توقيعات الوصول المشتركة: فهم نموذج توقيع الوصول المشترك.

إشعار

  • تدعم الخدمة الآن توقيعات الوصول المشترك للخدمة وتوقيعات الوصول المشترك للحساب. لمزيد من المعلومات حول توقيعات الوصول المشتركة، راجع منح وصول محدود إلى موارد Azure Storage باستخدام توقيعات الوصول المشترك.
  • في تكوينات مجموعة البيانات الأحدث، يكون مسار المجلد هو المسار المطلق الذي يبدأ من مستوى الحاوية. تحتاج إلى تكوين محاذاة واحدة مع المسار في URI توقيع الوصول المشترك (SAS) الخاص بك.

يتم اعتماد الخصائص التالية لاستخدام مصادقة توقيع الوصول المشترك:

الخاصية الوصف مطلوب
النوع يجب تعيين typeالخاصية إلى AzureBlobStorage (مقترح) أو AzureStorage (راجع الملاحظات التالية). ‏‏نعم‬
sasUri حدد توقيع الوصول المشترك URI إلى موارد التخزين مثل النقطة أو الحاوية.
قم بوضع علامة SecureString على هذا الحقل لتخزينه بشكل آمن. يمكنك أيضاً وضع رمز SAS المميز في Azure Key Vault لاستخدام التدوير التلقائي وإزالة جزء الرمز المميز. لمزيد من المعلومات، راجع العينات التالية وبيانات اعتماد المتجر في Azure Key Vault.
‏‏نعم‬
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. يمكنك استخدام وقت تشغيل تكامل Azure أو وقت تشغيل التكامل المستضاف ذاتياً (إذا كان مخزن البيانات الخاص بك في شبكة خاصة). إذا لم يتم تحديد هذه الخاصية، فإن الخدمة تستخدم وقت تشغيل تكامل Azure الافتراضي. لا

إشعار

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

مثال:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource e.g. https://<accountname>.blob.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

مثال: تخزين مفتاح الحساب في Azure Key Vault

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.blob.core.windows.net/>"
            },
            "sasToken": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName with value of SAS token e.g. ?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

عند إنشاء URI لتوقيع الوصول المشترك، خذ بعين الاعتبار النقاط التالية:

  • تعيين أذونات القراءة/الكتابة المناسبة على الكائنات استناداً إلى كيفية استخدام الخدمة المرتبطة (القراءة والكتابة والقراءة/الكتابة).
  • عين وقت انتهاء الصلاحية بشكل مناسب. تأكد من أن الوصول إلى كائنات Storage لم تنته صلاحيته خلال الفترة النشطة للمسار.
  • يجب إنشاء URI في الحاوية أو النقطة المناسبة بناءً على الحاجة. يسمح URI توقيع الوصول المشترك إلى النقطة لمصنع البيانات أو خط Synapse بالوصول إلى النقطة المعينة. يسمح URI توقيع الوصول المشترك إلى حاوية تخزين Blob لمصنع البيانات أو خط Synapse بالتكرير عبر النقط في تلك الحاوية. لتوفير الوصول إلى كائنات أكثر أو أقل لاحقاً، أو لتحديث URI توقيع الوصول المشترك، تذكر تحديث الخدمة المرتبطة بـ URI الجديد.

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

للحصول على معلومات عامة حول المصادقة الأساسية لخدمة Azure Storage، راجع مصادقة الوصول إلى Azure Storage باستخدام معرف Microsoft Entra.

لاستخدام المصادقة الأساسية للخدمة، اتبع الخطوات التالية:

  1. تسجيل تطبيق باستخدام النظام الأساسي للهويات في Microsoft. لمعرفة كيفية إجراء ذلك، راجع التشغيل السريع: تسجيل تطبيق باستخدام النظام الأساسي للهويات في Microsoft. دون هذه القيم التي تستخدمها لتعريف الخدمة المرتبطة:

    • مُعرّف التطبيق
    • مفتاح التطبيق
    • معرِّف المستأجر
  2. امنح الإذن الصحيح لكيان الخدمة في تخزين Azure Blob. لمزيد من المعلومات، راجع استخدم مدخل Azure لتعيين دور بـ Azure للوصول إلى بيانات النقطة وقائمة الانتظار.

    • كمصدر، في التحكم في الوصول (IAM) امنح على الأقل دور Storage Blob Data Reader.
    • وكمتلقي، في التحكم في الوصول (IAM)، امنح على الأقل دور Storage Blob Data Contributor.

يتم دعم هذه الخصائص لخدمة التخزين المرتبطة في Azure Blob:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى AzureBlobStorage. ‏‏نعم‬
نقطة الخدمة حدد نقطة نهاية خدمة تخزين Azure Blob بالنمط https://<accountName>.blob.core.windows.net/. ‏‏نعم‬
accountKind حدد نوع حساب التخزين. القيم المسموح بها هي: التخزين (الأغراض العامة v1)، أو StorageV2 (الأغراض العامة v2)، أو BlobStorage،أو BlockBlobStorage.

عند استخدام خدمة Azure Blob المرتبطة في تدفق البيانات، لا يتم دعم الهوية المدارة أو مصادقة كيان الخدمة عندما يكون نوع الحساب فارغا أو "تخزين". حدد نوع الحساب المناسب، أو اختر مصادقة مختلفة، أو قم بترقية حساب التخزين إلى v2 للأغراض العامة.
لا
servicePrincipalId حدد معرّف عميل التطبيق. ‏‏نعم‬
servicePrincipalCredentialType نوع بيانات الاعتماد المراد استخدامه للمصادقة الأساسية للخدمة. القيم المسموح بها هي ServicePrincipalKey وServicePrincipalCert. ‏‏نعم‬
servicePrincipalCredential بيانات اعتماد كيان الخدمة.
عند استخدام ServicePrincipalKey كنوع بيانات الاعتماد، حدد مفتاح التطبيق. ضع علامة على هذا الحقل كـ SecureString لتخزينها بأمان، أو راجع السر المُخزن في Azure Key Vault.
عند استخدام ServicePrincipalCert كبيانات اعتماد، قم بالإشارة إلى شهادة في Azure Key Vault، وتأكد من أن نوع محتوى الشهادة هو PKCS #12.
‏‏نعم‬
tenant حدد معلومات المستأجر (اسم المجال أو معرف المستأجر) التي يوجد داخلها التطبيق. واسترجعه عن طريق التمرير فوق الزاوية العلوية اليسرى من مدخل Azure. ‏‏نعم‬
azureCloudType بالنسبة للمصادقة الأساسية للخدمة، حدد نوع بيئة سحابة Azure، التي تم تسجيل تطبيق Microsoft Entra لها.
القيم المسموح بها هي AzurePublic، وAzureChina، وAzureUsGovernment، وAzureGermany. وبشكل افتراضي، يتم استخدام مصنع البيانات أو بيئة سحابة خط Synapse.
لا
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. يمكنك استخدام وقت تشغيل تكامل Azure أو وقت تشغيل التكامل المستضاف ذاتياً (إذا كان مخزن البيانات الخاص بك في شبكة خاصة). إذا لم يتم تحديد هذه الخاصية، فإن الخدمة تستخدم وقت تشغيل تكامل Azure الافتراضي. لا

إشعار

  • إذا كان حساب blob الخاص بك يتيح الحذف المبدئي، فإن المصادقة الأساسية للخدمة غير مدعومة في تدفق البيانات.
  • إذا قمت بالوصول إلى تخزين blob من خلال نقطة النهاية الخاصة باستخدام Data Flow، لاحظ أنه عند استخدام مصادقة الخدمة الأساسية، يقوم Data Flow بالاتصال بنقطة النهاية لـ ADLS Gen2 بدلاً من نقطة النهاية لـ Blob. تأكد من إنشاء نقطة النهاية الخاصة المطابقة في مصنع البيانات أو مساحة عمل Synapse لتمكين الوصول.

إشعار

تُعتمد مصادقة الخدمة الأساسية فقط من قبل الخدمة المرتبطة من نوع "AzureBlobStorage"، وليس الخدمة المرتبطة السابقة من نوع "AzureStorage".

مثال:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

للحصول على معلومات عامة حول مصادقة Azure Storage، راجع مصادقة الوصول إلى Azure Storage باستخدام معرف Microsoft Entra. لاستخدام الهويات المدارة لمصادقة مورد Azure اتبع الخطوات التالية:

  1. استرداد معلومات الهوية المدارة المعينة من قبل النظام عن طريق نسخ قيمة معرف كائن الهوية المدارة المعينة من قبل النظام التي تم إنشاؤها مع مساحة عمل المصنع أو Synapse.

  2. منح إذن الهوية المدارة في تخزين Azure Blob. لمزيد من المعلومات، راجع استخدم مدخل Azure لتعيين دور بـ Azure للوصول إلى بيانات النقطة وقائمة الانتظار.

    • كمصدر، في التحكم في الوصول (IAM) امنح على الأقل دور Storage Blob Data Reader.
    • وكمتلقي، في التحكم في الوصول (IAM)، امنح على الأقل دور Storage Blob Data Contributor.

يتم دعم هذه الخصائص لخدمة التخزين المرتبطة في Azure Blob:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى AzureBlobStorage. ‏‏نعم‬
نقطة الخدمة حدد نقطة نهاية خدمة تخزين Azure Blob بالنمط https://<accountName>.blob.core.windows.net/. ‏‏نعم‬
accountKind حدد نوع حساب التخزين. القيم المسموح بها هي: التخزين (الأغراض العامة v1)، أو StorageV2 (الأغراض العامة v2)، أو BlobStorage،أو BlockBlobStorage.

عند استخدام خدمة Azure Blob المرتبطة في تدفق البيانات، لا يتم دعم الهوية المدارة أو مصادقة كيان الخدمة عندما يكون نوع الحساب فارغا أو "تخزين". حدد نوع الحساب المناسب، أو اختر مصادقة مختلفة، أو قم بترقية حساب التخزين إلى v2 للأغراض العامة.
لا
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. يمكنك استخدام وقت تشغيل تكامل Azure أو وقت تشغيل التكامل المستضاف ذاتياً (إذا كان مخزن البيانات الخاص بك في شبكة خاصة). إذا لم يتم تحديد هذه الخاصية، فإن الخدمة تستخدم وقت تشغيل تكامل Azure الافتراضي. لا

مثال:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

للحصول على معلومات عامة حول مصادقة تخزين Azure، راجع مصادقة الوصول إلى تخزين Azure باستخدام معرف Microsoft Entra. لاستخدام مصادقة الهوية المدارة المعينة من قبل المستخدم اتبع الخطوات التالية:

  1. إنشاء هوية مدارة واحدة أو متعددة من قِبل المستخدمين ومنح الإذن في تخزين Azure Blob. لمزيد من المعلومات، راجع استخدم مدخل Azure لتعيين دور بـ Azure للوصول إلى بيانات النقطة وقائمة الانتظار.

    • كمصدر، في التحكم في الوصول (IAM) امنح على الأقل دور Storage Blob Data Reader.
    • وكمتلقي، في التحكم في الوصول (IAM)، امنح على الأقل دور Storage Blob Data Contributor.
  2. تعيين هوية مدارة معينة من قبل المستخدم، واحدة أو متعددة، إلى مصنع البيانات وإنشاء بيانات اعتماد لكل هوية مدارة معينة من قبل المستخدم.

يتم دعم هذه الخصائص لخدمة التخزين المرتبطة في Azure Blob:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى AzureBlobStorage. ‏‏نعم‬
نقطة الخدمة حدد نقطة نهاية خدمة تخزين Azure Blob بالنمط https://<accountName>.blob.core.windows.net/. ‏‏نعم‬
accountKind حدد نوع حساب التخزين. القيم المسموح بها هي: التخزين (الأغراض العامة v1)، أو StorageV2 (الأغراض العامة v2)، أو BlobStorage،أو BlockBlobStorage.

عند استخدام خدمة Azure Blob المرتبطة في تدفق البيانات، لا يتم دعم الهوية المدارة أو المصادقة الأساسية للخدمة عندما يكون نوع الحساب فارغا أو "تخزينا". حدد نوع الحساب المناسب، أو اختر مصادقة مختلفة، أو قم بترقية حساب التخزين إلى v2 للأغراض العامة.
لا
بيانات الاعتماد حدد الهوية المدارة المعينة من قبل المستخدم ككائن بيانات الاعتماد. ‏‏نعم‬
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. يمكنك استخدام وقت تشغيل تكامل Azure أو وقت تشغيل التكامل المستضاف ذاتياً (إذا كان مخزن البيانات الخاص بك في شبكة خاصة). إذا لم يتم تحديد هذه الخاصية، فإن الخدمة تستخدم وقت تشغيل تكامل Azure الافتراضي. لا

مثال:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

هام

إذا كنت تستخدم عبارة PolyBase أو COPY لتحميل البيانات من تخزين Blob (كمصدر أو كتدريج) في Azure Synapse Analytics، فتأكد من اتباع الخطوات من 1 إلى 3 في هذا التوجيه عند استخدام مصادقة الهوية المدارة لتخزين Blob. ستقوم هذه الخطوات بتسجيل الخادم الخاص بك مع معرف Microsoft Entra وتعيين دور Storage Blob Data Contributor إلى الخادم الخاص بك. ويقوم مصنع البيانات بمعالجة الباقي. إذا قمت بتكوين تخزين الكائن الثنائي كبير الحجم مستخدماً نقطة نهاية شبكة Azure الظاهرية، وتحتاج أيضاً إلى تشغيل السماح لخدمات Microsoft بالوصول إلى حساب التخزين هذا ضمن قائمة إعدادات جدران حماية حساب تخزين Azure والشبكات الافتراضية، على النحو المطلوب من قبل Azure Synapse.

إشعار

  • إذا كان حساب blob الخاص بك يتيح الحذف المبدئي، فإن مصادقة الهوية المدارة المعينة من قبل النظام/المعينة من قبل المستخدم غير مدعومة في تدفق البيانات.
  • إذا قمت بالوصول إلى تخزين Blob من خلال نقطة النهاية الخاصة باستخدام Data Flow، لاحظ أنه عند استخدام مصادقة الهوية المدارة المعينة من قبل النظام/المستخدم، يقوم Data Flow بالاتصال بنقطة نهاية ADLS Gen2 بدلاً من نقطة نهاية Blob. تأكد من إنشاء نقطة النهاية الخاصة المطابقة في ADF لتمكين الوصول.

إشعار

تُعتمد مصادقة الهوية المدارة المعينة من قبل النظام/المستخدم فقط من قبل خدمة مرتبطة من النوع "AzureBlobStorage"، وليس من نوع "AzureStorage" السابق.

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

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

يدعم Azure Data Factory تنسيقات الملفات التالية. راجع كل مقالة للاطلاع على الإعدادات المستندة إلى التنسيق.

يتم اعتماد الخصائص التالية لتخزين Azure Blob ضمن locationالإعدادات في مجموعة بيانات مستندة إلى تنسيق:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع الموقع في مجموعة البيانات إلى AzureBlobStorageLocation. ‏‏نعم‬
حاوية حاوية النقطة. ‏‏نعم‬
folderPath المسار إلى المجلد تحت الحاوية المحددة. إذا كنت تريد استخدام حرف بدل لتصفية المجلد، فتخطَّ هذا الإعداد وحدد ذلك في إعدادات مصدر النشاط. لا
fileName اسم الملف ضمن مسار الحاوية والمجلد المعطى. إذا كنت تريد استخدام البدل لتصفية الملفات، فتخطَّ هذا الإعداد وحدد ذلك في إعدادات مصدر النشاط. لا

مثال:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

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

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

تخزين Blob كنوع مصدر

يدعم Azure Data Factory تنسيقات الملفات التالية. راجع كل مقالة للاطلاع على الإعدادات المستندة إلى التنسيق.

يتم اعتماد الخصائص التالية لتخزين Azure Blob ضمن storeSettingsالإعدادات في مصدر نسخ مستند إلى تنسيق:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع ضمن storeSettings إلى AzureBlobStorageReadSettings. ‏‏نعم‬
حدد موقع الملفات المراد نسخها:
الخيار 1: مسار ثابت
انسخ من الحاوية أو مسار المجلد/الملف المحدد في مجموعة البيانات. إذا كنت تريد نسخ جميع النقط من حاوية أو مجلد، فحدد بالإضافة إلى ذلك wildcardFileName كـ *.
الخيار 2: بادئة النقطة
- اختصار
يتم تكوين بادئة اسم النقطة تحت الحاوية المعطاة في مجموعة للبيانات إلى نقاط المصدر. ويتم اختيار النقاط التي تبدأ أسمائها بـ container_in_dataset/this_prefix يستخدم عامل التصفية من جانب الخدمة لتخزين Blob، والذي يوفر أداء أفضل من عامل تصفية البدل.

عند استخدام البادئة واختيار النسخ إلى متلقي مستند إلى ملف مع الاحتفاظ بالتسلسل الهرمي، لاحظ المسار الفرعي بعد الاحتفاظ بآخر "/" في البادئة. على سبيل المثال، لديك المصدر container/folder/subfolder/file.txt، وتكوين البادئة كـ folder/sub، ثم مسار الملف المحفوظ هو subfolder/file.txt.
لا
الخيار 3: wildcard
- wildcardFolderPath
يتم تكوين مسار المجلد مع أحرف البدل ضمن الحاوية المعطاة في مجموعة للبيانات لتصفية المجلدات المصدر.
أحرف البدل المسموح بها هي: * (تطابق صفراً أو أكثر من الأحرف) و? (تطابق صفر أو حرف واحد). استخدم ^ للتخطي إذا كان اسم المجلد الخاص بك يحتوي على حرف بدل أو حرف إلغاء بداخله.
راجع المزيد من الأمثلة في أمثلة على تصفية الملفات والمجلدات.
لا
الخيار 3: wildcard
- wildcardFileName
اسم الملف مع أحرف البدل ضمن الحاوية المعطاة ومسار المجلد (أو مسار مجلد البدل) لتصفية الملفات المصدر.
أحرف البدل المسموح بها هي: * (تطابق صفراً أو أكثر من الأحرف) و? (تطابق صفر أو حرف واحد). استخدم ^ للإلغاء إذا كان اسم المجلد الخاص بك يحتوي على حرف بدل أو حرف الإلغاء هذا بداخله. راجع المزيد من الأمثلة في أمثلة على تصفية الملفات والمجلدات.
‏‏نعم‬
الخيار 4: قائمة الملفات
- fileListPath
يشير إلى نسخ مجموعة ملفات معينة. أشر إلى ملف نصي يتضمن قائمة بالملفات التي تريد نسخها، ملف واحد لكل سطر، وهو المسار النسبي للمسار الذي تم تكوينه في مجموعة البيانات.
عند استخدام هذا الخيار، لا تحدد اسم ملف في مجموعة البيانات. شاهد المزيد من الأمثلة في أمثلة قائمة الملفات.
لا
إعدادات إضافية:
التكرار يشير إلى ما إذا كانت البيانات ستتم قراءتها بشكل متكرر من المجلدات الفرعية أو من المجلد المحدد فقط. تجدر الإشارة إلى أنه عند ضبط recursive على true ويكون المتلقي مخزناً يستند إلى ملف، لا يتم نسخ أو إنشاء مجلد فارغ أو مجلد فرعي عند المتلقي.
القيم المسموح بها هي true (افتراضية) وfalse.
لا تنطبق هذه الخاصية عند تكوين fileListPath.
لا
deleteFilesAfterCompletion يشير إلى ما إذا كان سيتم حذف الملفات الثنائية من مخزن المصدر بعد الانتقال بنجاح إلى مخزن الوجهة. يتم حذف الملف لكل ملف. لذلك، عندما يفشل نشاط النسخ، سترى أن بعض الملفات قد تم نسخها بالفعل إلى الوجهة وحذفها من المصدر، بينما لا يزال البعض الآخر في المخزن المصدر.
هذه الخاصية صالحة فقط في سيناريو نسخ الملفات الثنائية. القيمة الافتراضية: false.
لا
تاريخ البدء المعدل تتم تصفية الملفات استناداً إلى السمة: last modified.
سوف يتم تحديد الملفات إذا كان وقت آخر تعديل لها أكبر من أو يساوي modifiedDatetimeStart وأقل من modifiedDatetimeEnd. تُطبق الوقت على المنطقة الزمنية UTC بتنسيق "2018-12-01T05:00:00Z".
يمكن أن تكون الخصائص NULL، ما يعني أنه لن يتم تطبيق عامل تصفية سمة الملف على مجموعة البيانات. عندما يكون لـ modifiedDatetimeStart قيمة تاريخ ووقت، ولكن modifiedDatetimeEnd قيمته NULL، فهذا يعني أن الملفات التي قيمة آخر تعديل للسمة الخاصة بها أكبر من قيمة التاريخ والوقت أو تساويها، هي التي سيتم تحديدها. عندما يكون لـ modifiedDatetimeEnd قيمة تاريخ ووقت، ولكن modifiedDatetimeStart قيمته NULL، سيتم تحديد الملفات التي سمة آخر تعديل لها أقل من قيمة التاريخ والوقت.
لا تنطبق هذه الخاصية عند تكوين fileListPath.
لا
modifiedDatetimeEnd نفس الخاصية السابقة. لا
enablePartitionDiscovery بالنسبة للملفات المقسمة، حدد ما إذا كنت تريد تحليل الأقسام من مسار الملف وإضافتها كأعمدة مصدر إضافية.
القيم المسموح بها هي false (افتراضية) وtrue.
لا
partitionRootPath عند تمكين اكتشاف القسم، حدد مسار الجذر المطلق لقراءة المجلدات المقسمة كأعمدة بيانات.

إذا لم يتم تحديده، بشكل افتراضي،
- عند استخدام مسار الملف في مجموعة البيانات أو قائمة الملفات على المصدر، يكون مسار جذر القسم هو المسار الذي تم تكوينه في مجموعة البيانات.
- عند استخدام عامل تصفية مجلد أحرف البدل، يكون مسار جذر القسم هو المسار الفرعي قبل أول حرف بدل.
- عند استخدام البادئة، يكون مسار جذر القسم هو المسار الفرعي قبل "/" الأخير.

على سبيل المثال، بافتراض أنك قمت بتكوين المسار في مجموعة البيانات كـ "root/folder/year=2020/month=08/day=27":
- إذا حددت المسار الجذري للقسم كـ "root/folder/year=2020"، فإن نشاط النسخ سينتج عمودين آخرين month وday وقيمة "08" و"27" على التوالي، بالإضافة إلى الأعمدة داخل الملفات.
- إذا لم يتم تحديد مسار جذر القسم، فلن يتم إنشاء عمود إضافي.
لا
maxConcurrentConnections الحد الأعلى للاتصالات المتزامنة التي تم إنشاؤها إلى مخزن البيانات أثناء تشغيل النشاط. حدد قيمة فقط عندما تريد تحديد الاتصالات المتزامنة. لا

إشعار

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

مثال:

"activities":[
    {
        "name": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

إشعار

لا تظهر الحاوية $logs، التي يتم إنشاؤها تلقائياً عند تمكين Storage Analytics لحساب تخزين، عند إجراء عملية إدراج حاوية عبر واجهة المستخدم. يجب توفير مسار الملف مباشرة لمصنع البيانات أو خط Synapse لاستهلاك الملفات من الحاوية $logs.

تخزين النقطة كنوع متلقي

يدعم Azure Data Factory تنسيقات الملفات التالية. راجع كل مقالة للاطلاع على الإعدادات المستندة إلى التنسيق.

يتم اعتماد الخصائص التالية لتخزين Azure Blob ضمن storeSettingsالإعدادات في متلقي نسخ مستند إلى تنسيق:

الخاصية الوصف مطلوب
النوع يجب تعيين الخاصية type تحت storeSettings إلى AzureBlobStorageWriteSettings. ‏‏نعم‬
copyBehavior تعريف سلوك النسخ عندما يكون المصدر ملفات من مخزن بيانات مستند إلى ملف.

القيم المسموح بها هي:
- PreserveHierarchy (افتراضي): يحافظ على التسلسل الهرمي للملف في المجلد الهدف. يكون المسار النسبي للملف المصدر إلى المجلد المصدر مطابقاً للمسار النسبي للملف الهدف إلى المجلد الهدف.
- FlattenHierarchy: جميع الملفات من المجلد المصدر في المستوى الأول من المجلد الهدف. لملفات الهدف أسماء تم إنشائها تلقائياً.
- MergeFiles: دمج جميع الملفات من المجلد المصدر إلى ملف واحد. إذا تم تحديد اسم الملف أو النقطة، يكون اسم الملف المدمج هو الاسم المحدد. وإلا، فسيتم إنشاء اسم الملف تلقائياً.
لا
blockSizeInMB حدد حجم الكتلة، بالميجابايت، المستخدم لكتابة البيانات لمنع النقط. تعرف على المزيد حول حظر الكائن الثنائي كبير الحجم.
تتراوح القيمة المسموح بها بين 4 ميغابايت و100 ميغابايت.
وبشكل افتراضي، تحدد الخدمة حجم الكتلة تلقائياً استناداً إلى نوع المخزن المصدر والبيانات. بالنسبة للنسخة غير الثنائية في تخزين Blob، يكون حجم الكتلة الافتراضي 100 ميجابايت بحيث يمكن احتواؤه في 4.95 تيرابايت من البيانات (على الأكثر). قد لا تكون مثالية عندما لا تكون بياناتك كبيرة، خاصة عند استخدام وقت تشغيل التكامل المستضاف ذاتيا مع اتصالات الشبكة الضعيفة التي تؤدي إلى انتهاء مهلة التشغيل أو مشكلات في الأداء. يمكنك تحديد حجم كتلة بشكل صريح، مع التأكد من أن blockSizeInMB*50000 كبير بما يكفي لتخزين البيانات. وإلا سيفشل تشغيل نشاط النسخ.
لا
maxConcurrentConnections الحد الأعلى للاتصالات المتزامنة التي تم إنشاؤها إلى مخزن البيانات أثناء تشغيل النشاط. حدد قيمة فقط عندما تريد تحديد الاتصالات المتزامنة. لا
بيانات التعريف تعيين بيانات التعريف المخصصة عند النسخ إلى متلقي. يمثل كل كائن ضمن صفيف metadata عموداً إضافياً. يحدد name اسم مفتاح بيانات التعريف، ويشيرvalue إلى قيمة البيانات الخاصة بهذا المفتاح. إذا تم استخدام ميزة الاحتفاظ بالسمات، فإن بيانات التعريف المحددة ستتحد/تكتب فوق بيانات تعريف الملف المصدر.

قيم البيانات المسموح بها هي:
- $$LASTMODIFIED: متغير محجوز يشير لتخزين آخر وقت معدل للملفات المصدر. يتم التطبيق على مصدر يستند إلى ملف بتنسيق ثنائي فقط.
- التعبير
- القيمة الثابتة
لا

مثال:

"activities":[
    {
        "name": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Parquet output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "ParquetSink",
                "storeSettings":{
                    "type": "AzureBlobStorageWriteSettings",
                    "copyBehavior": "PreserveHierarchy",
                    "metadata": [
                        {
                            "name": "testKey1",
                            "value": "value1"
                        },
                        {
                            "name": "testKey2",
                            "value": "value2"
                        },
                        {
                            "name": "lastModifiedKey",
                            "value": "$$LASTMODIFIED"
                        }
                    ]
                }
            }
        }
    }
]

أمثلة على تصفية الملفات والمجلدات

يصف هذا المقطع السلوك الناتج عن مسار المجلد واسم الملف مع عوامل تصفية البدل.

folderPath fileName التكرار بنية المجلد المصدر ونتيجة التصفية (يتم استرداد الملفات بخط عريض)
container/Folder* (فارغ، استخدم الإعداد الافتراضي) true حاوية
    مجلد أ
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
container/Folder* (فارغ، استخدم الإعداد الافتراضي) صحيح حاوية
    مجلد أ
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
container/Folder* *.csv true حاوية
    مجلد أ
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
container/Folder* *.csv صحيح حاوية
    مجلد أ
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv

أمثلة على قائمة الملفات

يصف هذا القسم السلوك الناتج عن استخدام مسار قائمة الملفات في مصدر نشاط النسخ.

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

نموذج بنية المصدر Content in FileListToCopy.txt التكوين
حاوية
    مجلد أ
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    بيانات التعريف
        FileListToCopy.txt
File1.csv
Subfolder1/File3.csv
Subfolder1/File5.csv
في مجموعة البيانات:
- الحاوية: container
- مسار المجلد: FolderA

في مصدر نشاط النسخ:
- مسار ملف القائمة: container/Metadata/FileListToCopy.txt

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

بعض الأمثلة على recursive وcopyBehavior

يصف هذا المقطع السلوك الناتج من عملية نسخ تركيبات مختلفة من قيم التكرار وسلوك النسخ.

التكرار copyBehavior بنية المجلد المصدر الهدف الناتج
صحيح preserveHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
يتم إنشاء المجلد الهدف، المجلد1، بنفس بنية المصدر:

Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
صحيح flattenHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
يتم إنشاء المجلد الهدف Folder1 بالبنية التالية:

Folder1
    الاسم الذي تم إنشائه تلقائياً لملف1
    الاسم الذي تم إنشائه تلقائياً للملف2
    الاسم الذي تم إنشائه تلقائياً للملف3
    الاسم الذي تم إنشائه تلقائياً للملف4
    الاسم الذي تم إنشائه تلقائياً للملف5
صحيح mergeFiles Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
يتم إنشاء المجلد الهدف Folder1 بالبنية التالية:

Folder1
    يتم دمج محتويات ملف1+ملف2+ملف3+ملف4+ملف5 في ملف واحد مع اسم ملف يتم إنشائه تلقائياً.
true preserveHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
يتم إنشاء المجلد الهدف Folder1 بالبنية التالية:

Folder1
    File1
    File2

لم يتم انتقاء Subfolder1 الذي يتضمن File3، وFile4، وFile5.
true flattenHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
يتم إنشاء المجلد الهدف Folder1 بالبنية التالية:

Folder1
    الاسم الذي تم إنشائه تلقائياً لملف1
    الاسم الذي تم إنشائه تلقائياً للملف2

لم يتم انتقاء Subfolder1 الذي يتضمن File3، وFile4، وFile5.
true mergeFiles Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
يتم إنشاء المجلد الهدف، مجلد1، بالبنية التالية:

Folder1
    يتم دمج محتويات ملف1 + ملف2 في ملف واحد باسم ملفيتم إنشائه تلقائياً. الاسم الذي تم إنشائه تلقائياً لملف1

لم يتم انتقاء Subfolder1 الذي يتضمن File3، وFile4، وFile5.

الاحتفاظ ببيانات التعريف أثناء النسخ

عند نسخ الملفات من Amazon S3 أو تخزين Azure Blob أو Azure Data Lake Storage Gen2 إلى تخزين Azure Data Lake Gen2 أو تخزين Azure Blob، يمكنك اختيار الاحتفاظ ببيانات تعريف الملف مع البيانات. تعرّف على المزيد من الاحتفاظ ببيانات التعريف.

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

عند تحويل البيانات في تعيين تدفقات البيانات، يمكنك قراءة الملفات وكتابتها من تخزين Azure Blob بالتنسيقات التالية:

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

تحويل المصدر

في تحويل المصدر، يمكنك القراءة من حاوية أو مجلد أو ملف فردي في تخزين Azure Blob. استخدم علامة التبويب خيارات المصدر لإدارة كيفية قراءة الملفات.

Screenshot of source options tab in mapping data flow source transformation.

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

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

أمثلة البدل:

  • * يمثل أي مجموعة من الأحرف.

  • ** يمثل تداخل الدليل المتكرر.

  • ? يستبدل حرف واحد.

  • [] يطابق حرف واحد أو أكثر في الأقواس.

  • /data/sales/**/*.csv يحصل على جميع ملفات .csv ضمن /data/sales.

  • /data/sales/20??/**/ يحصل على جميع الملفات في القرن العشرين.

  • /data/sales/*/*/*.csv يحصل على ملفات .csv في مستويين ضمن /data/sales.

  • /data/sales/2004/*/12/[XY]1?.csv يحصل على جميع ملفات .csv في ديسمبر 2004 بدءاً من X أو Y مسبوقة بعدد مكون من رقمين.

مسار جذر القسم: إذا كان لديك مجلدات مقسمة في مصدر الملف الخاص بك بتنسيق key=value (على سبيل المثال، year=2019)، يمكنك حينئذٍ تعيين المستوى الأعلى لشجرة مجلد القسم هذا إلى اسم عمود في تدفق البيانات في تدفق البيانات الخاصة بك.

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

Screenshot of partition source file settings in mapping data flow source transformation.

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

Partition root path

قائمة الملفات: عبارة عن مجموعة ملفات. أنشئ ملف نصي يتضمن قائمة ملفات المسار النسبي لمعالجتها. أشر إلى هذا الملف النصي.

عمود لتخزين اسم الملف: خزّن اسم الملف المصدر في عمود في بياناتك. أدخِل اسم عمود جديد هنا لتخزين سلسلة اسم الملف.

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

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

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

/data/sales/20??/**/*.csv

يمكنك تحديد "from" على النحو التالي:

/data/sales

ويمكنك تحديد "to" على النحو:

/backup/priorSales

في هذه الحالة، يتم نقل جميع الملفات التي تم الحصول عليها ضمن /data/sales إلى /backup/priorSales.

إشعار

لا تستخدم تشغيل عمليات الملف إلا عندما تبدأ تدفق البيانات من تشغيل خط الأنابيب (تتبع أخطاء خط الأنابيب أو تشغيل التنفيذ)، والذي يستخدم نشاط تنفيذ تدفق البيانات في خط الأنابيب. لا يتم تشغيل عمليات الملفات في وضع تصحيح تدفق البيانات.

التصفية حسب التعديل الأخير: يمكنك تصفية الملفات التي ستتم معالجتها عن طريق تحديد نطاق تاريخ لآخر تعديل لها. جميع أوقات التواريخ بصيغة UTC.

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

Screenshot showing Enable change data capture.

خصائص المتلقّي

في تحويل المتلقي، يمكنك الكتابة إلى حاوية أو مجلد في تخزين Azure Blob. وتتيح لك علامة تبويب الإعدادات التحكم في كيفية كتابة الملفات.

Sink options

مسح المجلد: لتحديد مسح المجلد الوجهة من عدمه، قبل كتابة البيانات.

خيار اسم الملف: تحديد كيفية تسمية ملفات الوجهة في المجلد الوجهة. خيارات اسم الملف هي:

  • الافتراضي: السماح لـ Spark بتسمية الملفات استناداً إلى الإعدادات الافتراضية لـ PART.
  • نمط: أدخل نمطاً يُعدد ملفات الإخراج لكل قسم. على سبيل المثال، loans[n].csv ينشئ loans1.csvو loans2.csvوهكذا.
  • لكل قسم: أدخل اسم ملف واحداً لكل قسم.
  • كبيانات في العمود: تعيين ملف الإخراج إلى قيمة عمود. يكون المسار منسوباً إلى حاوية مجموعة البيانات، وليس المجلد الوجهة. إذا كان لديك مسار مجلد في مجموعة البيانات، يتم تجاوزه.
  • الإخراج إلى ملف واحد: ضم ملفات الإخراج المقسمة إلى ملف مسمى واحد. يكون المسار منسوباً إلى مجلد مجموعة البيانات. يجب أن تدرك أن عملية الدمج قد تفشل استناداً إلى حجم العقدة. لا نوصي بهذا الخيار لمجموعات البيانات الكبيرة.

اقتبس كل شيء: تحديد ما إذا كان سيتم تضمين جميع القيم في علامات الاقتباس.

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

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

خصائص نشاط GetMetadata

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

حذف خصائص النشاط

لمعرفة تفاصيل حول الخصائص، حدد Delete activity.

النماذج القديمة

إشعار

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

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

الخاصية الوصف مطلوب
النوع يجب تعيين الخاصية type لمجموعة البيانات إلى AzureBlob. ‏‏نعم‬
folderPath المسار إلى الحاوية والمجلد في تخزين Blob.

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

مثال على ذلك: myblobcontainer/myblobfolder/. راجع المزيد من الأمثلة في أمثلة على تصفية الملفات والمجلدات.
نعم لنشاط النسخ أو البحث، لا لنشاط GetMetadata
fileName اسم أو عامل تصفية البدل للنقط تحت القيمة المحددة لـ folderPath. إذا لم تحدد قيمة لهذه الخاصية، ستشير مجموعة البيانات إلى جميع النقط الموجودة في المجلد.

للتصفية، تكون أحرف البدل المسموح بها هي * (تطابق صفر أو المزيد من الحروف) و? (تطابق صفر أو حرفاً واحداً).
- مثال 1: "fileName": "*.csv"
- مثال 2: "fileName": "???20180427.txt"
استخدم ^ للإلغاء إذا كان اسم المجلد الخاص بك يحتوي على حرف بدل أو حرف الإلغاء هذا بداخله.

عندما لا يتم تحديد fileName كمجموعة بيانات إخراج، ولا يتم تحديد preserveHierarchy في مصدر النشاط، يقوم نشاط النسخ تلقائياً بإنشاء اسم النقطة بالنمط التالي: "Data.[activity run ID GUID].[GUID if FlattenHierarchy].[format if configured].[compression if configured]". على سبيل المثال: "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz".

إذا قمت بالنسخ من مصدر جدولي باستخدام اسم جدول بدلاً من استعلام، يكون نمط الاسم هو [table name].[format].[compression if configured]. على سبيل المثال: "MyTable.csv".
لا
تاريخ البدء المعدل تتم تصفية الملفات استناداً إلى السمة: last modified. سوف يتم تحديد الملفات إذا كان وقت آخر تعديل لها أكبر من أو يساوي modifiedDatetimeStart وأقل من modifiedDatetimeEnd. يتم تطبيق الوقت على المنطقة الزمنية UTC بتنسيق "2018-12-01T05:00:00Z".

يجب أن تدرك أن تمكين هذا الإعداد يؤثر على الأداء العام لحركة البيانات عندما تريد تصفية كميات هائلة من الملفات.

يمكن أن تكون الخصائص NULL، ما يعني أنه لن يتم تطبيق أي عامل تصفية لسمة ملف على مجموعة البيانات. عندما يكون لـ modifiedDatetimeStart قيمة للتاريخ والوقت، لكن modifiedDatetimeEnd هو NULL، سيتم تحديد الملفات التي سمة آخر تعديل لها أكبر من أو تساوي قيمة التاريخ والوقت. عندما يكون لـ modifiedDatetimeEnd قيمة للتاريخ والوقت، ولكن modifiedDatetimeStart هو NULL، سيتم تحديد الملفات التي سمة آخر تعديل لها أقل من قيمة التاريخ والوقت.
لا
modifiedDatetimeEnd تتم تصفية الملفات استناداً إلى السمة: last modified. سوف يتم تحديد الملفات إذا كان وقت آخر تعديل لها أكبر من أو يساوي modifiedDatetimeStart وأقل من modifiedDatetimeEnd. يتم تطبيق الوقت على المنطقة الزمنية UTC بتنسيق "2018-12-01T05:00:00Z".

يجب أن تدرك أن تمكين هذا الإعداد يؤثر على الأداء العام لحركة البيانات عندما تريد تصفية كميات هائلة من الملفات.

يمكن أن تكون الخصائص NULL، ما يعني أنه لن يتم تطبيق أي عامل تصفية لسمة ملف على مجموعة البيانات. عندما يكون لـ modifiedDatetimeStart قيمة للتاريخ والوقت، لكن modifiedDatetimeEnd هو NULL، سيتم تحديد الملفات التي سمة آخر تعديل لها أكبر من أو تساوي قيمة التاريخ والوقت. عندما يكون لـ modifiedDatetimeEnd قيمة للتاريخ والوقت، ولكن modifiedDatetimeStart هو NULL، سيتم تحديد الملفات التي سمة آخر تعديل لها أقل من قيمة التاريخ والوقت.
لا
format إذا كنت تريد نسخ الملفات كما هو الحال بين المخازن المستندة إلى ملف (نسخة ثنائية)، تخطي مقطع التنسيق في كل من تعريفات مجموعة بيانات الإدخال والإخراج.

إذا كنت تريد توزيع الملفات أو إنشاءها بتنسيق معين، فإن أنواع تنسيق الملف التالية معتمدة: TextFormat، وJsonFormat، وAvroFormat، وOrcFormat، وParquetFormat. قم بتعيين خاصية النوع الموجودة ضمن التنسيق إلى إحدى هذه القيم. للحصول على مزيدٍ من المعلومات، راجع أقسام تنسيق Text، وتنسيقJSON، وتنسيقAvro، وتنسيقORC، وتنسيق Parquet.
لا (فقط لسيناريو النسخ الثنائي)
ضغط حدد نوع ضغط البيانات ومستواه. للحصول على مزيدٍ من المعلومات، راجع تنسيقات الملفات المدعومة وبرامج ضغط الوسائط وفكها.
الأنواع المدعومة هي GZipو Deflateو BZip2، وZipDeflate.
المستويات المعتمدة هي الأمثلوالأسرع.
لا

تلميح

لنسخ جميع الملفات المضمنة في مجلد، حدد folderPath فقط.
لنسخ ملف واحد باسم معين، حدد folderPath لجزء المجلد، وfileName لاسم الملف.
لنسخ مجموعة فرعية من الملفات ضمن مجلد ما، حدد folderPath لجزء المجلد، وfileName لعامل تصفية حرف البدل.

مثال:

{
    "name": "AzureBlobDataset",
    "properties": {
        "type": "AzureBlob",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "mycontainer/myfolder",
            "fileName": "*",
            "modifiedDatetimeStart": "2018-12-01T05:00:00Z",
            "modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

نموذج مصدر قديم لنشاط النسخ

الخاصية الوصف مطلوب
النوع يجب تعيين الخاصية type لمصدر نشاط النسخ إلى BlobSource. ‏‏نعم‬
التكرار يشير إلى ما إذا كانت البيانات ستتم قراءتها بشكل متكرر من المجلدات الفرعية أو من المجلد المحدد فقط. عندما recursive يتم تعيين إلى true ويكون المتلقي مخزنا يستند إلى ملف، لا يتم نسخ مجلد فارغ أو مجلد فرعي أو إنشاؤه في المتلقي.
القيم المسموح بها هي: true (افتراضي)، وfalse.
لا
maxConcurrentConnections الحد الأعلى للاتصالات المتزامنة التي تم إنشاؤها إلى مخزن البيانات أثناء تشغيل النشاط. حدد قيمة فقط عندما تريد تحديد الاتصالات المتزامنة. لا

مثال:

"activities":[
    {
        "name": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure Blob input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

نموذج مصدر قديم لنشاط النسخ

الخاصية الوصف مطلوب
النوع يجب تعيين الخاصية type لمصدر نشاط النسخ إلى BlobSink. ‏‏نعم‬
copyBehavior تعريف سلوك النسخ عندما يكون المصدر ملفات من مخزن بيانات مستند إلى ملف.

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

مثال:

"activities":[
    {
        "name": "CopyToBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure Blob output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "BlobSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

تغيير التقاط البيانات

يمكن ل Azure Data Factory الحصول على ملفات جديدة أو متغيرة فقط من Azure Blob Storage عن طريق تمكين **تمكين التقاط بيانات التغيير ** في تعيين تحويل مصدر تدفق البيانات. باستخدام خيار الموصل، بإمكانك قراءة الملفات الجديدة أو المحدثة فقط وتطبيق التحويلات قبل تحميل البيانات المحولة إلى مجموعات بيانات الوجهة التي تختارها. يرجى الرجوع إلى Change Data Capture للحصول على التفاصيل.

.

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