نسخ البيانات من أو إلى نظام ملفات باستخدامAzure Data Factory أو تحليلات Azure Synapse

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

تلميح

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

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

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

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

القدرات المدعومة IR
Copy activity (المصدر/المتلق) ① ②
نشاط البحث ① ②
نشاط GetMetadata ① ②
حذف النشاط ① ②

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

يدعم موصل نظام الملفات هذا بوجه خاص:

المتطلبات الأساسية

إذا كان مخزن البيانات الخاص بك موجوداً داخل شبكة محلية، أو شبكة Azure ظاهرية، أو Amazon Virtual Private Cloud، فأنت بحاجة إلى تكوين وقت تشغيل تكامل مستضاف ذاتياً للاتصال به.

إذا كان مخزن البيانات الخاص بك عبارة عن خدمة بيانات سحابية مُدارة، يمكنك استخدام Azure Integration Runtime. إذا كان الوصول مقتصراً على عناوين IP التي تمت الموافقة عليها في قواعد جدار الحماية، يمكنك إضافة عناوين IP لـ Azure Integration Runtime إلى قائمة السماح.

يمكنك أيضاً استخدام ميزة وقت تشغيل تكامل الشبكة الظاهرية المُدارة في Azure Data Factory للوصول إلى الشبكة المحلية دون تثبيت وقت تشغيل تكامل مستضاف ذاتياً وتكوينه.

لمزيد من المعلومات حول آليات وخيارات أمان الشبكة التي يدعمها Data Factory، راجع إستراتيجيات الوصول إلى البيانات.

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

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

إنشاء خدمة مرتبطة بنظام الملفات باستخدام واجهة المستخدم

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

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

  2. البحث عن ملف وتحديد موصل نظام الملفات.

    Screenshot of the File System connector.

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

    Screenshot of configuration for File System linked service.

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

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

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

يتم دعم الخصائص التالية للخدمة المرتبطة بنظام الملفات:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى: FileServer. ‏‏نعم‬
مضيف تحديد مسار الجذر للمجلد الذي تريد نسخه. استخدم حرف الهروب "" للأحرف الخاصة في السلسلة. مراجعة نماذج تعريف الخدمة ومجموعات البيانات المرتبطة للحصول على أمثلة. ‏‏نعم‬
userId حدد معرف المستخدم الذي لديه حق الوصول إلى الخادم. ‏‏نعم‬
كلمة المرور تحديد كلمة المرور للمستخدم (userId). ضع علامة على هذا الحقل باعتباره SecureString لتخزينه بشكل آمن، أو قم بالإشارة إلى بيانات سرية مخزنة في Azure Key Vault. ‏‏نعم‬
connectVia Integration Runtime الذي سيتم استخدامه للاتصال بمخزن البيانات. تعرف على المزيد من قسم المتطلبات الأساسية. إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. لا

عينة تعريفات الخدمة ومجموعات البيانات المرتبطة

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

أمثلة: \\myserver\share\* أو \\myserver\share\folder\subfolder\*
في JSON: \\\\myserver\\share
بواجهة المستخدم: \\myserver\share
في JSON: .\\ أو folder\\subfolder
بواجهة المستخدم: .\ أو folder\subfolder

إشعار

عند التأليف عبر واجهة المستخدم، لن تحتاج إلى إدخال خط مائل مزدوج (\\) للهروب كما تفعل عبر JSON، حدد خط مائل واحد.

إشعار

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

مثال:

