انسخ البيانات من وحدة التخزين المتوافقة مع Amazon S3 باستخدام Azure Data Factory أو Synapse Analytics

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

تلميح

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

توضح هذه المقالة كيفية نسخ البيانات من التخزين المتوافق مع Amazon Simple Storage Service (Amazon S3). للتعرف على المزيد، اقرأ المقالات التمهيدية حول Azure Data Factory وSynapse Analytics.

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

موصل التخزين المتوافق Amazon S3 مدعوم للإمكانيات التالية:

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

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

على وجه التحديد، يدعم موصل التخزين المتوافق مع Amazon S3 نسخ الملفات كما هي أو تحليل الملفات بتنسيقات الملفات المدعومة وبرامج ترميز الضغط. يستخدم الموصل الإصدار الرابع من توقيع AWS لمصادقة الطلبات إلى S3. يمكنك استخدام موصل التخزين المتوافق Amazon S3 لنسخ البيانات من أي مزود تخزين متوافق مع S3. حدد عنوان URL المطابق للخدمة في تكوين الخدمة المرتبطة.

الأذونات المطلوبة

لنسخ البيانات من Amazon S3 Compatible Storage، تأكد من منحك الأذونات التالية لعمليات كائن Amazon S3: s3:GetObject و s3:GetObjectVersion.

إذا كنت تستخدم واجهة المستخدم للتأليف، فإن هناك حاجة إلى أذونات إضافية s3:ListAllMyBuckets لعمليات s3:ListBucket/s3:GetBucketLocation مثل اختبار الاتصال بالخدمة المرتبطة والاستعراض من الجذر. إذا كنت لا تريد منح هذه الأذونات، فيمكنك اختيار خيارات "اختبار الاتصال بمسار الملف" أو "التصفح من المسار المحدد" من واجهة المستخدم.

للحصول على القائمة الكاملة لأذونات Amazon S3، راجعتحديد الأذونات في نهج ما على موقع AWS.

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

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

أنشئ خدمة مرتبطة بوحدة التخزين المتوافقة مع Amazon S3 باستخدام واجهة المستخدم

استخدم الخطوات التالية لإنشاء خدمة مرتبطة بالتخزين المتوافق مع Amazon S3 في واجهة مستخدم مدخل Microsoft Azure.

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

  2. ابحث عن Amazon وحدد موصل التخزين المتوافق Amazon S3.

    Select the Amazon S3 Compatible Storage connector.

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

    Configure a linked service to Amazon S3 Compatible Storage.

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

توفر الأقسام التالية تفاصيل حول الخصائص المستخدمة لتحديد الكيانات الخاصة بـ Amazon S3 Compatible Storage.

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

الخصائص التالية مدعومة لخدمة مرتبطة متوافقة مع Amazon S3:

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى AmazonS3 Compatible. ‏‏نعم‬
accessKeyId معرف مفتاح الوصول السري. ‏‏نعم‬
secretAccessKey مفتاح الدخول السري نفسه. ضَع علامة على هذا الحقل باعتباره SecureString لتخزينه بشكل آمن، أو أشر إلى أحد بيانات سرية مخزنة في Azure Key Vault. ‏‏نعم‬
serviceUrl حدد نقطة نهاية S3 المخصصة باعتبارها https://<service url>. لا
ForcePathStyle يشير إلى ما إذا كان يجب استخدام الوصول على نمط مسار S3 بدلا من الوصول على النمط المستضاف الظاهري. القيم المسموح بها هي: خطأ (افتراضي)، صحيح.
تحقق من وثائق كل مخزن بيانات لمعرفة ما إذا كان الوصول إلى نمط المسار مطلوباً أم لا.
لا
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. يمكنك استخدام وقت تشغيل تكامل Azure أو وقت تشغيل التكامل المستضاف ذاتياً (إذا كان مخزن البيانات الخاص بك في شبكة خاصة). إذا لم يتم تحديد هذه الخاصية، فإن الخدمة تستخدم وقت تشغيل تكامل Azure الافتراضي. لا

مثال:

{
    "name": "AmazonS3CompatibleLinkedService",
    "properties": {
        "type": "AmazonS3Compatible",
        "typeProperties": {
            "accessKeyId": "<access key id>",
            "secretAccessKey": {
                "type": "SecureString",
                "value": "<secret access key>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

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

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

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع ضمن location في مجموعة بيانات إلى AmazonS3CompatibleLocation. ‏‏نعم‬
bucketName اسم حاوية التخزين المتوافقة مع S3. ‏‏نعم‬
folderPath المسار إلى المجلد الموجود ضمن الحاوية المحددة. إذا كنت تريد استخدام حرف بدل لتصفية المجلد، فتخط هذا الإعداد وحدد ذلك في إعدادات مصدر النشاط. لا
fileName اسم الملف ضمن مسار الحاوية والمجلد المحدد. إذا كنت تريد استخدام حرف بدل لتصفية الملفات، فتخط هذا الإعداد وحدد ذلك في إعدادات مصدر النشاط. لا
الإصدار إصدار كائن التخزين المتوافق S3، إذا تم تمكين إصدارات التخزين المتوافق مع S3. إذا لم يتم تحديده، فسيتم إحضار أحدث إصدار. لا

مثال:

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

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

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

التخزين المتوافق مع Amazon S3 كنوع مصدر

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

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

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

عند استخدام البادئة واختيار النسخ إلى متلقي يستند إلى ملف مع الاحتفاظ بالتسلسل الهرمي، لاحظ لأنه سيتم الاحتفاظ بالمسار الفرعي بعد آخر "/" في البادئة. على سبيل المثال، لديك المصدر bucket/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 الحد الأعلى للاتصالات المتزامنة التي تم إنشاؤها إلى مخزن البيانات أثناء تشغيل النشاط. حدد قيمة فقط عندما تريد تحديد الاتصالات المتزامنة. لا

مثال:

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

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

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

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

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

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

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

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

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

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

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

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

خصائص نشاط GetMetadata

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

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

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

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