نسخ البيانات من أو إلى Azure Files باستخدام Azure Data Factory

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

تلميح

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

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

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

موصل Azure Files هذا مدعوم للإمكانيات التالية:

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

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

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

وبشكل خاص، يدعم موصل Azure Files هذا:

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

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

إنشاء خدمة مرتبطة بـ Azure Files باستخدام واجهة المستخدم

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

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

  2. ابحث عن ملف وحدد موصل Azure Files المسمى Azure File Storage.

    Screenshot of the Azure File Storage connector.

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

    Screenshot of linked service configuration for an Azure File Storage.

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

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

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

يدعم موصل Azure Files أنواع المصادقة التالية. راجع الأقسام المقابلة للاطلاع على التفاصيل.

إشعار

إذا كنت تستخدم خدمة Azure Files المرتبطة مع الطراز القديم، حيث يتم عرض واجهة مستخدم تأليف ADF على أنها "مصادقة أساسية"، فإنها لا تزال مدعومة كما هي، بينما يُقترح عليك استخدام النموذج الجديد من الآن فصاعداً. ينقل الطراز القديم البيانات من/إلى التخزين عبر Server Message Block (SMB)، بينما يستخدم الطراز الجديد SDK للتخزين الذي يتمتع بمعدل نقل أفضل. للترقية، يمكنك تعديل الخدمة المرتبطة لتبديل أسلوب المصادقة إلى "مفتاح الحساب" أو "SAS URI"؛ لا حاجة للتغيير في مجموعة البيانات أو نشاط النسخ.

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

يدعم Data Factory الخصائص التالية لمصادقة مفتاح حساب Azure Files:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى: AzureFileStorage. ‏‏نعم‬
سلسلة الاتصال حدد المعلومات المطلوبة للاتصال بـ Azure Files.
يمكنك أيضا وضع مفتاح الحساب في Azure Key Vault وسحب accountKey التكوين من سلسلة الاتصال. للمزيد من المعلومات، راجع العينات التالية ومقالة بيانات اعتماد المخزن في Azure Key Vault.
‏‏نعم‬
fileShare تحديد مشاركة الملف. ‏‏نعم‬
اللقطة حدد تاريخ لقطة مشاركة الملف إذا كنت تريد النسخ من لقطة. لا
connectVia Integration Runtime الذي سيتم استخدامه للاتصال بمخزن البيانات. يمكنك استخدام Azure Integration Runtime أو وقت تشغيل التكامل المستضاف ذاتياً (إذا كان مخزن البيانات موجوداً في شبكة خاصة). إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. لا

مثال:

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net;",
            "fileShare": "<file share name>"
        },
        "connectVia": {
          "referenceName": "<name of Integration Runtime>",
          "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

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

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

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

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

مثال:

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

مثال: تخزين رمز SAS المميز في Azure Key Vault

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.file.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>>" 
            },
            "fileShare": "<file share name>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

الطراز القديم

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى: AzureFileStorage. ‏‏نعم‬
مضيف تحديد نقطة نهاية Azure Files على النحو التالي:
-استخدام واجهة المستخدم: تحديد \\<storage name>.file.core.windows.net\<file service name>
- استخدام JSON: "host": "\\\\<storage name>.file.core.windows.net\\<file service name>".
‏‏نعم‬
معرف المستخدم حدد المستخدم للوصول إلى Azure Files على النحو التالي:
-استخدام واجهة المستخدم: تحديد AZURE\<storage name>
- استخدام JSON: "userid": "AZURE\\<storage name>".
‏‏نعم‬
كلمة المرور تحديد مفتاح الوصول إلى التخزين. ضع علامة على هذا الحقل باعتباره SecureString لتخزينه بشكل آمن في مصنع البيانات أو قم بالإشارة إلى البيانات السرية المُخزنة فيAzure Key Vault. ‏‏نعم‬
connectVia Integration Runtime الذي سيتم استخدامه للاتصال بمخزن البيانات. يمكنك استخدام Azure Integration Runtime أو وقت تشغيل التكامل المستضاف ذاتياً (إذا كان مخزن البيانات موجوداً في شبكة خاصة). إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. لا للمصدر، نعم للمتلقي