{
    "name": "FileLinkedService",
    "properties": {
        "type": "FileServer",
        "typeProperties": {
            "host": "<host>",
            "userId": "<domain>\\<user>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

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

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

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

مثال:

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

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

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

نظام الملفات كمصدر

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

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

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع ضمن storeSettingsFileServerReadSettings. ‏‏نعم‬
حدد موقع الملفات المراد نسخها:
الخيار 1: مسار ثابت
نسخ من مسار المجلد/الملف المحدد في مجموعة البيانات. إذا كنت تريد نسخ كافة الملفات من مجلد، بالإضافة إلى ذلك حدد wildcardFileName على أنه *.
الخيار 2: عامل تصفية جانب الخادم
- عامل تصفية fileFilter
عامل التصفية الأصلي من جانب خادم الملفات، والذي يوفر أداء أفضل من عامل تصفية حرف البدل بالخيار 3. استخدام * لمطابقة صفر أو أكثر من الأحرف ? ومطابقة حرف صفر أو حرف واحد. التعرف على المزيد حول بناء الجملة والملاحظات من الملاحظات ضمن هذا القسم. لا
الخيار 3: عامل تصفية جانب العميل
- wildcardFolderPath
مسار المجلد مع أحرف البدل لتصفية مجلدات المصدر. يحدث عامل التصفية هذا داخل الخدمة، والذي يقوم بتعداد المجلدات/الملفات ضمن المسار المحدد ثم تطبيق عامل تصفية حرف البدل.
حروف البدل المسموح بها هي: * (يطابق صفراً أو المزيد من الأحرف)، و? (يطابق صفراً أو حرفاً واحداً)؛ يمكنك استخدام ^ للإلغاء إذا كان اسم المجلد الفعلي يتضمن حرف بدل أو حرف إلغاء بداخله.
راجع المزيد من الأمثلة في أمثلة على تصفية الملفات والمجلدات.
لا
الخيار 3: عامل تصفية جانب العميل
- wildcardFileName
اسم الملف مع حروف البدل ضمن المجلد المحدد / folderPath/wildcardFolderPath المحدد لتصفية الملفات المصدر. يحدث عامل التصفية هذا ضمن الخدمة التي تُظهِر عدد الملفات ضمن المسار المحدد ثم يطبق عامل تصفية البدل.
حروف البدل المسموح بها هي: * (يطابق صفراً أو المزيد من الأحرف)، و? (يطابق صفراً أو حرفاً واحداً)؛ يمكنك استخدام ^ للإلغاء إذا كان اسم الملف الفعلي يتضمن حرف بدل أو حرف إلغاء بداخله.
راجع المزيد من الأمثلة في أمثلة على تصفية الملفات والمجلدات.
‏‏نعم‬
الخيار 3: قائمة الملفات
- fileListPath
يشير إلى نسخ مجموعة ملفات معينة. أشر إلى ملف نصي يتضمن قائمة بالملفات التي تريد نسخها، ملف واحد لكل سطر، وهو المسار النسبي للمسار الذي تم تكوينه في مجموعة البيانات.
عند استخدام هذا الخيار، لا تحدد اسم الملف في مجموعة البيانات. شاهد المزيد من الأمثلة في أمثلة قائمة الملفات.
لا
إعدادات إضافية:
التكرار يشير إلى ما إذا كانت البيانات ستتم قراءتها بشكل متكرر من المجلدات الفرعية أو من المجلد المحدد فقط. عندما يتم تعيين "recursive" إلى "true" والمتلقي هو مخزن يستند إلى ملف، لا يتم نسخ أو إنشاء مجلد فارغ أو مجلد فرعي في المتلقي.
القيم المسموح بها هي true (افتراضية) وfalse.
لا تنطبق هذه الخاصية عند تكوين fileListPath.
لا
deleteFilesAfterCompletion يشير إلى ما إذا كان سيتم حذف الملفات الثنائية من مخزن المصدر بعد الانتقال بنجاح إلى مخزن الوجهة. يتم حذف الملف لكل ملف، لذلك عند فشل نشاط النسخ، سترى أن بعض الملفات قد تم نسخها بالفعل إلى الوجهة وحذفها من المصدر، بينما لا يزال البعض الآخر في مخزن المصدر.
هذه الخاصية صالحة فقط في سيناريو نسخ الملفات الثنائية. القيمة الافتراضية: false.
لا
تاريخ البدء المعدل تصفية الملفات استنادا إلى السمة: "Last Modified".
يتم تحديد الملفات إذا كان وقت آخر تعديل لها أكبر من أو يساوي modifiedDatetimeStart وأقل من modifiedDatetimeEnd. ويتم تطبيق الوقت على المنطقة الزمنية UTC بتنسيق «2018-12-01T05:00:00Z».
يمكن أن تكون الخصائص ذات «قيمة فارغة»، ما يعني أنه لا يتم تطبيق عامل تصفية سمات الملف على مجموعة البيانات. عندما 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": "CopyFromFileSystem",
        "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": "FileServerReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

نظام الملفات كمتلقي

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

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

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

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

مثال:

"activities":[
    {
        "name": "CopyToFileSystem",
        "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": "FileServerWriteSettings",
                    "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.

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

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

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

إشعار

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

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

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مجموعة البيانات إلى: 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».

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

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

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

يمكن أن تكون الخصائص ذات «قيمة فارغة»، ما يعني أنه لا يتم تطبيق عامل تصفية سمات الملف على مجموعة البيانات. عندما 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": "FileSystemDataset",
    "properties": {
        "type": "FileShare",
        "linkedServiceName":{
            "referenceName": "<file system 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 ‏‏نعم‬
التكرار يشير إلى ما إذا كانت البيانات ستتم قراءتها بشكل متكرر من المجلدات الفرعية أو من المجلد المحدد فقط. لاحظ أنه عند تعيين recursive إلى true ويكون المتلقي مخزنا مستندا إلى ملف، فلن يتم نسخ/إنشاء مجلد فارغ/مجلد فرعي في المتلقي.
القيم المسموح بها هي "true" (افتراضي) و"false"
لا
maxConcurrentConnections الحد الأعلى للاتصالات المتزامنة التي تم إنشاؤها إلى مخزن البيانات أثناء تشغيل النشاط. حدد قيمة فقط عندما تريد تحديد الاتصالات المتزامنة. لا

مثال:

"activities":[
    {
        "name": "CopyFromFileSystem",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<file system 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": "CopyToFileSystem",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<file system output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "FileSystemSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

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