مثال:

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {
            "host": "\\\\<storage name>.file.core.windows.net\\<file service name>",
            "userid": "AZURE\\<storage name>",
            "password": {
                "type": "SecureString",
                "value": "<storage access key>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

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

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

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

مثال:

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

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

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

Azure Files كمصدر

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

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

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع ضمن storeSettings إلى AzureFileStorageReadSettings. ‏‏نعم‬
حدد موقع الملفات المراد نسخها:
الخيار 1: مسار ثابت
نسخ من مسار المجلد/الملف المحدد في مجموعة البيانات. إذا كنت تريد نسخ كافة الملفات من مجلد، بالإضافة إلى ذلك حدد wildcardFileName على أنه *.
الخيار 2: بادئة الملف
- اختصار
بادئة اسم الملف ضمن مشاركة الملف المحددة التي تم تكوينها في مجموعة بيانات لتصفية الملفات المصدر. تم تحديد الملفات التي تبدأ أسماؤها بـ fileshare_in_linked_service/this_prefix. ويستخدم عامل التصفية من جانب الخدمة لـ Azure Files، والذي يوفر أداء أفضل من عامل تصفية حرف البدل. هذه الميزة غير مدعومة عند استخدام طراز خدمة مرتبط قديم. لا
الخيار 3: wildcard
- wildcardFolderPath
مسار المجلد مع أحرف البدل لتصفية مجلدات المصدر.
حروف البدل المسموح بها هي: * (يطابق صفراً أو المزيد من الأحرف)، و? (يطابق صفراً أو حرفاً واحداً)؛ يمكنك استخدام ^ للإلغاء إذا كان اسم المجلد الفعلي يتضمن حرف بدل أو حرف إلغاء بداخله.
راجع المزيد من الأمثلة في أمثلة على تصفية الملفات والمجلدات.
لا
الخيار 3: wildcard
- wildcardFileName
اسم الملف مع حروف البدل ضمن المجلد المحدد / folderPath/wildcardFolderPath المحدد لتصفية الملفات المصدر.
حروف البدل المسموح بها هي: * (يطابق صفراً أو المزيد من الأحرف)، و? (يطابق صفراً أو حرفاً واحداً)؛ يمكنك استخدام ^ للإلغاء إذا كان اسم الملف الفعلي يتضمن حرف بدل أو حرف إلغاء بداخله. راجع المزيد من الأمثلة في أمثلة على تصفية الملفات والمجلدات.
‏‏نعم‬
الخيار 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 له «قيمة خالية»، فإن هذا يعني أن الملفات، التي قيمة سمة تاريخ آخر تعديل لها أقل من قيمة التاريخ والوقت، هي التي سيتم تحديدها.
لا تنطبق هذه الخاصية عند تكوين fileListPath.
لا
modifiedDatetimeEnd مثل أعلاه. لا
enablePartitionDiscovery بالنسبة للملفات المقسمة، حدد ما إذا كنت تريد تحليل الأقسام من مسار الملف وإضافتها كأعمدة مصدر إضافية.
القيم المسموح بها هي false (افتراضية) وtrue.
لا
partitionRootPath عند تمكين اكتشاف القسم، حدد مسار الجذر المطلق لقراءة المجلدات المقسمة كأعمدة بيانات.

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

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

مثال:

"activities":[
    {
        "name": "CopyFromAzureFileStorage",
        "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": "AzureFileStorageReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Azure Files كمتلقي

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

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

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

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

مثال:

"activities":[
    {
        "name": "CopyToAzureFileStorage",
        "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": "AzureFileStorageWriteSettings",
                    "copyBehavior": "PreserveHierarchy"
                }
            }
        }
    }
]

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

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

folderPath fileName التكرار بنية المجلد المصدر ونتيجة التصفية (يتم استرداد الملفات بخط عريض)
Folder* (فارغ، استخدم الإعداد الافتراضي) true مجلد أ
    File1.csv
    File2.json
    Subfolder1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* (فارغ، استخدم الإعداد الافتراضي) صحيح مجلد أ
    File1.csv
    File2.json
    Subfolder1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv true مجلد أ
    File1.csv
    File2.json
    Subfolder1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
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
في مجموعة البيانات:
- مسار المجلد: root/FolderA

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

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

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

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

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

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
    يتم دمج محتويات File1 + File2 + File3 + File4 + File 5 في ملف واحد باسم ملف تم إنشاؤه تلقائيًا
true preserveHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
يتم إنشاء المجلد الهدف Folder1 باستخدام البنية التالية

Folder1
    File1
    File2

لا يتم انتقاء المجلد الفرعي1 مع File3 و File4 و File5.
true flattenHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
يتم إنشاء المجلد الهدف Folder1 باستخدام البنية التالية

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

لا يتم انتقاء المجلد الفرعي1 مع File3 و File4 و File5.
true mergeFiles Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
يتم إنشاء المجلد الهدف Folder1 باستخدام البنية التالية

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

لا يتم انتقاء المجلد الفرعي1 مع File3 و File4 و File5.

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

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

خصائص نشاط GetMetadata

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

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

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

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

إشعار

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

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

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مجموعة البيانات إلى: FileShare ‏‏نعم‬
folderPath المسار إلى المجلد.

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

أمثلة: rootfolder/subfolder/، راجع المزيد من الأمثلة في أمثلة على تصفية الملف والمجلد.
‏‏نعم‬
fileName اسم أو عامل تصفية حرف البدل للملف (الملفات) ضمن "folderPath" المحدد. إذا لم تحدد قيمة لهذه الخاصية، فإن مجموعة البيانات تشير إلى جميع الملفات الموجودة في المجلد.

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

عندما لا يتم تحديد fileName لمجموعة بيانات الإخراج ولم يحدد preserveHierarchy في متلقي النشاط، يقوم نشاط النسخ تلقائياً بإنشاء اسم الملف باستخدام النمط التالي: "البيانات.[ نشاط تشغيل المعرف الفريد العمومي]. [المعرف الفريد العمومي في حالة FlattenHierarchy]. [التنسيق إذا تم تكوينه]. [الضغط إذا تم تكوينه]، على سبيل المثال "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz"؛ إذا قمت بالنسخ من مصدر جدولي باستخدام اسم الجدول بدلاً من الاستعلام، يكون نمط الاسم "[اسم الجدول].[ التنسيق]. [الضغط إذا تم تكوينه]"، على سبيل المثال "MyTable.csv".
لا
تاريخ البدء المعدل تصفية الملفات استنادا إلى السمة: "Last Modified". سوف يتم تحديد الملفات إذا كان وقت آخر تعديل لها أكبر من أو يساوي modifiedDatetimeStart وأقل من modifiedDatetimeEnd. ويتم تطبيق الوقت على المنطقة الزمنية UTC بتنسيق «2018-12-01T05:00:00Z».

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

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

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

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

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

تلميح

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

إشعار

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

مثال:

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

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

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

مثال:

"activities":[
    {
        "name": "CopyFromAzureFileStorage",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure File Storage input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "FileSystemSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

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

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

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

مثال:

"activities":[
    {
        "name": "CopyToAzureFileStorage",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure File Storage output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "FileSystemSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

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